Équipe enseignante — Hiver 2025
- Quentin Stiévenart. stievenart.quentin@uqam.ca, bureau : PK-4735. Office hours (garantie de présence) le mardi de 14h à 17h.
Ressources
- Plan de cours
- Description officielle et horaires
- Support académique pour les travaux et autres.
- Un canal de discussion en ligne est disponible pour interagir avec les enseignants, démonstrateurs et les autres étudiants. Pour les questions d’ordre général, utilisez ce canal Mattermost et attendez un délai de quelques jours avant de relancer.
Évaluation et échéancier des rendus
Description | Pondération | Échéance |
---|---|---|
Quiz 1 | 2.5% | Semaine 4 |
TP0 | 5% | Semaine 6 |
Examen intra | 32.5% | Semaine 8 |
TP1 | 15% | Semaine 10 |
Quiz 2 | 2.5% | Semaine 12 |
Examen final | 32.5% | Semaine 14 |
TP2 | 10% | Semaine 15 |
Entente à signer à la semaine 2.
Notes de cours
- Chapitre 0 : Introduction
- Chapitre 1 : Concepts de base
- Chapitre 2 : Fonctions et récursivité
- Chapitre 3 : Types fonctionnels
- Chapitre 4 : Fonctions d’ordre supérieur
- Chapitre 5 : Encapsulation et modules
- Chapitre 6 : Tests et preuves
- Chapitre 7 : Programmation logique
- Chapitre 11 : Programmation par contraintes
- Chapitre 8 : Interprétation d’un langage fonctionnel
- Chapitre 9 : Unification et typage
Chapitre 10 : Interprétation d’un langage logique(matière non couverte)
Le code source des exemples donnés dans le cours est disponible dans le dépôt correspondant.
Les solutions des laboratoires sont disponibles ici.
Semainier des séances
# | Semaine | Diapositives | Laboratoires |
---|---|---|---|
1 | 6-10 Janvier | Chapitre 0 : Introduction - pdf 🖼
Chapitre 1 : Bases de la programmation fonctionnelle - pdf 🖼 | Laboratoire 1 |
2 | 13-17 Janvier | Chapitre 2 : Fonctions et récursivité - pdf 🖼 | Laboratoire 2 |
3 | 20-24 Janvier | Chapitre 3 : Types fonctionnels - pdf 🖼
Énoncé du TP0 | Laboratoire 3 |
4 | 27-31 Janvier | Chapitre 3 : Types fonctionnels (suite) - pdf 🖼
Chapitre 4 : Fonctions d'ordre supérieur - pdf 🖼 Quiz 1 (sur Moodle) | Laboratoire 3 (suite) |
5 | 3-7 Février | Chapitre 4 : Fonctions d'ordre supérieur (suite) | Laboratoire 4 |
6 | 10-14 Février | Chapitre 5 : Encapsulation et modules - pdf 🖼
Remise du TP0 (sur Gitlab) Énoncé du TP1 | Laboratoire 5 |
7 | 17-21 Février | Chapitre 6 : Preuves de programmes - pdf 🖼 | Laboratoire 6 |
8 | 24-28 Février | Examen intra - 24 Février de 18:00 à 21:00 au DS-R510 | Pas de labo |
9 | 10-14 Mars | Correction de l'intra
Chapitre 7 : Programmation logique - pdf 🖼 | Laboratoire 7 |
10 | 17-21 Mars | Chapitre 7 : Programmation logique (suite)
Remise du TP1 (sur Gitlab) Énoncé du TP2 | Laboratoire 8 |
11 | 24-28 Mars | Chapitre 11 : Programmation par contraintes - pdf 🖼 | Laboratoire 9 |
12 | 31 Mars - 4 Avril | Chapitre 8 : Interprétation d'un langage fonctionnel - pdf 🖼
Quiz 2 (sur Moodle) | Laboratoire 10 |
13 | 7-11 Avril | Chapitre 9 : Typage - pdf 🖼 | Laboratoire 11 |
14 | 14-18 Avril | Examen final - 14 avril de 18:00 à 21:00 au DS-R510 | Correction de l'examen |
15 | 21-25 Avril | Congé
Remise du TP2 (sur Gitlab) | Pas de labo |
Guide de style
Pour les évaluations, la qualité de votre code sera évaluée en fonction du guide de style du cours.
Référence
Pour la partie en OCaml :
- OCaml Programming: Correct + Efficient + Beautiful, Clarkson, M. (version PDF)
- Développement d’applications avec Objective Caml, Chailloux, E., Manoury, P., Pagano, B.
- A Tour of OCaml
- Manuel du langage
Pour la partie en Prolog :
- Flach, P. Simply Logical (Chapitres 1 à 4)
- Pour aller plus loin que le cours : Triska, M. The Power of Prolog
- Exercices P-99
Pour dessiner des arbres de résolutions, voir sldnfdraw-dot.