CodeRunner : 1ère utilisation

Introduction

CodeRunner est un plugin Moodle permettant de fournir des questions dans un Test Moodle qui nécessitent une tâche de programmation de la part de l’étudiant.

  • localisé actuellement sur https://moodle-prep.umontpellier.fr/ , authentification par le couple login/mot de passe habituel, accessible uniquement sur le domaine umontpellier.fr
  • l’auteur devra saisir :
    • le texte de la question
    • le type de question (on peut aller des questions prédéfinies à des questions personnalisées en utilisant un template Twig …
    • les cas de test qui permettront d’évaluer les réponses des étudiants

Une question sur la fonction factorielle

  1. Ouvrir la banque de questions d’un cours;
  2. Créer une catégorie « questions CodeRunner » afin de les distinguer des autres
  3. Créer une nouvelle question de type CodeRunner : s’ouvre alors un formulaire très imposant !
  4. Choisir comme ‘Question Type’, c_function : l’étudiant devra répondre en écrivant le code d’une fonction.
  5. ‘Customization’ : n’hésitez pas à cocher la case ‘Customize’ car cela vous permettra de visualiser (sans le modifier pour l’instant !) le template Twig du programme construit avec un main qui passe en revue les cas de test.
  6. Ne modifier pas les autres champs de cette section Question Type.
  7. Visualisez la section Customization (sans rien modifier)  afin de comprendre que la fonction main() passe en revue tous les cas de tests que vous allez définir par la suite :
  8. {{ STUDENT_ANSWER }}
    
    int main() {
    {% for TEST in TESTCASES %}
       {
        {{ TEST.testcode }};
       }
  9. Passer à la section ‘Généraux’ qui est la plus importante :
  10. Indiquer la catégorie « questions CodeRunner », le nom de la question « C function fact », et le texte de la question : « Ecrire le code de la fonction unsigned int fact(unsigned int n)  qui retourne n!, c’est-à dire n*(n-1)*(n-2)*2*1. Comme  cas particulier, 0!=1. »
  11. Dans la section Answer , saisissez le code la fonction fact, et cochez la case ‘Validate on save’ afin de vérifier lors de l’enregistrement de la question, que votre code est correct
  12.  unsigned int fact(unsigned int n){
        if(n<2)
            return 1;
        else 
            return n*fact(n-1);
    }
  13. Dans la section TestCases, saisissez plusieurs couples suivants (Test case i, expected output)  :
  14. Test Case 1 :  printf("%d",fact(4));
    Expected output :  24
    
  15. Vous pouvez (devez) utiliser un Test Case comme ‘Use as example’ afin qu’il soit montré aux étudiants avant leur premier essai
  16. Enfin, cliquez sur « enregistrer les modifications et continuer », puis cliquez sur « Aperçu » afin de visualiser la question comme un étudiant et de tester avec une version étudiante de la fonction fact
  17. Si l’enregistrement plante, vérifier que votre code dans la section Answer est correct …
  18. Pour aller plus loin :

Exportation

A l’heure actuelle, seule l’exportation au format XML permet de transférer des questions CodeRunner d’un Moodle à l’autre : questionsCodeRunner.xml

Trucs

  • Préférer cloner une question déjà existante, cela permet de ne pas re-saisir les printf dans les cas de test