Programmation Fonctionnelle Avancée
But du cours
Ce cours est la suite du cours de L2 « Introduction à la programmation fonctionnelle » et d'une partie du cours de L2 « Outils Logiques et Algorithmiques ». On y présente :
- Le paradigme fonctionnel et le langage OCaml (rappel)
- L'utilisation de structure de données persistentes
- La programmation récursive et son utilisation dans des algorithmes avancés (diviser pour régner, alogorithme avec retour arrière)
- L'interaction entre programmation fonctionnelle est aspects impurs (structures de données mutables, boucles, …)
- Outils de génie logiciels propres à OCaml : organisation du code avec les modules et les foncteurs, utilisation de dune
- Concepts avancés : monade d'erreur et de parallélisme, transformations CPS
Le langage utilisé dans le cours est le langage OCaml.
Plan du cours, supports de cours et de TP
- Cours 1 : Présentation, rappels sur le langage OCaml.
cours 1 en HTML5
, cours 1 en
PDF et version
imprimable
.
- Le sujet du TP 1.
- Le L'archive du TP 1 à compléter
- Le corrigé du TP 1
- Cours 2 : Rappels sur le langage OCaml (fin).
cours 2 en HTML5
, cours 2 en
PDF et version
imprimable
.
- Cours 3 : Arbres binaires de recherche (1).
cours 3 en HTML5
, cours 3 en
PDF et version
imprimable
.
- Le sujet du TP 3.
- L'archive avec le code à compléter.
- Le corrigé du TP 3.
- Cours 4 : Modules, Foncteurs et compilation séparée.
cours 4 en HTML5
, cours 4 en
PDF et version
imprimable
.
- Le sujet du TP 4.
- L'archive avec le code à compléter.
- Le corrigé du TP 4.
- Cours 5 : Modules, Foncteurs et compilation séparée (fin)
cours 5 en HTML5
, cours 5 en
PDF et version
imprimable
.
- Le sujet du TP 5.
- L'archive avec le code à compléter.
- Le corrigé du TP 5.
- Cours 6 : Traits impératifs d'OCaml
cours 6 en HTML5
, cours 6 en
PDF et version
imprimable
.
- Le sujet du TP 6.
- L'archive avec le code à compléter.
- Le corrigé du TP 6.
- Cours 7 : Tables de hachage
cours 7 en HTML5
, cours 7 en
PDF et version
imprimable.
- Le sujet du TP 7.
- L'archive avec le code à compléter.
- Cours 8 : Trie (traille)
cours 8 en HTML5
, cours 8 en
PDF et version
imprimable.
- Le code de la recherche dans un trie :
- Le sujet du TP 8.
- L'archive avec le code à compléter.
- Cours 9 : Trie (fin) cours 9 en HTML5 , cours 9 en PDF et version imprimable.
- Cours 10 : Étude de cas
cours 10 en HTML5
, cours 10 en
PDF et version
imprimable.
- Le fichier d'idées écrit en cours collectivement pour arriver à la solution
- Le code écrit en cours est dans l'archive du TP
- Le sujet du TP 10.
- L'archive avec le code à compléter.
Examens passés
- 2023-2024, session 1 :
- le sujet
- le corrigé (bouton droit, enregisrer sous)
- le corrigé en ligne avec coloration syntaxique
- L'aide mémoire intégré aux sujets
Information pratiques
- Cours : mardi après-midi, Petit amphi du PUIO.
- TP : jeudi, vendredi et lundi après-midi
- Chargés de TP : Paul Patault (jeudi), François Pirot (vendredi, lundi), Clémence Sebe (vendredi).
- Les supports de cours sont mis en ligne au plus tard la veille au soir
- Les corrigés sont mis en ligne tous les mardi, avant le cours