-
Notifications
You must be signed in to change notification settings - Fork 0
Demo 2018 W25
Erik Martin-Dorel edited this page Jul 6, 2018
·
8 revisions
Link to this page: https://git.io/fYMvQ
- Se connecter à l'URL https://pfitaxel.github.io/pfitaxel-demo/
- Cliquer sur Editor
- Créer un nouvel exercice
- Choisir les méta-données ("demo_1", "Démo 1", "Démonstration 1") et Valider le formulaire
- Remplir l'onglet Question (à droite) avec le texte de l'exercice de TP (en Markdown)
- Vous pouvez copier-coller l'exemple de l'Annexe 1
- Remplir l'onglet Test.ml (à droite) avec le texte de l'évaluateur
- Vous pouvez copier-coller l'exemple de l'Annexe 2
- Remplir légèrement l'onglet Prelude (à droite) avec une définition globale de variable (montrée à l'étudiant)
- Remplir l'onglet Solution (à gauche) avec une correction complète
- Cliquer sur Save puis sur Grade
- Le résultat de la correction-test devrait s'afficher dans l'onglet Result
- Cliquer maintenant sur le bouton Gen. template
- Le buffer Template doit maintenant s'afficher avec un squelette de code
- Vous pouvez le modifier et vérifier qu'il "type-check" en cliquant sur Check
- Cliquer sur le bouton Export situé en haut (ce bouton devrait en fait s'appeler Experiment)
- On voit alors l'énoncé de l'exercice avec une mise en forme riche
- La réponse de l'étudiant doit être faite à gauche (appuyer sur Ctrl+L pour voir ?)
- Un buffer Toplevel est disponible pour faire des tests, regarder le type de fonctions, etc.
- Cliquer sur Check (vérification de syntaxe et de typage)
- Cliquer sur Grade
- Le résultat de la correction devrait s'afficher dans l'onglet Result
- Choisir une spécification de fonction (à base d'entiers ou de listes)
- Compléter les 3 fichiers nécessaires (Question, Test.ml et Solution) dans le même l'exercice demo_1
- Tester le sujet.
# Démo 1
## Question 1.
Écrivez la fonction suivante :
xor : bool -> bool -> bool
correspondant au **OU EXCLUSIF**.
*Remarque :* Vous pouvez fournir une fonction ayant un profil plus général.
## Question 2.
Écrivez la fonction suivante :
power : int -> int -> int
correspondant à l'exponentiation.
*Remarque :* `power m n` lèvera une exception (`failwith`) si `n < 0`.
open Test_lib
open Report
let () =
set_result @@
ast_sanity_check code_ast @@ fun () ->
[ Section
([ Text "Fonction:" ; Code "xor" ],
test_function_2_against_solution ~gen:0
[%ty : bool -> bool -> bool ] "xor"
[ (true, true) ; (true, false) ; (false, true); (false, false) ]) ;
Section
([ Text "Fonction:" ; Code "power" ],
test_function_2_against_solution ~gen:4
[%ty : int -> int -> int ] "power"
[]
)
]