Descriptif
Un algorithme est une séquence d'instructions qui nous permet de résoudre un problème en un nombre fini d'étapes. En tant que tels, les algorithmes sont les procédures que nous utilisons pour « calculer ». Nous étudions les algorithmes pour savoir ce qui peut réellement être calculé, en théorie et en pratique, et pour découvrir l'efficacité avec laquelle cela peut être fait.
Introduction aux algorithmes (CSC_S1003_EP) est une initiation à l'art et à la science des algorithmes. Ce cours apprendra aux étudiants à réfléchir sur les algorithmes, à résoudre un large éventail de problèmes au moyen d'un certain nombre de techniques algorithmiques, à comparer rigoureusement différents algorithmes et à prédire leurs performances, ainsi qu'à prouver formellement qu'un programme implémentant un algorithme est correct.
Objectifs pédagogiques
Apprendre quelques techniques algorithmiques de base : recherche exhaustive, algorithmes récursifs, diviser pour régner, programmation dynamique, algorithmes gourmands.
Savoir appliquer ces techniques à un certain nombre de problèmes standard sur des structures de données basiques : listes (tri), graphes (clôture transitive, chemins, plus petit arbre recouvrant), chaînes de caractères (recherche).
Apprendre à analyser la complexité asymptotique dans le pire des cas des programmes, y compris les programmes récursifs à travers l'utilisation de récurrences. Connaître différentes méthodes de résolution des récurrences et savoir quand celles-ci peuvent être appliquées (master theorem, méthode de l'arbre de récurrence, substitution de variables).
Apprendre les bases de la preuve de correction des programmes : triplets de Hoare, logique de Floyd-Hoare, invariants de boucle.
Diplôme(s) concerné(s)
Parcours de rattachement
- Bachelor en sciences - S2 - Double spécialité Mathématiques et Economie
- Bachelor en Sciences - S2 - Double Spécialité Mathématiques & Informatique
- Bachelor en sciences - S2 - Double spécialité Mathématiques et Physique
- Bachelor en sciences - S2 - Double spécialité Economie et Informatique
- Bachelor en sciences - S2 - Double spécialité Economie et Physique
- Bachelor en sciences - S2 - Double spécialité Physique et Informatique
Pour les étudiants du diplôme Bachelor of Science de l'Ecole polytechnique
Vous devez avoir validé l'équation suivante : UE CSC_1F001_EP
Prerequisite: CSC_1S001_EP
Règle d'exclusion : UE CSC_1S004_EP
Format des notes
Numérique sur 20Littérale/grade américainPour les étudiants du diplôme Bachelor of Science de l'Ecole polytechnique
Vos modalités d'acquisition :
5 quiz hebdomadaires.
Examen final (sur papier). 2 heures. Accès au matériel de cours autorisé.
Note finale = 0,5 * (4 meilleurs quiz, les meilleur compte double) + 0,5 * finale.
Le rattrapage est autorisé (Note de rattrapage conservée écrêtée à une note seuil de 10)- Crédits ECTS acquis : 2 ECTS
Programme détaillé
Unit 1: Introduction, Sorting, Divide and Conquer
Unit 2: Complexity Analysis
Unit 3: Correctness of Algorithms
Unit 4: Dynamic Programming and Greedy Algorithms
Unit 5: Graph Algorithms
Unit 6: String Algorithms, Automata and Some Theory
Unit 7: Automatic Differentiation