Planning PF (programmation fonctionnelle, Info4 - Polytech)
1. SEMAINE COURANTE →
2. Semaine 0
2.1. CM1 04/09/2026
2.1.1. Chap 1 : introduction à la programmation fonctionnelle en OCaml
2.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
3. Semaine 1
3.1. TP1 11/09/2026
3.1.1. Vérification des installations
3.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.
4. Semaine 2
4.1. CM2 16/09/2026
4.1.1. Chap 2 :
- Opérateurs logiques et structuration de données
- Sommes et filtrage
- Récurrence et récursion
4.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)
Fait R1:
- 1.8 (portées) : correction (fait maison)
- 2.1 (arbres binaires)
- listes : 3.1 (
listeintseulement ; somme des éléments) ; - 2.3
4.3. TP2 18/09/2026
4.3.1. Arbres binaires, ABR
Section 2 du poly TP
5. Semaine 3
5.1. CM3 23/09/2024
5.1.1. Chap 2
- bienfaits du filtrage
5.1.2. Chap 3
- évaluation, environnement jsq
let rec
5.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)
5.2.1. R1 : 2026
fait: fr 5.1 a 5.4 + 2.2 + commencé le 3.14 (mon interpretation de liste)
5.2.2. TD3 25/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)
5.3. pas de TP : WECS
6. Semaine 4
6.1. CM4 30/09/2026
6.1.1. Chap 3
- fin évaluation du let rec
6.1.2. Chap 4 :
- ordre sup élémentaire
- curryfication
- typage jsq
fun x -> x x,
6.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)
7. Semaine 5
7.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 ?)
7.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
7.3. TP4 09/10/2026
7.3.1. File à priorité
Section 4 du poly TP
7.3.2. (*) Vérification ABR avec exception + suppression
Section 2 du poly TP, fin
8. Semaine 6
8.1. CM6 14/10/2026
8.1.1. Chap 7
- Type unit, effets IO et en mémoire, types mutables et tableaux
8.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)
8.3. TP5 16/10/2026
8.4. Contrôle continu PF
Listes et arbres
Venez avec vos PCs. Vous devrez rendre un fichier .ml qui compile sans erreur.
8.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.
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,
Un petit bilan du TP
contexte : le td et le cours sur l'analyse syntaxique arrivent apres les vacances, ce qui a rendu le TP de ce vendredi un peu fastidieux.
Je leur ai donné une solution pour horner, mais malgré ca beaucoup ont avancé doucement (tp 5, AS avec analist.ml). Certains ont eu du mal a comprendre qu'analist permettait aussi bien de fait de l'analyse lexicale que syntaxique par exemple. J'ai senti un peu de découragement chez certains (bon, c'était le vendredi des vacances aussi).
Pour le cc, comme convenu avec Pierre, j'ai pris à part les 3 plus faibles rendus pour en discuter de vive voix. Stein semblait quand même bien comprendre ses erreurs, qui étaient en fait effectivement plutot des étourderies. Pour Bouti, le problème était plutot qu'elle lisait les questions de travers et qu'elle cherchait (et trouvait) la complication, mais son niveau en PF me parait acceptable. Quant à Sawafi, il m'avait demandé de pouvoir partir tot pour avoir son avion, et je n'ai pas tilté à ce moment que c'etait un de ceux que je voulais voir.
Bref, il ne me semble pas y avoir de grosses catas en PF comme les 2 années précédentes.
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