Plateforme Jupyter: mode examen, évaluation et nouvelles fonctionnalités¶

Avril 2025

Marc BUFFAT département-composante mécanique, Université Claude Bernard Lyon 1

Programme¶

  1. Introduction
  2. Mode examen : point de vue étudiant
    • exemple en live d'un examen de TP Python en L2 ( 10'')
  3. Mode examen : vue enseignant (nbgrader)
    • récupération, examen des copies, notation et feedback
  4. Mode examen : vue enseignant (gestion de cours)
    • automatisation des étapes précédentes
  5. Création d'un examen : vue enseignant
    • les différentes approches disponibles
  6. Nouvelles fonctionnalités de la plateforme Jupyter:
    • nouveaux noyaux R, C++, Julia
    • IA et machine learning
    • Simplification de l'interface

Introduction¶

Besoins pédagogiques¶

La maîtrise d'outils numériques pour traiter des données, analyser et/ou modéliser est une compétence indispensable à acquérir par nos étudiants dans beaucoup de domaines scientifiques.

  • $\leadsto$ mise en place de séances de TP utilisant des notebooks et l'infrastructure Jupyter
  • Infrastructure Jupyter à Lyon 1 : https://jupyter.univ-lyon1.fr

Question : comment s'assurer de cette maîtrise ?

  1. Évaluation des comptes rendus de TP (problématique : copier-coller, CHATGPT, ..)
  2. Évaluation par l'enseignant pendant la séance (peut être compliquée)
  3. Orale de TP (peut être chronophage)
  4. Examen de TP (solution proposée !)

Examens de TP¶

Difficultés pour un examen de TP utilisant des outils numériques (Notebook Jupyter)

  1. examen sur papier ou QCM pas très adapté
  2. $\leadsto$ examen en ligne sur ordinateur
    • mais comment éviter la triche ! (chatgpt, internet ...)
  3. solution mise en place: serveur jupyter-exam
    • mise en place d'une plateforme d'examen sur un serveur Jupyter
    • contrôle d'accès à travers l'interface (mode plein écran, limitation des menus)
    • examen surveillé en présentiel (salle de TP informatique)
    • examen sans accès internet, sans documents sauf du papier+crayon
    • sujet: refaire dans un notebook le type de traitement numérique vu en TP
    • examen blanc pour montrer le fonctionnement aux étudiants

Mode examen : point de vue étudiant¶

  1. Examen de TP (Python débutant en L2)
  2. Se connecter sur la plateforme jupyter-exam avec ses identifiants Lyon 1

    serveur: jupyter-exam.univ-lyon1.fr

  3. Instructions une fois connecté
  • dans l'onglet nbgrader: sélectionner course UEtest
  • puis dans downloaded assignement, cliquer sur EXAM_TP (nom de l'examen)
  • puis en dessous sur examen pour récupérer votre copie d'examen
  • enfin cliquez sur le bouton mode examen -> passage en mode examen
    • vous devez rester dans ce mode plein écran
    • sinon un message vous demande d'y revenir immédiatement
    • log sur le serveur du mode de tous les étudiants

Mode examen : vue enseignant (nbgrader)¶

Par les enseignants de l'équipe pédagogique uniquement:

  1. Récupération des copies des étudiants
  2. Évaluation des copies, notation
  3. Feedback

    sur le serveur: jupyter-exam.univ-lyon1.fr

  • dans l'onglet Portail sélection du portail de l'UE: ici Portail_test
  • dans la page Portail_test on clique sur UE_test interface lab nbgrader pour accéder au cours UE_test
  • dans le cours UE_test on clique sur l'onglet Nbgrader -> Formgrader
  • sur cette page nbgrader, on peut récupérer toutes les copies des étudiants (collect), puis analyser chacune des copies individuellement pour les noter automatiquement (autograde) ou manuellement
  • application: analyser votre propre copie

Mode examen : vue enseignant (gestion de cours)¶

Pour automatiser les étapes précédentes, accès à la partie gestion de cours pour:

  1. Récupérer automatiquement toutes les copies des étudiants
  2. Lancer l'évaluation automatique de toutes les copies
  3. Générer un bilan pour tous les étudiants avec un accès simple à leurs copies et avec un test simple de similarité entre toutes les copies (indice de Jaccard)
  4. Génération des notes et d'un feedback exportable simplement sous Tomuss
  5. Génération d'un fichier de notes (format csv) récupérable

Accès à la gestion de cours¶

sur le serveur: jupyter-exam.univ-lyon1.fr

  • dans l'onglet Portail sélection du portail de l'UE: ici Portail_test
  • dans la page Portail_test on clique sous Gestion/Validation des cours sur le nom UE_test gestion/validation pour accéder à gestion du cours UE_test
  • puis sur la page de gestion du cours UE_test, sous Gestion TP, on clique sur le nom TP: Exam_TP qui permet d'accéder à la page d'analyse l'examen de TP Exam_TP
  • visualisation des logs durant l'examen (menu Admin -> Log Exam)

Création d'un examen avec un notebook¶

2 options :

  • notebook à trous avec des instructions et des cellules vides de réponses (Manually graded answer)
    • $\leadsto$ évaluation manuelle des copies
  • notebook avec un test des réponses (Autograded answer)
    • $\leadsto$ évaluation (semi-)automatique des copies

principe: inclure des tests dans la cellule sous le code à évaluer (Autograded test)

  • utilisation de la fonction python assert()
  • Lève une exception (erreur) si réponse fausse

Possibilité de définir un barème (même avec une évaluation manuelle) pour chaque question et générer un feedback.

attention tests d'évaluation $\neq$ test de validation de code

  • le test ne doit pas fournir la solution !
  • test si les étudiants utilisent ou n'utilisent pas des fonctions de librairie
  • test les sorties graphiques (plot)
  • détection du plagiat entre étudiants
  • attention aux erreurs d'arrondies

options nbgrader supplémentaires

  • read-only
  • manually graded task réponse plus longue sur plusieurs cellules

Implémentation avec nbgrader¶

mode Create Assignement

Type des cellules avec nbgrader

  • readonly, autograded answer, autograded test
  • définition de la solution

    • ### BEGIN SOLUTION
    • ### END SOLUTION
  • tests cachés

    • ### BEGIN HIDDEN TESTS
    • ### END HIDDEN TESTS

exemple : EXAM_TP sous UEtest sur jupyter-exam.univ-lyon1.fr

Fonctionnalités avancées¶

  1. mode examen

    • contrôle d'accès à la plateforme (limitation aux étudiants inscrits à l'examen)
    • liste des étudiants connectés avec leurs adresses IP
    • utilisable (en partie) avec d'autres noyaux
  2. évaluation des CR de TP (mode gestion de cours)

    • évaluation des notebooks
    • évaluation des CR de TP (en markdown ou LaTeX)
    • évaluation de librairies Python ou de script Python

Nouvelles fonctionnalités de l'infrastructure jupyter¶

Nouveaux noyaux de programmation¶

Jupyterbook Jupyter/nbgrader

  1. Noyau R (IR kernel)
  2. Noyau C++ (cling / xeus)
  3. Noyau Jupyter AI / Ollama (IA générative en locale)
  4. Serveur X11 xpra / nbgrader

Exemples sur GPU1-nbgrader.univ-lyon1.fr

Serveurs Jupyter avec GPU¶

Jupyterbook Using GPU Jupyter/nbgrader

GPUs can not be shared, but GPUs must be shared !

  1. serveur IAGPU2-nbgrader.univ-lyon1.fr
    • 2 GPU A100 (2*80Go) 80 coeurs + 328 Go RAM
    • pour des cours IA / ML (accessible sur demande)
  2. serveur IAGPU1-nbgrader.univ-lyon1.fr
    • 1 GPU A100 (80Go) 40 coeurs et 164 Go RAM
    • projet / travail individuel des étudiants
  3. serveur GPU1-nbgrader.univ-lyon1.fr
    • 2 GPU A40 (2*46Go) 86 coeurs et 700Go RAM
    • pour des cours IA / ML (accessible sur demande)

Exemples sur GPU1-nbgrader.univ-lyon1.fr

Questions ?¶

quelques références:¶

  • site jupyter https://jupyter.org

  • Teaching with Jupyter: https://jupyter4edu.github.io/jupyter-edu-book

  • Infrastructure Jupyter à Lyon 1 : https://jupyter.univ-lyon1.fr

  • Exemples de Notebooks: https://perso.univ-lyon1.fr/marc.buffat

The END¶