Planning PF (programmation fonctionnelle, Info4 - Polytech)

Remonter à la page PF

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

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)

5.3. TP3 02/10/2026

  1. Faire un rappel sur les def recursives avec accumulateurs

    ou remonter le cours dessus avant.

5.3.1. Manipulation de (grandes) listes

Section 3 du poly TP

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)

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

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