Skip to content

genExam permet de générer un examen du type QCM au format LaTeX, Moodle et Wooclap à partir d'une banque de questions simple à construire

License

Notifications You must be signed in to change notification settings

EsmeEngineeringSchool/genExam

Repository files navigation

genExam

Le principal objectif de genExam est de générer deux documents pdf (énoncé et corrigé) d'examen QCM à partir d'une banque de questions au format $\LaTeX$. Le fonctionnement globale est décrit par le diagramme suivant :

       .tex_ => .tex => .pdf

Un ensemble de questions dans un format spécifique tex_ est filtré pour produire un fichier tex de questions individuelles à partir d'un template afin d'enrichir un fichier tex global. Ce dernier est finalement compilé pour obtenir le fichier pdf final.

Exemples de documents générés par genExam au format $\LaTeX$ :

Enoncé :

exemple_enonce_genExam

Corrigé :

exemple_corrige_genExam

help :

L'option --help affiche l'ensemble des paramètres du script :

$ bin/genExam 

Usage : bin/genExam OPTIONS
------------------------------------------------------------------------------
-h/--help            : cette aide
-v/--english         : english version (default non)
-n/--nbQ    [nbQ]    : nombre de questions (default = all of them)
-o/--order  [file]   : fichier donnant l'ordre des questions (default random)
-q/--qtex   [rep]    : répertoire des questions à utliser (default qtex ou qtex_english)
-e/--examen [examen] : nom de l'examen (default = Examen final)
-m/--module [module] : module de l'examen (default = UNIX)
-p/--promo  [promo]  : promotion (default = INGE1)
-a/--annee  [annee]  : année scolaire (default = 2022-2023)
-d/--date   [date]   : date de l'examen (default = None)

Exemples d'appel :

$ bin/genExam --nbQ 80 --examen="Examen final" --module=UNIX --promo=INGE1 --annee=2022-2023 --date="6 janvier 2023"

80 questions sont choisies aléatoirement parmi les questions du répertoire qtex/

Avec l'option --english ce sont les questions du repertoire qtex_english/ qui sont utilisées.

$ bin/genExam --english --nbQ 80 --examen="Final exam" --module=UNIX --promo=INGE1 --annee=2022-2023 --date="January 6th 2023"

Il est possible de générer un examen à partir d'un fichier listant les questions que l'on souhaite utiliser (option --order).

À propos de la banque de questions

La banque de questions est dans un format spécifique (extension tex_).

Ce format .tex_, qui se veut simple, permet d'envisager deux types questions/réponses :

  • Question à Choix Multiples (CM) :
       #Q Une question
       #ANS CM
       A. <réponse_1> ✓
       B. <réponse_2> ✓
       C. <réponse_3>
       D. <réponse_4>
       #TAGS
  • Question d'Appariement (A) :
       #Q Une question
       #ANS A
       A. <énoncé_1>  1. <réponse_1>
       B. <énoncé_2>  2. <réponse_2>
       C. <énoncé_3>  3. <réponse_3>
       D. <énoncé_4>  4. <réponse_4>
       #TAGS

Les <énoncé_i> et <réponse_i> peuvent contenir des commandes $\LaTeX$. On terminera la ligne par pour selectionner la ou les bonnes réponses.

Exemple de question de la banque de questions :

Choix Multiples

#Q Parmi les systèmes d'exploitation ci-dessous, lesquel(s) appartien(nent)t à la famille des systèmes Unix ?
#ANS CM
A. Linux \newline ✓
B. MacOS  \newline ✓
C. Android \newline  ✓
D. MS-DOS \newline
#TAGS #Unix #OS #cours01
#Q  Which of these syntaxes is correct?
#ANS CM
A. \texttt{if [ \$x -gt \$y ]} \newline ✓
B. \texttt{if \$x -gt \$y} \newline
C. \texttt{if ( \$x -gt \$y )} \newline
D. None of them \newline
#TAGS #if #script #variable #syntaxe #cours08

Appariement

#Q Associer la commande de filtre avec son résultat
#ANS A
A. \texttt{echo "ab cdef" | cut -d " " -f 2}       1. \texttt{cdef}
B. \texttt{echo "ab cdef" | cut -d " " -f 1}       2. \texttt{ab}
C. \texttt{echo "ab cdef" | cut -c -4}             3. \texttt{ab c}
D. \texttt{echo "ab cdef" | cut -c 3}              4. \texttt{b}
#TAGS #filtre #commandesDeBase #echo #cut #cours11
#Q  Match commands to their \texttt{man} descriptions
#ANS A
A. \texttt{ls} 1. List directory contents
B. \texttt{cat} 2. Concatenate files and print on the stdout
C. \texttt{rm} 3. Remove files or directories
D. \texttt{cp} 4. Copy files and directories
#TAGS #commandesDeBase #ls #cat #rm #cp #cours01

Transformer une question tex_ au format xml (moodle)

Il est possible de transformer les questions de la banque de questions du format .tex_ au format xml celui-ci pouvant être importé sur la platerforme Moodle.

Exemple d'appel des scripts genxml ou script moodle

L'appel suivant produit un fichier xml/genExam_A.xml à partir d'une question au format tex_ passé en paramètre

$ bin/genxml qtex/genExam_A.tex_

Pour produire un fichier xml complet banque_question.xml avec toutes les questions d'un repertoire qtex/, vous pouvez utiliser la commande suivante :

$ bin/moodle qtex banque_question.xml

Transformer une question tex_ au format csv (wooclap)

Il est possible de transformer les questions de la banque de questions du format .tex_ au format csv celui-ci pouvant être importé sur la platerforme Wooclap.

Exemple d'appel des scripts genicsv ou script wooclap

L'appel suivant produit un fichier csv/genExam_A.csv à partir d'une question au format tex_ passé en paramètre

$ bin/gencsv qtex/genExam_A.tex_

Pour produire un fichier csv complet banque_question.csv avec toutes les questions d'un repertoire qtex/, vous pouvez utiliser la commande suivante :

$ bin/wooclap qtex banque_question.csv

Credits

  • Filipe Vasconcelos

About

genExam permet de générer un examen du type QCM au format LaTeX, Moodle et Wooclap à partir d'une banque de questions simple à construire

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published