Descriptif
This course aims at providing students with basic and more advanced notions of algorithm design and analysis. It covers important algorithmic techniques and their applications to various classical problems. For each algorithm studied, the course insists on data structures and implementation, and on complexity analysis. The goal is not to give an exhaustive review of existing algorithms, but rather to understand broad techniques that can then be reused in whatever problems the students will face in the future.
The course emphasis is on methods and their theoretical analysis but a small number of selected algorithms will be implemented (in Python). The course gives methods that are generically useful for coding interviews, pointers will be given to students who want to train specifically for that exercise.
Prerequisites
The required background for this course corresponds to the computer science courses of the 1st year of ENSAE, that is: basic familiarity with computer science, algorithms, and programming (in Python).
Diplôme(s) concerné(s)
Format des notes
Numérique sur 20Littérale/grade réduitPour les étudiants du diplôme MScT-Data and Economics for Public Policy (DEPP)
Le rattrapage est autorisé (Note de rattrapage conservée)- Crédits ECTS acquis : 3 ECTS
La note obtenue rentre dans le calcul de votre GPA.
Programme détaillé
The following outline is tentative and subject to changes depending on the speed of progress.
-
Greedy algorithms
-
Dynamic programming
-
Graphs algorithms
-
Flows, cuts, and matching
-
Application of linear programming to algorithms
-
Advanced topics: approximation algorithms, random algorithms, heuristics