Planning PF (programmation fonctionnelle, Info4 - Polytech)

Remonter à la page PF

1 Semaine 0

1.1 CM1 07/09/2023

1.1.1 Chap 1 : introduction à la programmation fonctionnelle en OCaml

2 Semaine 1

2.1 CM2 13/09/23

2.1.1 Chap 2 :

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

2.2 TD1 13/09/23

  • 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.3 TP1 15/09/23

2.3.1 Vérification des installations

2.3.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 CM3 20/09/23

3.1.1 Chap 2

  • bienfaits du filtrage

3.1.2 Chap 3

  • évaluation, environnement jsq let rec

3.2 TD2 20/09/23

  • 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)

4 Semaine 3

4.1 TP2 mardi 26/09/23

4.1.1 Arbres binaires, ABR

Section 2 du poly TP

4.2 CM4 27/09/23

4.2.1 Chap 3

  • fin évaluation du let rec

4.2.2 Chap 4 :

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

4.3 TD3 27/09/23

  • 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 Semaine 4

5.1 CM5 04/10/23

  • 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 ?)

5.2 TD4 04/10/23

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

5.3 TP3 06/10/23

5.3.1 Manipulation de (grandes) listes

Section 3 du poly TP

6 Semaine 5

6.1 CM6 11/10/23

6.1.1 Chap 7

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

6.2 TD5 11/10/23

  • 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 13/10/23

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 CM7 18/10/23

Analyse syntaxique :

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

7.2 TD6 18/10/23

  • 7.1 (analyse syntaxique de suites de chiffres)

7.3 TP5 20/10/23

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 DM ?

8 Semaine 7

8.1 CM8 25/11/23

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

8.2 TD7 25/11/23

  • 7.2, 7.3 (analyse syntaxique avec combinateurs)

8.3 TP6 27/11/23

Analyse lexicale et syntaxique, section 5 poly TP.

Suivant avancement :

  • reprendre le 5.1 (suites de chiffres) avec anacomb.ml ; il est possible de sauter cette étape ;
  • 5.2 (expressions arithmétiques) de préférence avec anacomb.ml, ou avec analist.ml
  • 5.3 (connect6, facultatif) avec anacomb.ml.

9 TOUSSAINT

10 Semaine 8

10.1 CM9 08/11/23

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

10.2 TD8 08/11/23

  • 5.5-5.7 (Ordre supérieur)

10.3 TP7 10/11/23

  • démarrage projet

11 SEMAINE COURANTE →

12 Semaine 9

12.1 CM10 15/11/23

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

12.2 TD9 15/11/23

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

12.3 TP8 17/11/23

Projet, contrôle continu

13 Semaine 10

13.1 TD10 22/11/23

LT SOS

13.2 TP9 24/11/23

Projet

14 Semaine 11

14.1 TP10 01/12/23

Projet

15 Semaine 12 (4-8 dec)

Rien

16 Semaine 13 (11-15 dec)

Oraux d'évaluation :

  • 13/12/23 8h-12h30
  • 15/12/23 8h-12h30
  • 15/12/23 13h30-17h30