Équipe enseignante — Hiver 2026

Ressources

Évaluation et échéancier des rendus

Description Pondération Échéance
Quiz 1* 5% Semaine 4
TP0 10% Semaine 6
Quiz 2* 5% Semaine 7
Examen intra 30% Semaine 8
TP1 10% Semaine 10
Quiz 3* 5% Semaine 13
Examen final 30% Semaine 15
TP2 10% Semaine 15
* Seuls les deux meilleurs quiz sur trois seront considérés.

Conditions de réussite:
La réussite du cours requiert une note cumulative minimale de 50 % ainsi qu’une moyenne d’au moins 50 % aux examens (intra et final). Si l’une de ces conditions n’est pas remplie, le cours est considéré comme non réussi, indépendamment de la note cumulative.

Notes de cours

Le code source des exemples donnés dans le cours est disponible dans le dépôt correspondant.

Semainier des séances

# Semaine Diapositives Laboratoires
1 12-18 Janvier Chapitre 0 : Introduction - pdf 🖼
Chapitre 1 : Bases de la programmation fonctionnelle - pdf 🖼
Laboratoire 1
(solution)
2 19-25 Janvier Chapitre 2 : Fonctions et récursivité - pdf 🖼
Exercice pour le prochain cours: Résoudre les deux exercices de λ-calcul à la fin du chapitre 2 (pages 94 et 95)
Laboratoire 2
(solution)
3 26 Janvier - 1 Février Chapitre 3 : Types fonctionnels - pdf 🖼
Énoncé du TP0
Laboratoire 3
(solution)
4 2-8 février Chapitre 3 : Types fonctionnels (suite) - pdf 🖼
Chapitre 4 : Fonctions d'ordre supérieur - pdf 🖼
Exemple avec les types records
Exercice pour le prochain cours: implémentation de la fonction filter_map (page 46 du chapitre 4)
Quiz 1 (sur Moodle)
Laboratoire 3 (suite)
(solution)
5 9-15 Février Retour sur le quiz 1
Chapitre 4 : Fonctions d'ordre supérieur (suite)
Exemples faits dans le cours
Laboratoire 4
(solution)
6 16-20 Février Chapitre 5 : Encapsulation et modules - pdf 🖼
Exemples supplémentaires sur la création de modules
Remise du TP0 (sur Gitlab)
Énoncé du TP1
Laboratoire 5
(solution)
7 23 Février - 1 Mars Chapitre 6 : Preuves de programmes - pdf 🖼
Quiz 2 (sur Moodle)
Exercice
Laboratoire 6
(solution)
2-8 Mars SEMAINE DE RELÂCHE Pas de labo
8 9-15 Mars Examen intra - 9 Mars de 18:00 à 21:00 (Les salles d'examen sont disponibles sur Moodle)
Notions à savoir pour l'examen
Pour un exemple d'ancien examen, référez-vous au Laboratoire 6 (solution).
Pas de labo
9 16-22 Mars Correction de l'intra
Chapitre 7 : Programmation logique - pdf 🖼 (version annotée sur Moodle)
Laboratoire 7
(solution)
10 23-29 Mars Chapitre 7 : Programmation logique (suite)
Remise du TP1 (sur Gitlab)
Laboratoire 8
(solution)
11 30 Mars - 5 Avril Chapitre 11 : Programmation par contraintes - pdf 🖼 (version annotée sur Moodle)
Énoncé du TP2
Laboratoire 9
(solution)
12 6-12 Avril CONGÉ DE PÂQUES Laboratoire 11
(solution)
13 13-19 Avril Chapitre 8 : Interprétation d'un langage fonctionnel - pdf 🖼
Voici un lien vers l'interpréteur utilisé dans le cours.
Quiz 3 (sur Moodle)
Laboratoire 10
(solution)
14 20-26 Avril Chapitre 9 : Typage - pdf 🖼
Séance de révision.
Notions à savoir pour l'examen
Les exemples effectués en classe lors de la séance de révision sont disponibles sur Moodle.
Laboratoire 10
(solution)
15 27 Avril - 3 Mai Examen final - 27 avril de 18:00 à 21:00 (L'examen aura lieu au pavillon Hubert Aquin au campus central (Berri-UQAM). Le local exact sera annoncé sur Moodle le jour de l'examen.)
Notions à savoir pour l'examen
Pour un exemple d'ancien examen, référez-vous au Laboratoire 11 (solution).
Pour d'autres exemples, les diapos du cours du 20 avril sont sur Moodle.
Remise du TP2 (sur Gitlab) au plus tard le dimanche 3 mai (aucun retard accepté)
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 :

Pour la partie en Prolog :

Pour dessiner des arbres de résolutions, voir sldnfdraw-dot.