Volumes horaires
- CM 5.0
- TD 5.0
- TP 26.0
Crédits ECTS
Crédits ECTS 2.5
Objectif(s)
L'enseignement introduit les principales notions et structures de données à la base des solutions à de nombreux problèmes non numériques. Il aborde la programmation récursive et les principales structures de données dynamiques et types abstraits utilisées aujourd'hui (listes, piles, files, arbres, graphes) et présente quelques implémentations et algorithmes utilisant ces structures de données.
Contact Michel DESVIGNESContenu(s)
- Principales notions abordées :
- Programmation récursive, notion de complexité
- Notion de Type de Données Abstraites
- Structures de données chaînées linéaires : listes, piles, files
- Dictionnaires et tables de hachage
- Structures de données arborescentes : arbres binaire
- Tp : Ces notions sont mises en oeuvre BE par les étudiants, en langage C, sous Linux, sur des exemples concrets; Quelques exemples de problèmes traités :
- Fractale de MandelBrot et Récursivité
- Tri par tas
- Jeu de carte de la bataille avec pile et file
- Vérificateur orthographique et Table de Hachage
- Calcul formel de dérivée d'expressions mathématiques et arbre binaire
- Mini projet: Recherche d'itinéraires dans le métro et le RER parisien par recherche du plus court chemin dans un graphe avec différents algorithmes : Dijkstra, Bellman, A-Star.
Prérequis
Cours Programmation Structurée - Algorithmique (PET-S1)
1 Examen écrit de 2h
1 compte rendu de projet
Session 1 : Examen Ecrit1 x 80% + Projet 20%
Session 2 : Examen Ecrit2 x 80% + Projet 20%
Robert Sedgewick : Algorithms in C, Parts 1-5 (Bundle): Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms, Addison-Wesley, 2002, 0201756080
C.Froidevaux, M.C.Gaudel, M.Soria : Types de données et algorithmes , McGraw-Hill, 1990
A. Aho, J. Hopcroft, J. Ullman. Data structures and algorithms .Addison-Wesley, 1983.
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest : Introduction to Algorithms. MIT Press and McGraw-Hill., Third Edition. MIT Press, 2009. ISBN 978-0-262-53305-8.