ENPC Ecole des ponts
ACCUEIL DU CATALOGUE DES COURS ACCUEIL DU SITE FRANCAIS ACCUEIL DU SITE INTERNATIONAL
Programmation avancée algorithmique
Année scolaire 2025-2026
Créneau Sem 3/Sem 5
Sem 5

Aucune, mais l'utilisation d'un ordinateur portable personnel est recommandée.

Prérequis

Cours de programmation en C++ de 1ère année (partie A, partie B fortement recommandée), ou, pour les admis sur titre ou en double diplôme, expérience d'un langage proche du C++, comme C ou java.

Enseignant responsable Pascal MONASSE
Equipe enseignante Pascal MONASSE, Thomas DAUMAIN
Objectifs du module

Programmation et algorithmique (6 séances)

 

Ce module aborde des aspects plus pointus de la programmation et de l'algorithmique que ceux vus en première année.

 

Pour la programmation, le langage C++ est utilisé car il représente un bon équilibre entre la possibilité de programmation à un haut niveau d'abstraction, mais expose aussi aux considérations bas niveau comme la gestion de la mémoire. L'héritage et le polymorphisme, aspects essentiels de la programmation objet, sont introduits et discutés ; ce sont les clés de voûte d'une programmation haut niveau. Mais ces concepts ne peuvent ignorer la question de leur efficacité, qui repose sur la gestion de la mémoire et en particulier la notion cruciale de pointeur.

 

Pour ce qui concerne l'algorithmique, sont présentées des structures données adaptées au stockage et à la recherche d'information efficaces : arbres binaires, graphes acycliques orientés, quadtrees, ensembles, tableaux associatifs et tables de hachage. Ces notions d'optimisation et de structures de données sont centrales dans le développement de logiciels. Elles sont illustrées par des TP variés tels que la compression d'image, la différenciation automatique et la recherche efficace de villes voisines à l'échelle d'un grand territoire (la France métropolitaine).

Programme du module

Contenu des séances :

 

1. Rappels de programmation C++ (types, fonctions, tableaux, classes, constructeurs, destructeur, surcharge d'opérateurs), pointeurs et mémoire.

 

2. Programmation avec templates, la Standard Template Library et son utilisation, foncteurs

 

3. Héritage et polymorphisme

 

4. Structures de données générales

 

5. Structure de données d'arbres pour le stockage et la recherche d'information efficaces

 

6. Ensembles, tableaux associatifs et hachage

Modalités

Chaque séance se décompose en 1h à 1h30 de cours et en 1h30 à 2h de TP (suivant les séances), sauf la première qui comporte uniquement du cours. Les TP sont à terminer individuellement et à remettre en tant que devoir à la maison. 8h CM, 10h TD.

Contrôle des connaissances - Règles de validation du module

La validation se fait sur les rendus de TP, consistant en un programme C++ et un compte-rendu d'expérience.

Documents pédagogiques - Bibliographie

Introducton to Algorithms. T. H. Cormen, Ch. E. Leiserson, R. L. Rivest, C. Stein. The MIT Press.

 

Algorithms in C++. R. Sedgewick. Addison-Wesley.

 

Algorithms. S. Dasgupta, C. Papadimitriou, U. Vazirani. McGraw-Hill.

Effectif maximal Effectif illimité
Département de rattachement Département Ingénierie Mathématique et Informatique
Nombre de crédits ECTS 1,5 crédit ECTS
Mise à jour

10 Novembre 2025

Code PRALG
Dernière mise à jour  :  10 Novembre 2025
Rechercher des modules      Liste complète des titres de module      Liste complète des responsables de module
Imprimer © École nationale des ponts et chaussées Haut de page