Planning PF (programmation fonctionnelle, Info4 - Polytech)

Remonter à la page PF

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 (listeint seulement ; somme des éléments) ; 3.2, 3.4 (en utilisant max_int et le type option)

Fait R1:

  • 1.8 (portées) : correction (fait maison)
  • 2.1 (arbres binaires)
  • listes : 3.1 (listeint seulement ; 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)

6.3. TP3 02/10/2026

  1. Faire un rappel sur les def recursives avec accumulateurs

    ou remonter le cours dessus avant.

6.3.1. Manipulation de (grandes) listes

Section 3 du poly TP

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)

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_list et array_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.ml et anacomb_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