Modalités du cours
Organisation
Pour chaque paradigme:
- un CM de présentation de 1h15
- quatre séances de TP (une seule pour le paradigme impératif)
- une séance de restitution et bilan (45 min)
À la fin du cours, 3h de conclusion et d’ouverture
Évaluation
L’évaluation est découpée en deux parties de valeurs égales :
- Présentation de restitution sur un paradigme, par groupe
→ inscription sur teide, explications lors du premier CM
→ voir les consignes pour les
restitutions
- Examen final de 2h en salle machine
→ document autorisé : un portfolio réalisé par vos soin (1 feuille
recto-verso par paradigme)
Supports de cours
Programmation
fonctionnelle avec Haskell
Programmation déclarative
avec Prolog
Programmation impérative avec
Ada
Programmation
Orientée Objet avec Crystal
Mode d’emploi (déroulant) pour déboguer les erreurs
statiques de type données par crystal
Supposons que
crystal sudoku_benchs.cr affiche l’erreur statique
suivante:
Showing last frame. Use --error-trace for full trace.
In abstract_logic.cr:144:3
144 | def initialize(grid : Grid)
^-------
Error: can't instantiate abstract class Logic
Contrairement à ce
que suggère le message --error-trace n’ajoutera pas d’info
ici, car sur crystal seul, ça n’affiche des infos que sur
les erreurs d’exécution. Pour avoir plus de contexte sur l’erreur de
typage statique, il faut utiliser
crystal build sudoku_benchs.cr --error-trace. Là, on
obtient:
In sudoku_benchs.cr:512:7
512 | Bench.run(Logic, default_timeout) # erreur statique
^--
Error: instantiating 'Bench.run(Logic.class, Time::Span)'
In sudoku_benchs.cr:423:31
423 | logic = -> (g : Grid) { c.new(g) }
^--
Error: instantiating 'Logic.new(Grid)'
In abstract_logic.cr:144:3
144 | def initialize(grid : Grid)
^-------
Error: can't instantiate abstract class Logic
On a ainsi la suite
des appels qui conduisent à cette erreur de typage.
Sortie attendue de sudoku_benchs sur HiddenSingle
Tout est résolu, sauf le dernier. Si besoin, augmentez un peu les
timeout:
## test of HiddenSingle ##
### SUCCESS
###> 0 undo !
###> in 00:00:00.000568106 seconds
### SUCCESS
###> 12 undos
###> in 00:00:00.001464878 seconds
### SUCCESS
###> 10985 undos
###> in 00:00:00.257073541 seconds
### SUCCESS
###> 0 undo !
###> in 00:00:00.001953073 seconds
### SUCCESS
###> 1291 undos
###> in 00:00:00.168365268 seconds
### SUCCESS
###> 0 undo !
###> in 00:00:00.007798979 seconds
### SUCCESS
###> 0 undo !
###> in 00:00:00.005854863 seconds
### SUCCESS
###> 12381 undos
###> in 00:00:01.519422760 seconds
### SUCCESS
###> 0 undo !
###> in 00:00:00.008071290 seconds
### KILLED by timeout
###> 15861 undos
###> in 00:00:04.000052506 seconds
Programmation par
événements avec Tcl/Tk
Enchaînement des séances
- séance 1 : Introduction générale puis introduction au paradigme
fonctionnel
- séances 2-5 : TP Haskell
- séance 6 : Restitution sur le paradigme fonctionnel puis
introduction au paradigme logique
- séances 7-10 : TP Prolog
- séance 11 : Restitution sur le paradigme logique puis introduction
au paradigme impératif
- séance 12 : TP Ada
- séance 13 : Restitution sur le paradigme impératif puis introduction
au paradigme objet
- séances 14-17 : TP Crystal
- séance 18 : Restitution sur le paradigme objet puis introduction au
paradigme par événements
- séances 19-22 : TP par événements
- séances 23 : Restitution sur le paradigme par événements puis début
conclusion générale
- séance 24 : Conclusion générale et ouverture
Consignes pour les
restitutions
Objectif : faire un retour sur ce que vous avez
compris et retenez du paradigme
Il ne faut pas faire une présentation du paradigme (que vous avez déjà
eu lors du cours d’introduction à ce paradigme).
Voici quelques exemples de points que vous pouvez mettre en avant :
- Quelles sont, selon vous, les forces et les faiblesses de ce
paradigme ?
- Qu’est-ce qui, selon vous, le différencie des autres paradigmes que
vous connaissez ? Quelles sont ses spécificités ?
- Qu’est-ce qui vous a marqué lors de l’utilisation de ce paradigme en
TP (de spécifique au paradigme) ?
Modalités :
- Vous n’avez que 10 minutes de présentation, et vous serez coupés à
la fin de cette durée.
- Vous n’êtes pas tous obligés de parler pendant la présentation.
- Vous pourrez projeter des diapositives en support de votre
présentation (cela sera fait depuis l’ordinateur de l’enseignant pour
gagner du temps).
- Vos supports devront impérativement être au format pdf et vous
devrez les envoyer la veille au soir.
- Vous aurez accès à un tableau blanc avec quatre crayons de
couleur.
- Votre présentation est notée et cette note compte pour 50% de la
note de l’UE.
Conseil pour les supports pdf :
- Comptez environ 2 minutes par planche avec du contenu (donc hors
planche de titre).
- Éviter de surcharger ces planches, elles sont un support et ne
remplacent pas le discours.
- Éviter également les animations superflues (mais le format pdf
devrait limiter les risques).
- Enfin, répétez, répétez, répétez (cela ne prend que
10 minutes !), pour bien calibrer votre discours et vos planches à la
durée de la présentation.