-
Notifications
You must be signed in to change notification settings - Fork 9
Home
simonr89 edited this page Mar 23, 2022
·
22 revisions
- Slides du cours n°1
- Notes du cours n°2 [erratum du 3/02: la figure 2 contenait une erreur (dans la règle concernant les lambda-abstractions) qui est désormais corrigée]
- Notes du cours n°3
- Notes du cours n°4
-
Notes du cours n°5 [erratum du 03/03: la définition de sumUpToTR2 faisait appel à la fonction
aux
avant et après sa définition] - Notes du cours n°6
- pas de cours à lire ni de QCM pour la séance du 16/03
La difficulté des exercices est notée de 1 à 3 étoiles. Les exercices à 3 étoiles représentent un défi supérieur à ce qui est normalement attendu dans ce cours: pas d'inquiétude si vous ne trouvez pas la solution.
Le code des TP est disponible sur ce dépôt Git. Consultez le fichier README pour bien démarrer.
- Le mini-projet est à réaliser en groupe de 1 à 3 étudiants.
- Pour déclarer un groupe, envoyez un mail indiquant le nom des membre du groupe et le sujet choisi. Le mail est à envoyer à simon.robillard@umont___.fr, en mettant en copie les membres du groupe.
- Les groupes devront être constitué, et les sujets choisis, avant la séance du 9 mars.
- Vous devez choisir un projet parmi ceux-listés ci-dessous (à venir). Plusieurs groupes peuvent travailler sur le même sujet. Il est aussi possible de proposer un sujet de programmation de votre choix, sous réserve d'acceptation. Si vous avez une idée de sujet, discutez en avec moi suffisamment tôt.
- La coopération et la discussion entre groupes sont encouragées. Le partage de code est en revanche strictement interdit et comptera comme du plagiat pour les deux groupes impliqués.
- Le projet est à rendre avant le vendredi 25 mars 2022 à 18h00
- Pour rendre le projet, envoyez un mail avec au choix le code source du projet en PJ, ou un lien vers un dépôt Github public où le projet sera stocké
- Sujet 1: interpréteur pour le lambda-calcul
- Sujet 2: calculateur de probabilités pour le poker
- Sujet 3: bibliothèque de calcul symbolique
- Le projet est à réaliser en Scala 3
- Le projet se concentre sur les aspects fonctionnels de Scala, et ne devra pas utiliser les aspects impératifs. En particulier, l'usage des mots-clé
var
,while
,for
, ainsi que des structures de données mutables est interdit. - Vous pouvez utiliser les structures de données et les fonctions offertes par la bibliothèque standard, à l'exception de celles citées dans le point précédent.
- Le code devra inclure un
main
qui donnera un exemple des différentes fonctionnalités implémentées. - Le rendu comprendra un bref rapport (au format txt ou pdf) pour justifier vos choix d'implémentation.
- La notation prendra en compte la fonctionnalité et la qualité du code. La présence de tests unitaires pourra donner lieu à des points bonus.