Planning PF (programmation fonctionnelle, Info4 - Polytech)
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 utilisantmax_int
et le typeoption
)
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)
- 3.16 (associativité de
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
etanacomb_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