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)
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).
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