1.6. Extension: mode examen avec un notebook jupyter#

Le principe est de créer une extension en javascript qui ajoute un bouton exam dans l’interface du notebook. Lorsque l’on clique sur le bouton, on force le navigateur à passer en mode plein écran sans accès à la barre de menu du navigateur (figure ci-dessous)

passage en mode examen

L’étudiant n’a plus accès à internet, et en utilisant un serveur jupyterhub dédié aux examens , il a un espace de travail vierge (donc sans les notebooks et documents du cours).

quitte le mode examen

S’il sort du mode plein écran, un message apparait lui enjoignant de revenir au mode examen. L’extension communique avec le serveur web en postant l’information sur le serveur de cours, qui le log ensuite dans journalctl avec la date, le nom de l’étudiant et l’action (passage en mode examen ou sortie du mode examen). Dans l’interface web de gestion du cours, on peut ensuite afficher ces logs à l’aide d’un menu (Admin -> mode Exam) qui affiche le résultat de :

journalctl -u apache2.service -n 100 --no-pager -o short -r --grep='EXAMEN' --case-sensitive

Voir la documentation ici Extension jupyter:  » mode Exam ».

1.6.1. utilisation:#

On peut utiliser ce mode pour des examens Python sans document ni accès internet. On utilise un notebook d’examen, avec des questions nbgrader et des tests cachés pour une évaluation automatique.

1.6.2. limitation:#

il faut utiliser si possible firefox comme navigateur et non chrome ou edge

1.6.3. verification accès au log#

il faut vérifier que le serveur flask possède bine les droits d’accès aux log

sudo chown -R root:systemd-journal /run/log/journal

1.6.4. licence#

licence libre (C) Marc BUFFAT