CODE 114589 ACADEMIC YEAR 2025/2026 CREDITS 12 cfu anno 2 INGEGNERIA INFORMATICA 8719 (L-8) - GENOVA TEACHING LOCATION GENOVA MODULES Questo insegnamento è composto da: ALGORITHMS LABORATORY ALGORITMI E COMPUTAZIONE OVERVIEW In the theoretical module, the course presents formal models of computer-based problem solving intended as the treatment of languages and the related issues of computability and complexity. The course considers the main techniques for the construction of correct and efficient algorithms and data structures. In the laboratory module, design and programming tools in an object-oriented language aimed at developing an interpreter are exposed. AIMS AND CONTENT PREREQUISITES To understand the course topics, it is necessary to know the concepts of procedural programming (main scalar and vector data types, declaration and use of variables, conditional choices, iterations, definition of functions), object-oriented programming (definition of classes and generic classes) and the C++ language as provided by the courses of Fundamentals of Computer Science. It is also advisable to have an exposure to the basic concepts of set theory, discrete mathematics and probability. TEACHERS AND EXAM BOARD ARMANDO TACCHELLA Ricevimento: Please make an appointment with the teacher via email EXAMS EXAM DESCRIPTION The exam includes two mandatory tests: - Written test on the theory of computation, algorithms and data structures - Develpment of a project assigned by the teacher At the end of the first semester, there is an intermediate written test on the theory of computation only. All written tests include one or more open questions. The project is assigned at the end of the first semester and is carried out individually by the students. The project is valid for one year, i.e. the written exam must be carried out within one year from the date of delivery of the project. The project contributes to the final grade for a quarter (25%) of the overall score, while the written test contributes to three quarters (75%) of the overall score (25% for the theory of computation part, 50% for algorithms and data structures). ASSESSMENT METHODS The project will assess the student's ability to put into practice the concepts of computation theory in the context of a simple but realistic application (for example, an interpreter for a programming language) designed and implemented with the C++ language. The written exam will assess the student's understanding of the concepts presented in class by carrying out exercises that involve both the solution of problems and the demonstration of properties relating to the proposed solutions. Agenda 2030 - Sustainable Development Goals Climate action Life on land