ALGORITHMS

Course objectives

General goals Introduction to basic algorithm design and analysis, iterative and recursive algorithms, and the computation of their computational efficiency. Specific goals: Knowledge and understanding: At the end of the course students will know the basic methodologies for the design and analysis of iterative and recursive algorithms, elementary data structures, some ways to explore such structures, the main sorting algorithms and the most basic implementations of the dictionaries. Applying knowledge and understanding: At the end of the course students will have become familiar with the main basic data structures, in particular those implementing dictionaries. They will be able to explain the algorithms and analyze their time complexity, highlighting how their performances depend on the used data structure. They will be able to design new data structures and related algorithms, on the basis of the existing ones; they will be able to explain the main sorting algorithms, illustrating the underlying design strategies and their time complexity analysis; they will be able to compare the asymptotic behavior of the execution times of the studied algorithms, to design recursive solutions to problems and to analyze their asymptotic time complexity. Critiquing and judgmental skills: Students will be able to analyze the quality of an algorithm and related data structures, both from the effective resolution of the problem and from the time complexity point of views. Communication skills: Students will acquire the ability to expose their knowledge in a clear and organized way, which will be verified both through the written tests and during the oral examination. Students will be able to express an algorithmic idea rigorously at high level, in pseudocode. Learning ability: The acquired knowledge will allow students to face the study of other algorithmic methodologies and of more advanced data structures within a master's degree course.

Channel 1
FLAVIO CHIERICHETTI Lecturers' profile

Program - Frequency - Exams

Course program
Algorithms Gale-Shapley Greedy: Interval Scheduling, Interval Partitioning, Codici di Huffman Dynamic Progamming: Weighted Interval Scheduling, Segmentation, Subset-Sum Introduction to approximation algorithms and to online learning ("expert problems")
Prerequisites
No formal prerequisites
Books
"Algorithm Design", Kleinberg, Tardos Learning material provided by the instructor
Frequency
Attendance is not mandatory, but it is strongly recommended.
Exam mode
Written exam
Bibliography
"Algorithm Design", Kleinberg, Tardos "Introduction to Algorithms", Cormen, Leiserson, Rivest, Stein "Automata and computatability", Kozen
Lesson mode
Lectures will be given on a blackboard and/or with slides.
  • Lesson code1049269
  • Academic year2024/2025
  • CourseApplied Computer Science and Artificial Intelligence
  • CurriculumSingle curriculum
  • Year1st year
  • Semester2nd semester
  • SSDINF/01
  • CFU6
  • Subject areaFormazione informatica di base