Planning PF (programmation fonctionnelle, Info4 - Polytech)
1. Semaine 0
1.1. CM1 04/09/2026
1.1.1. Chap 1 : introduction à la programmation fonctionnelle en OCaml
1.2. TD1 04/09/2026
- 1.1, 1.2 (type somme, filtrage)
- 1.3 (fonctions)
- 1.4 (if fonctionnel)
- 1.6 (récursivité : factorielle)
- 1.8 (portées) : à faire à la maison
- En option : 1.5, 1.7
2. Semaine 1
2.1. TP1 11/09/2026
2.1.1. Vérification des installations
2.1.2. Exercices introductifs
Section 1 du poly TP : aller aussi loin que posssible.
Méthode de travail : il faudra résoudre des exercices de chaque catégorie (1.3 découverte, 1.4 définitions de types, 1.5 fonctions) ; il n'est pas nécessaire de finir une catégorie avant de passer à la suivante.
3. Semaine 2
3.1. CM2 16/09/2026
3.1.1. Chap 2 :
- Opérateurs logiques et structuration de données
- Sommes et filtrage
- Récurrence et récursion
3.2. TD2 16/09/2026
- 1.8 (portées) : correction (fait maison)
- 2.1 (arbres binaires)
- 2.3, 2.4 (ABR) ; en option : 2.5
- listes : 3.1 (
listeintseulement ; somme des éléments) ; 3.2, 3.4 (en utilisantmax_intet le typeoption)
3.3. TP2 18/09/2026
3.3.1. Arbres binaires, ABR
Section 2 du poly TP
4. Semaine 3
4.1. CM3 21/09/2026
4.1.1. Chap 2
- bienfaits du filtrage
4.1.2. Chap 4
- curryfication
4.2. TD3 23/09/2026
- 5.1 à 5.4 (ordre supérieur élémentaire) – 5.1 : somme de deux fcts arith – 5.2 : compo (g ∘ f) et compo2 : ('a -> 'b * 'c) -> ('b -> 'c -> 'd) -> 'a -> 'd – 5.3 : produit de n fonctions arith – 5.4 : curry / uncurry
- listes (?)
- 2.2 (preuve simple arbre binaire)
- 1.9 (évaluation de fonctions + typage)
4.3. pas de TP : WECS
5. Semaine 4
5.1. CM4 30/09/2026
5.1.1. Chap 3
- evaluation + typage
- fin évaluation du let rec
5.1.2. Chap 4 :
- typage jsq
fun x -> x x,
5.2. TD4 30/09/2026
- 3.7, 3.8 (fonctions simples sur les listes)
- 3.15, 3.16 (propriétés de append et preuves)
6. Semaine 5
6.1. CM5 07/10/2026
- Exceptions
- Le min d'une liste,
avec exception juste sur l'appel "initial"
- récursif structurel (sans accumulateur)
- récursif avec accumulateur
- Ordre sup : verif ABR avec accumulateur fonctionnel
- Preuve de long2 u 0 = long u (sauf si preuve min suffisante -> exo ?)
6.2. TD5 07/10/2026
- 4.1, 4.2 (exceptions)
- preuves : fichier Coq renv_acc.v fourni en ligne
- 3.16 (associativité de
@) - 3.19 (renversement efficace)
- (*) 3.17 (renversement et
@), 3.18 (renversement du renversement)
- 3.16 (associativité de
6.3. TP4 09/10/2026
6.3.1. File à priorité
Section 4 du poly TP
6.3.2. (*) Vérification ABR avec exception + suppression
Section 2 du poly TP, fin
7. Semaine 6
7.1. CM6 14/10/2026
7.1.1. Chap 7
- Type unit, effets IO et en mémoire, types mutables et tableaux
7.2. TD6 14/10/2026
- 8.2, 8.3 (
array_to_listetarray_of_liste) [45 minutes max] - 7.1 (analyse syntaxique de suites de chiffres)
7.3. TP5 16/10/2026
7.4. Contrôle continu PF
Listes et arbres
Venez avec vos PCs. Vous devrez rendre un fichier .ml qui compile sans erreur.
7.4.1. Début analyse descendante récursive
- 5.1 poly TP (sommechiffres, Horner)
- facultatif : début 5.3 avec analist.ml, ou début du 5.2 (expressions arithmétiques) avec analist.ml.
Le rendu s'effectuera en combinaison avec le TP6.
8. SEMAINE COURANTE →
9. Semaine 7
9.1. CM7 21/10/2026
Analyse syntaxique :
- Chap 6 : analyse syntaxique descendante
analist_exemples.mletanacomb_decouverte.ml
9.2. TD7 21/10/2026
- 7.2, 7.3 (analyse syntaxique avec combinateurs)
9.3. TP6 25/10/2026
Analyse lexicale et syntaxique, section 5 poly TP.
Suivant avancement : (avec analiste.ml )
- reprendre le 5.1 (suites de chiffres), éventuellement avec anacomb.ml pour les plus agiles ;
- 5.3 (connect6)
- 5.2 (expressions arithmétiques) de préférence avec anacomb.ml,
10. TOUSSAINT
11. Semaine 8
11.1. CM8 04/11/2026
- Élimination de la récursion à gauche
- Ordre supérieur sur les listes
- Retour sur les combinateurs
11.2. pas de TD
11.3. TP7 07/11/2026
- finir au moins le 5.2 (expressions arithmétiques) de préférence avec anacomb.ml,
- démarrage projet
12. Semaine 9
12.1. pas de CM
12.2. TD8 09/11/2026 lundi
- 5.5-5.7 (Ordre supérieur)
12.3. pas de TP
13. Semaine 10
13.1. CM9 18/11/2026
- Un peu de LT ?
- Lambda-calcul
13.2. pas de TD
13.3. TP8 20/11/2026
Projet
14. Semaine 11
14.1. pas de CM
14.2. TD9 21/11/2026
- Lambda-calcul
- 10.2 (not, and)
- 10.3 (succ)
- 10.4 (plus, mult)
- 6.1, 6.2 (listes paresseuses) ?
14.3. TP9 21/11/2026
Projet
15. Semaine 12 (30 nov - 4 dec)
15.1. CM10 28/11/2026
- Modules et compilation en OCaml
15.2. pas de TD
15.3. pas de TP
16. Semaine 13 (7-11 dec)
16.1. pas de CM
16.2. TD10 09/12/2026
LT SOS
16.3. TP10 mercredi 11/12/2026
Projet
17. Semaine 14 (14 - 18 dec)
17.1. Date limite de rendu du projet: mercredi soir 18 décembre 2026 23h59
18. Semaine EXAM (4-8 janvier 2027)
18.1. Oraux d'évaluation individualisée 04/01/2027 :
- lundi 04/01/2027 8h-12h00
- lundi 04/01/2027 13h30-18h00