Présentation générale

Description générale de l'ensemble de l'UE

L'UE d'algorithmique de découverte des programmations déclaratives comporte deux parties, i.e. 2 paradigmes de programmation illustrés par 2 langages : la programmation logique avec contraintes avec le langage ProLog et la programmation concurrente ou collaborative avec le langage Erlang. Les contenus et exercices disponibles ici concernent la partie Programmation logique avec contraintes et ProLog. Pour les contenus concernant la programmation concurrente ou collaborative et Erlang consulter le cours à coté.

Organisation générale

L'UE complète  comporte 11 semaines d'enseignements, chaque semaine ayant une séquence type Cours Magistral (1h30 tous ensemble), une séquence type Travaux Dirigées (1h30 en groupe de 32 max). Les cours commencent la première semaine, les TD la seconde semaine.

Évaluation des apprentissages (présentation chronologique)

1 partiel à la fin de la partie Programmation logique (25%),
1 note de programmation (12.5%)
1 compte-rendu sur un projet en ProLog (12.5%),
1 Examen terminal en Prolog (1/2) et Erlang (1/2) (50%).

Ressources (pour la programmation logique avec contraintes)

Moodle, EDBA, SWI-ProLog, SWISH


Bibliographie (pour la programmation logique avec contraintes)

ProLog, the Standard (P. Deransart, A. Ed-Dbali, L. Cervoni).


Planning global

Programmation Déclarative
Sem.
 Cours Trav. Dir.
1
1. Introduction générales à l'UE, Bibliographie, Planning (2/3 ProLog, 1/3 Erlang) ; Démonstration de ProLog (les liens de famille : parent, grandParent, ancetre, ...)

2 2. Programmation Logique avec contraintes   : Grammaire ProLog, Unification, Moteur d'exécution
Premiers algorithmes (dernier/somme)
1. Algorithmes sur des entiers symboliques (zero...dix) avec la relation successeur pour définir l'arithmétique. Suite avec les listes, pour une représentation des nombres (Prolog)
3
3. Algorithmique de base, propriétés des algorithmes (complétude, correction, terminaison, complexité, réversibilité, non-déterminisme)
2. Algorithmes simples sur les listes (Prolog)
4
4. Algorithmique avancée / programmation (ordre de rédaction/d'évaluation, coupure, gel, méta-programmation, contraintes)
3. Algorithmes de tri (Prolog)
5
5. Grammaires algébriques (analyse) .
4. Algorithmes orientés structure de données (Prolog)
6
6. Grammaires algébriques (synthèse)
5. Algorithmes orientés structure de contrôle (Prolog)
7
7. Partiel
6. Algorithmes orientés langages formels (Prolog)
8
8. Programmation concurrente ou collaborative: Erlang, introduction à partir de ProLog. Algorithmique de base.
7. Correction partiel
9
9. Grammaires régulières.
8. Algorithmes de base (Erlang)
10 10. Parallélisme et communication. Motif de programmation : Producteur-consommateur
9. Tri et autres algorithmes (Erlang)
11 11. Démonstrations Erlang. Clôture de l'UE.
10. Algorithmes concurrents (Erlang)
12    11. Révisions générales (Erlang en 1er).

Last modified: Wednesday, 16 October 2019, 11:02 AM