Algorithm Design

Course objectives

General objectives: Acquire basic knowledge on fundamental algorithm design techniques and techniques to analyze the correctness and the complexity of an algorithm. Specific objectives: Knowledge and understanding: At the end of the course, the student knows: - fundamental algorithm design techniques, - techniques to analyze the correctness and the efficiency of an algorithm. Apply knowledge and understanding: At the end of the course, the student is able to: - analyze the complexity of a problem using rigorous mathematical tools, - analyze existing algorithms and data structures, - design and analyze new algorithms and data structures for simple real-life-problems. Critical and judgmental skills: The student, at the end of the course, should be able to autonomously choose which algorithmic technique is best suited for a given problem and to evaluate among several algorithmic solutions for a certain problem which one should prefer. Communication skills: The student will acquire the ability to express an algoritmic idea throught the use of a pseudocode. Learning ability: The student will acquire the ability to analyse a problem, and to design the necessary data structures and the correct and efficient algorithms for the problem.

Channel 1
ANGELO MONTI Lecturers' profile

Program - Frequency - Exams

Course program
The first part deals with graphs and visits (DFS and BFS). In part II we introduce certain techniques (greedy and divide-et-impera) which work for special kinds of problems. Part III deals with tecniques that are powerfool and general: dynamic program and backtraking. All the techniques are illustrate by means of significant examples.
Prerequisites
A good level of English understanding is helpful.
Books
T.H. Cormen, C.Papadimitriou, U. Vazirani. Introduzione agli algoritmi J. Kleinberg, E. Tardos      Algorithm Design    S. Dasgupta, C. Papadimitriou, U. Vazirani      Algorithms   C. Demetrescu, I. Finocchi, G.F. Italiano Algoritmi e strutture dati
Teaching mode
The course is based on face-to-face lessons and demonstrations and on homeworks.
Exam mode
The exam consiste of a mandatory written test in which the students must solve some simple esercises. The written test will last for 120-150 minutes and will involve closed stimuli, and open answers.The oral exam is optional. To pass the exam, students need to achieve a grade of not less than 18/30. Students must demonstrate that they have acquired sufficient knowledge of the topics of both parts of the program. To achieve a score of 30/30 cum laude, students must instead demonstrate that they have acquired excellent knowledge of all the topics covered during the course and be able to link them in a logical and coherent manner.
Lesson mode
The course is based on face-to-face lessons and demonstrations and on homeworks.
  • Lesson code1015888
  • Academic year2024/2025
  • CourseInformatics
  • CurriculumSingle curriculum
  • Year2nd year
  • Semester2nd semester
  • SSDINF/01
  • CFU9
  • Subject areaDiscipline Informatiche