Une première question

A partir de l’interface Moodle de création d’une nouvelle question, il faut choisir CodeRunner pour type de question:

_images/choix.png

On obtient alos la page de création de la question. Pour notre exemple (écriture en Python d’une fonction renvoyant le plus petit élément d’une liste), il faut chosir python3 pour le type de question :

_images/choix-lang.png

Il faut ensuite désigner une catégorie pour la question, lui donner un nom et rédiger l’énoncé correspondant:

_images/redaction.png

Une fois ceci réalisé la section Answer box preload permet comme son nom l’indique de pré-remplir la zone de réponse de l’étudiant, on peut par exemple y mettre l’entête de déclaration de la fonction :

_images/answer-box.png

Il faut ensuite définir les tests d’évaluation du code, ceci se fait dans la section Test cases. Dans cette partie on doit définir le code à exécuter (ce dernier sera exécuté sur un serveur à part) et le résultat attendu. On peut donc par exemple, demander à exécuter print(minimum([6,7,2,8,9])) et indiquer que le résultat attendu est 2.

_images/test.png

Par défaut, on peut définir 5 tests, nous verrons plus loin comment cacher certains de ces tests afin que l’étudiant n’écrive pas un code qui ne marche que pour les tests définis. Nous verrons aussi par la suite, comment engendrer de façon aléatoire un ensemble de tests.

Pour anticiper ce qui sera expliqué par la suite, en cliquant sur l’option Customize de la section CodeRunner question type, on peut voir alors dans la section Customise le code qui va être exécuté sur le serveur externe :

_images/jobe.png

De ce pseudo-code (écrit en TWIG), il faut retenir que la partie {{ STUDENT_ANSWER }} va être remplacée par le code de la fonction développée par l’étudiant. La boucle for va être remplacée par une boucle standard Python et la partie {{ TEST.testcode }} va être remplacée par les instructions spécifiées dans la section Test cases et tout ceci va être évalué sur un serveur externe. Chaque résultat obtenu sera comparé avec le résultat spécifié dans la zone Expected output de la section Test cases.

Cliquez en bas de la page sur Enregistrer les modifications et continuer puis sur Aperçu afin de visualiser et tester la question.

_images/visu-question.png

Une fois le code écrit il suffit de cliquer sur Vérifier pour lancer les tests.

_images/visu-question2.png

Avertissement

Comme précisé précédemment, le code est évalué sur un serveur externe (le Jobe server). Par défaut ce serveur externe est celui de l’université de Canterbury. Ce dernier peut être utilisé pour effectuer quelques tests mais ne doit en aucun cas être utilisé en environnement de production. Pour une utilisation réeelle de CodeRunner, il faudra installer son propre Jobe Server et préciser son adresse lors de l’installation du plugin sous Moodle.