Skip to content

EsmeEngineeringSchool/genExam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

 
 
 

Contributors