ENPC Ecole des ponts
ACCUEIL DU CATALOGUE DES COURS ACCUEIL DU SITE FRANCAIS ACCUEIL DU SITE INTERNATIONAL
Programmation avancée et algorithmique-Fourier analysis
Année scolaire 2023-2024

1) programmation et Algorithmique :

 

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

Prérequis

1) Programmation et Algorithmique :

 

Cours Introduction à la programmation de 1ère année, ou expérience d'un langage proche du C++, comme C ou java.

 

2) Analyse de Fourier :

 

Cours d'analyse et calcul scientifique de 1ere année

Enseignant responsable

Virginie EHRLACHER, Renaud MARLET, Pascal MONASSE, Gabriel STOLTZ

Equipe enseignante Virginie GALLAND EHRLACHER, Renaud MARLET, Pascal MONASSE, Gabriel STOLTZ
Objectifs du module

Le cours se décompose en 2 demi-cours :

 

1) Programmation et algorithmique (7 séances) R.Marlet et P.Monasse

 

2) Analyse de Fourier (6 séances) V.Ehrlacher et G.Stoltz

 

1) Programmation et Algorithmique :

 

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 d'une part des méthodes de résolution de problèmes combinatoires (aspects pratiques et implémentations efficaces de la programmation dynamique) et d'autres part 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 le calcul de la distance d'édition entre chaînes de caractères, la compression d'image, et la recherche efficace de villes voisines à l'échelle d'un grand territoire (la France métropolitaine).

 

2) Analyse de Fourier :

 

L'analyse en fréquences, en particulier les séries de Fourier et la transformée de Fourier, est un outil qui permet de décomposer les signaux selon leurs modes fondamentaux. Cette théorie mathématique a de nombreuses applications pour l'ingénieur (étude des cours de la bourse, compréhension climatique de la température des océans, mise en résonance de structures de génie civil conduisant à leur ruine, etc.)

 

A l'issue de ce cours, les étudiants sauront utiliser à bon escient les séries de Fourier et la transformation de Fourier pour analyser un problème physique ou un signal donné, et connaitront les limitations théoriques, pratiques et numériques de cet outil.

Programme du module

1) Programmation et algorithmique :

 

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. Programmation dynamique : aspects pratiques et implémentation efficace

 

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

 

6. Ensembles, tableaux associatifs et hachage

 

2) Analyse de Fourier :

 

Le cours se décompose en trois parties :

 

1) la théorie des séries de Fourier, qui permettent de représenter des fonctions périodiques assez régulières comme des sommes desinus et cosinus

 

2) la transformée de Fourier et de sa généralisation aux distributions pour résoudre des équations aux dérivées partielles posées sur tout l'espace et étudier la régularité de leurs solutions

 

3) une introduction au traitement du signal, en utilisant les distributions périodiques. Les étudiants analyseront en particulier les méthodes numériques de calcul d'une transformation de Fourier et sauront quantifier leurs limitations, notamment les effets indésirables de la discrétisation numérique (tels que l'aliasing).

Modalités

1) Programmation et algorithmique :

 

Chaque séance se décompose en 1h à 1h30 de cours et en 1h30 à 1h 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.

 

2) Analyse de Fourier :

 

Les 6 séances de 2h30 de ce cours seront menées en "pédagogie active" : après une brève introduction par l'enseignant, les élèves résoudront des problèmes en petits groupes.

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

1) Programmation et algorithmique :

 

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

 

2) Analyse de Fourier :

 

La note finale sera une moyenne pondérée fondée sur les éléments suivants : 1) quizz de contrôles continus, 2) examen final.

Documents pédagogiques - Bibliographie

1) Programmation et algorithmique :

 

" 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.

 

Adresse web du site du module

Effectif maximal Effectif illimité
Département de rattachement Département Ingénierie Mathématique et Informatique
Nombre de crédits ECTS 3 crédits ECTS
Code ANFRE
Dernière mise à jour  :  07 juillet 2016
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