Planning PF (programmation fonctionnelle, Info4 - Polytech)

Remonter à la page PF

1 Semaine 0

1.1 CM1 05/09/2025

1.1.1 Chap 1 : introduction à la programmation fonctionnelle en OCaml

1.2 TD1 05/09/2025

  • 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 12/09/2025

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 17/09/2025

3.1.1 Chap 2 :

  • Opérateurs logiques et structuration de données
  • Sommes et filtrage
  • Récurrence et récursion

3.2 TD2 17/09/2025

  • 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

3.3 pas de TP : WECS

4 Semaine 3

4.1 CM3 25/09/2024

4.1.1 Chap 2

  • bienfaits du filtrage

4.1.2 Chap 3

  • évaluation, environnement jsq let rec

4.2 TD3 25/09/2025

  • 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.2.1 R1 : 2025

fait: fr 5.1 a 5.4 + 2.2 + commencé le 3.14 (mon interpretation de liste)

4.2.2 TD3 25/09/2025

  • 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 TP2 26/09/2025

4.3.1 Arbres binaires, ABR

Section 2 du poly TP

5 Semaine 4

5.1 CM4 01/10/2025

5.1.1 Chap 3

  • fin évaluation du let rec

5.1.2 Chap 4 :

  • ordre sup élémentaire
  • curryfication
  • typage jsq fun x -> x x,

5.2 TD4 01/10/2025

  • 3.7, 3.8 (fonctions simples sur les listes)
  • 3.15, 3.16 (propriétés de append et preuves)

5.3 TP3 03/10/2025

  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 08/10/2025

  • 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 08/10/2025

  • 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 10/10/2025

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 15/10/2025

7.1.1 Chap 7

  • Type unit, effets IO et en mémoire, types mutables et tableaux

7.2 TD6 15/10/2025

  • 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 17/10/2025

7.3.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.

7.4 CC

Listes et arbres

Venez avec vos PCs. Vous devrez rendre un fichier .ml qui compile sans erreur.

8 SEMAINE COURANTE →

9 Semaine 7

9.1 CM7 23/10/2025

Analyse syntaxique :

  • Chap 6 : analyse syntaxique descendante
  • analist_exemples.ml et anacomb_decouverte.ml

9.2 pas de TD

9.3 TP6 25/10/2025

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 pas de CM

11.2 TD7 7/11/2025

  • 7.2, 7.3 (analyse syntaxique avec combinateurs)

11.3 TP7 07/11/2025

  • finir au moins le 5.2 (expressions arithmétiques) de préférence avec anacomb.ml,
  • démarrage projet

12 Semaine 9

12.1 CM8 12/11/2025

  • Analyse lexicale et syntaxique par combinateurs
  • Élimination de la récursion à gauche
  • Retours sur les algorithmes rendus en TP

12.2 TD8 14/11/2025

  • 5.5-5.7 (Ordre supérieur)

12.3 TP8 14/11/2025

Projet

13 Semaine 10

13.1 CM9 19/11/2025

  • Ordre supérieur sur les listes
  • Modules et compilation en OCaml

13.2 TD9 21/11/2025

  • Lambda-calcul
    • 10.2 (not, and)
    • 10.3 (succ)
    • 10.4 (plus, mult)
  • 6.1, 6.2 (listes paresseuses) ?
  • GADT ?

13.3 TP9 21/11/2025

Projet

14 Semaine 11

14.1 CM10 28/11/2025

  • Lambda-calcul
  • GADT (Generalized Algebraic Data Types) ?

14.2 TD10 29/11/2025

LT SOS

14.3 pas de TP

15 Semaine 12 (1-5 dec)

15.1 TP10 mercredi 03/12/2025

Projet

16 Semaine 13 (8-12 dec)

Date limite de rendu du projet: lundi soir 8 décembre 2025 23h59

17 Semaine 14 (15-19 dec)

17.1 Oraux d'évaluation :

  • 15/12/2025 8h-12h00
  • 15/12/2025 13h30-18h00