Information updated until 30/06/2026 CODE 114618 ACADEMIC YEAR 2026/2027 CREDITS 6 cfu anno 2 INGEGNERIA INFORMATICA 11880 (L-8 R) - IMPERIA SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05 LANGUAGE English TEACHING LOCATION IMPERIA SEMESTER 1° Semester MODULES Questo insegnamento è un modulo di: ALGORITHMS AIMS AND CONTENT LEARNING OUTCOMES This course introduces the main strategies for designing algorithms and the tools for evaluating their correctness and performance. The objective is to develop the ability to formalize and solve problems algorithmically, as well as the capacity for analysis and evaluation of solutions. AIMS AND LEARNING OUTCOMES Attendance and active participation in the proposed learning activities (lectures and exercises) and individual study will enable students to: - Understand the theoretical foundations of computer science, understood as the automatic processing of formal languages through the computational model of finite state automata. - Understand the relationship between computational models and formal languages and establish a correspondence between the type of language and the corresponding computational power required by the model. - Understand the main issues related to algorithm development, both related to correctness and performance; understand simplified models for resource estimation. - Know the main commonly used algorithms and data structures: their origins, structure, and performance in terms of computational resource consumption. TEACHING METHODS Lectures are mainly delivered at the blackboard. The projector may occasionally be used to show particularly complex algorithms, tables, or figures. Students are strongly encouraged to take notes during classes, since the exam material corresponds to what is explained in class. Teaching material will be published on Aulaweb after the lectures. Algorithms will be presented in pseudocode and will not require the use of specific IDEs, compilers, or interpreters. SYLLABUS/CONTENT Prerequisites: Deductive logic and proofs Regular languages and finite state automata Context-free languages and push-down automata Models for analyzing algorithms: worst case, average case, amortized complexity Fundamental data structures Brute force strategy and backtracking Divide and Conquer strategy Dim and Conquer strategy Transform and Conquer strategy Space-time tradeoff Greedy algorithms RECOMMENDED READING/BIBLIOGRAPHY All necessary material will be provided during the lectures and later published on Aulaweb. No textbook purchase is required. For further reading, the following books are suggested: J.E. Hopcroft, R. Motwani, J.D. Ullman, Automata, Languages, and Computability, Pearson. R. Sedgewick, K. Wayne, Algorithms, 4th edition, Addison-Wesley. T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduction to Algorithms, 3rd edition, McGraw-Hill. TEACHERS AND EXAM BOARD MATTEO CARDELLINI Ricevimento: Students may meet the lecturer before or after classes. For specific questions requiring more time, students can contact the lecturer by email at matteo.cardellini@unige.it to arrange an appointment, also on Teams. Students are advised not to write directly on Teams, but to use email for communications. LESSONS Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION The exam consists of a two-hour written test covering both the theory and the exercises discussed in class. The exam is open book in an analogue form: students may bring notes and printed material, but smartphones, smartwatches, and computers are not allowed. Students are not allowed to leave the room during the exam. The maximum score is 32; a score strictly higher than 30 corresponds to 30 cum laude. Students must register for the exam at least 7 days in advance. Taking part in an exam session invalidates any previous grade.