5.2. Service JupyterHub « validation cours »#
validation est un module python et des programmes de gestion de cours sous jupyter/nbgrader avec notation / validation / détection de plagiat
(C) Marc BUFFAT, département mécanique, UCB Lyon 1
5.2.1. Installation#
installation dans un environnement virtuel python
source ${VIRTUEL_ENV}/bin/activate
dans cet environnement exécuter les commandes suivantes dans le dossier du projet (Validation_cours)
python3 setup.py clean
python3 setup.py build
python3 setup.py install
les modules python sont installés dans le répertoire site-package dans lib et les scripts dans le répertoire bin de l’environnement virtuel.
5.2.2. Gestion des notebooks de TP des étudiants#
5.2.2.1. bilanTP#
usage: bilanTP [-h] [-d] [-a] [--bilan] [--pdf] [--pandoc] [-l LISTE_ETU] [-b BASE_DIR] [--simil LISTE_COURS [LISTE_COURS ...]] nom_TP
analyse et validation de TP notebooks de cours
positional arguments:
nom_TP nom du TP
optional arguments:
-h, --help show this help message and exit
-d, --debug mode debug
-a, --autograde autograde des notebooks
--bilan creation fichier de bilan des notebooks
--pdf sortie pdf des notebooks (html par défaut)
--pandoc sortie pdf des notebooks avec pandoc
-l LISTE_ETU fichier contenant les comptes étudiants à évaluer
-b BASE_DIR repertoire de base pour creer les fichiers
--simil LISTE_COURS [LISTE_COURS ...]
cours1 cours2 .. = liste de cours pour test de similitude uniqt (dernier arg.)
5.2.2.2. genereTPhtml#
génération d’une version HTML (et éventuellement en pdf) du compte-rendu en markdown écrit dans un fichier: fichier.md
avec création du fichier fichier.html
(et fichier.pdf
).
usage: genereTPhtml [-pdf][-mathml][-mathjax] fichier
génération d'une version html d'un compte rendu en markdown
-pdf: option permettant en plus la génération d'une version pdf
-mathml ou -mathjax: utilisation de mathml (uniquement avec firefox) ou mathjax pour le rendu LateX (defaut katex)
fichier: nom du compte-rendu en markdown sans l'extension .md
utilise des fichiers de template et une installation de katex
dans le répertoire templates/
de l’environnement virtuel.
5.2.3. système d’exercises auto-corrigés en Python dans un notebook#
C’est une version simplifié du système d’exercices décrit dans la section suivante, permettant de l’utiliser avec un notebook
On gère la liste des exercices dans une cellule, en spécifiant une liste d’exercices fixes ou tirés au hasard ainsi que le nom des fonctions que les étudiants doivent écrire (dans le même ordre) dans un fichier python (sous forme de bibliothèque python).
Cela génère un fichier de configuration qui sera lu par le programme de validation BilanTP
from mabib import somme_carres
from validation.config import UserConfig
UserConfig(fichier_python="nom_biblio.py",Exos=["pge_test1"],NOMS=["pge_etu"],CONF=None)
Pour tester un exercice directement dans le notebook:
assert(test_function(fonction_etu,fonction_test))
il faut éventuellement importer la bibliothèque étudiant avant (utiliser %load_ext autoreload
pour le rechargement automatique en cas de modification du fichier)
test_exo : permet aux étudiants de tester leur librairie mabib.py
en ligne de commande
test_exo mabib.py pge_etu pge_test
syntaxe de test_exo:
test_exo [-d/-l[sect] ] fichier fonction nom_exo [arg]
fichier : nom du fichier python (avec extension .py)
fonction: nom de la fonction à valider
nom_exo : nom de l'exo pour la validation (ex exo11)
-d : mode DEBUG (option)
-l [sec]: liste des exos dans la section sec (option)
arg_exo : argument exercise (optionnel)
5.2.4. système d’exercises auto-corrigés en Python (version autonome)#
config_exo, valide_exo
5.2.5. enseignant#
pour tester ces programmes, il faut créer le répertoire:
${VIRTUAL_ENV}/commun/exchange
où seront créer les configurations étudiants dans les sous-répertoires de TP
5.2.5.1. generation d’une configuration#
config_exo [-d] [-liste Saa] [-s NOM_TP] duree Saa Sbb Scc exo1 exo2 -exo3 -exo4....
génération d’un fichier de configuration pour des exercices dans les sections Saa Sbb Scc … (1 par section) ou on fixe l’exercice exo1,exo2 ou on enleve des exercices -exo3 -exo4
On peut répéter les sections pour avoir plusieurs exercices (différents) par sections .
5.2.5.2. generation d’un fichier de bilan et notes (et table de similitude)#
bilan_exo [-d] [-i/--indice indicemin] [-t/--tomuss] [-l/--levenshtein] NOM_TP [fichier]
options:
-tomuss pour un fichier csv de notes pour tomuss
-levenshtein utilise indice de levenshtein au lieu de l'indice jaccard (par defaut) pour calculer les similitudes
-indice levelmin niveau minimum (sur 100) de similitude pour une prise en compte de la similitude (default 80)
fichier.csv : fichier resultat (et similitude) au format csv (sans extension)
on génère aussi un fichier tar avec les exercices étudiants
5.2.6. etudiant#
validation d’exercices
valide_exo [init monfichier.py / list / info /exo mafonction]
valide_exo init monfichier.py
initialise les exercices a valider en spécifiant le fichier python monfichier.py
valide_exo list
liste les exercices a valider
valide_exo info
affiche la configuration
valide_exo exon mafonction
valide la fonction mafonction pour l'exercice exo (cette fonction doit être écrite dans le fichier monfichier.py)
5.2.7. test exo#
permet de tester un exercice (uniquement pour les tests)
test_exo [-d/-l[sect] ] fichier fonction nom_exo [arg]
fichier : nom du fichier python (avec extension .py)
fonction: nom de la fonction à valider
nom_exo : nom de l'exo pour la validation (ex exo11)
-d : mode DEBUG (option)
-l [sec]: liste des exos dans la section sec (option)
arg_exo : argument exercise (optionnel)
5.2.8. module python validation (classe et exercices)#
dans le repertoire validation
5.2.9. exemples et tests#
dans le repertoire tests
5.2.10. bibliothéque d’exercises (dans les fichiers exoSxx.py):#
liste des exercises d’une section Sxx
test_exo -l Sxx
5.2.12. License#
Projet sous licence libre, mais sans garantie
5.2.13. Project status#
projet en cours de développement