Programmation fonctionnelle avancée

Cette page est dédiée au cours "Programmation fonctionnelle avancée", L2 groupe A, Licence Informatique, Univ. Paris 8, 2023. Pour plus de détails concernant la planification, voir : ici.

Modalités d'évaluation

La note finale est déterminée par :

  • Une série de devoirs à rendre, qui seront annoncés dans les exercices affichés par session ci-dessous. Vous êtes donc censé les surveiller. Ces travaux sont à rendre individuellement et comptent pour 40% de la note finale.

  • Un examen écrit. Il compte pour 60% de la note finale.

Je vous suggère fortement d'essayer les travaux par vous-même dans un premier temps. Si vous êtes bloqué, essayez d'abord d'identifier les points sur lesquels vous avez des difficultés, et de revisiter le matériel de cours.

Si, malgré tout, vous constatez que vous n'arrivez pas à avancer, vous êtes autorisé (et encouragé) à discuter des devoirs avec vos collègues.

Cependant, vous êtes censé comprendre parfaitement tout ce que vous rendrez et citer vos collaborateurs et toutes les sources que vous avez utilisées.

Je me réserve le droit d'examiner tout groupe d'étudiants que je soupçonne de méconduite académique (copiage, plagiat) et d'ajuster leurs notes en conséquence.

Dépôt git

Le code accompagnant le cours se trouve dans ce dépôt public. Apprendre à programmer ne peut pas se faire simplement en lisant des diapositives, l'expérience pratique est absolument essentielle. Je vous conseille vivement de cloner le repo ci-dessus et d'expérimenter avec le code qu'il contient.

Matériel de cours

  • Séance #0 : Introduction à OCaml, variables, fonctions, récursion, motifs & pattern matching, types de données algébriques, motifs de programmation impérative. slides code exercises

  • Séance #1 : Polymorphisme, listes et récursivité structurelle, records. slides code exercises

  • Séance #2 : Arbres, map & fold sur des arbres. slides exercises

  • Séance #3 : Étude de cas : implementation de la fonction map et de ses variantes. Modules, structures et signatures. slides exercises code

  • Séance #4 : Types abstraits, includes, contraintes de type, et foncteurs. slides exercises code

  • Séance #5 : Monades, la monade Maybe. slides exercises code

  • Séance #6 : La monade Writer. slides exercises

  • Séance #7 : Les monades Reader et State, Maps. slides exercises

  • Séance #8 : Monad de listes, MonadPlus. slides exercises

  • Séance #9 : Un bref aperçu de la correspondance Curry-Howard. slides

  • DST

Ressources


Site built with MkDocs and a slightly-modified version of Terminal for MkDocs.
Last update: September 2023