Le projet QCMXML

FSC - Last modified: Fri Nov 4 11:25:54 CET 2011

Ce projet a pour but de proposer un format XML de QCM appelé QCMXML et des scripts de transformation pour transformer un fichier au format QCMXML en Latex, HTML et en format XML pour Moodle.

À partir d'un fichier XML au format QCMXML exempleQCM.qcm.xml, les scripts générent: Pour récupérer le package Debian, ajouter dans /etc/apt/sources.list :

deb http://www-public.it-sudparis.eu/~silber/repositories/apt-repo/ binary/
deb-src http://www-public.it-sudparis.eu/~silber/repositories/apt-repo/ sources/

Après installation du package,
man qcmxml
pour obtenir la documentation sur l'utilisation de la commande qcmxml.

Plan

Il existe aussi un script de transformation de l'ancien format qcm en format qcm.xml : qcm2xml.py.

1. Description du format QCMXML

Les balises contiennent toutes du texte. Certaines peuvent avoir un contenu mixte texte et HTML. La balise racine du document est la balise questionnaire. La balise questionnaire contient les balises :

Les balises suivantes contenues dans la balise questionnaire sont utilisées pour générer le fichier HTML (mais ne sont utilisées ni pour Latex, ni pour Moodle XML):

Une balise question a pour attribut optionnel la difficulte pouvant prendre les valeurs FACILE, INTERMEDIAIRE, DIFFICLE. Cet attribut est utilisé dans les transformations HTML, Latex, Moodle pour ajouter '*' pour un niveau intermédiaire et '**' pour un niveau difficile.

Une balise question contient : Les balises instructions, intitule, contenu et justification peuvent contenir: Pour plus d'informations, reportez-vous à la DTD qcm.dtd. Exemple de QCM au format QCMXML (extrait du fichier tube.qcm.xml) :
=====================================================
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE questionnaire SYSTEM "qcm.dtd" >
<questionnaire>
<idfqcm>tube</idfqcm>
<titre>
Redirections et tube
</titre>
<date>
Mars 2003
</date>
<instructions>
<b>Pour chacune des questions, plusieurs réponses peuvent être
correctes, vous pouvez donc cocher plusieurs cases !</b>
<br/> Les questions sont de trois niveaux de difficultés. Les niveaux
'intermediaire' et 'difficile' sont précédés des signes '*' et '**',
respectivement.
<br/> Ces QCM sont autant l'occasion de contrôler des connaissances que
d'apprendre quelque chose. En effet, les questions difficiles
demandent un travail supplémentaire. Par conséquent, ne vous
auto-évaluez pas sur ces questions.
</instructions>
<auteurs>
Denis Conan
</auteurs>
<module>
Initiation à Unix
</module>

<question difficulte="FACILE">
<intitule>La commande 'ls -1 /bin | wc -l' affiche :</intitule>
<reponse statut="FAUX">
<contenu>Le nombre de lignes de '/bin'</contenu>
<justification>L'expression "nombre de lignes" n'a pas de signication pour un répertoire.</justification>
</reponse>
<reponse statut="VRAI">
<contenu>Le nombre d'entrées sous '/bin'</contenu>
</reponse>
<reponse statut="FAUX">
<contenu>'1'</contenu>
</reponse>

</question>

<question difficulte="INTERMEDIAIRE">
<intitule>Vous exécutez la commande 'write paul &lt; toto' et le shell répond
'bash: cannot open toto'. Quelle peut être la cause provoquant ce
message d'erreur :</intitule>
<reponse statut="VRAI">
<contenu>Le fichier 'toto' n'existe pas</contenu>
</reponse>
<reponse statut="VRAI">
<contenu>Vous n'avez pas les droits sur le fichier 'toto'</contenu>
</reponse>
<reponse statut="FAUX">
<contenu>L'utilisateur 'paul' n'a pas les droits sur le fichier 'toto'</contenu>
</reponse>
</question>


<question difficulte="FACILE">
<intitule> Pourquoi l'image suivante est-elle drôle? <br/><img src="geekscottes.png" width="50%"/> <br/>Bonne question!</intitule>
<reponse statut="FAUX">
<contenu>Ce n'est pas drôle, on aurait pû dire et "home la maison" aussi</contenu>
</reponse>
<reponse statut="VRAI">
<contenu>C'est drôle parce que lorsque le PATH est mal positionné alors aucune commande ne fonctionne et donc PAF! y'a rien qui marche</contenu>
</reponse>
</question>
</questionnaire>
=====================================================

2. Transformation en Latex

Le script qcmxml2tex.py génère la version LaTeX du QCM : à partir du fichier monfichier.qcm.xml, génération de monfichier.tex. Dans le cas d'un QCM contenant des images, les images doivent se trouver au même endroit que le QCM (voir la FAQ).

3. Transformation en formulaire HTML

Étape 1: transformation en formulaire HTML

Taper make génère les fichiers Pour cela, Il faut configurer l'URL où les CGI sont installés dans le Makefile en positionnant la variable CGIURL. Si le QCM contient des images, il faut configurer l'URL des images dans le Makefile en positionnant la variable IMGURL (voir la FAQ).

Principe

Le script qcmxml2html.xsl génère le fichier monfichier.html pour le QCM à remplir par l'étudiant. Le nom du fichier HTML généré est précisé par le paramètre nombase dans le Makefile, par défaut est égal au nom de base du fichier monfichier.qcml.xml.

Le script qcmxml2reponseshtml.xsl génère le fichier monfichier-reponses.html pour le fichier HTML avec les réponses à afficher si l'étudiant coche la case « afficher les réponses ». Le script qcmxml2reponsestxt.xsl génère le fichier monfichier-reponses.txt pour le fichier des réponses qui est utilisé par le CGI traite-qcm-new.cgi.

Étape 2: Installation

Installation du script CGI et des réponses

Déplacer les fichiers suivants à l'endroit où doivent être installés les CGI (voir la variable CGIURL du Makefile):

4. Transformation en Moodle XML

Si le QCM contient des images, il faut configurer l'URL des images dans le Makefile (IMGURL). Pour éviter d'avoir à modifier cette URL chaque année, il est préférable de stocker ces images sur un serveur Web externe (par exemple stromboli) plutôt que dans l'espace Moodle du cours.

Étape 1: transformation QCMXML vers Moodle XML

Le script qcmxml2moodlexml.xsl génère le fichier monfichier.moodle.xml au format XML du module Quiz de Moodle. Il semble impossible dans Moodle d'importer ou exporter directement un questionnaire. Il faut importer les questions puis créer, via l'interface Moodle, le « test ». C'est pourquoi les balises relatives au questionnaire (titre, date, auteurs, instructions...) ne sont pas utilisées pour l'importation dans Moodle. Le questionnaire contenu dans monfichier.qcm.xml est transformé en un quiz contenant l'ensemble des questions inclues dans le questionnaire. Ces questions seront ajoutées à la base de questions dans la catégorie spécifiée par la balise idfqcm du fichier d'entrée. Chaque question est transformée en question de type multichoice.

Feedback et General feedback

Dans Moodle, il est possible d'afficher un feedback pour chaque proposition de réponse dans une question. Nous utilisons ce feedback pour afficher la justification (en gras). Attention, ce feedback n'est affiché qu'après exécution de la question si l'étudiant a cliqué sur la proposition de réponse correspondante. Dans Moodle, il est aussi possible d'afficher un general feedback pour une question s'affichant après exécution de la question. Nous utilisons ce general feedback pour afficher le niveau de difficulté de la question (avec des couleurs : rouge pour facile, orange pour intermédiaire et vert pour difficile).

Calcul des notes

Dans Moodle, l'exécution d'un questionnaire résulte en une note. Par défaut, chaque question possède le même poids (ceci se configure dans l'interface Moodle au moment d'ajouter une question).

Pour calculer la note correspondant à une question, nous devons attribuer un poids à chaque proposition de réponse. Prenons l'exemple d'une question contenant 5 propositions dont 3 propositions vraies.

Le script de transformation calcule la note de la façon suivante. Ainsi, pour obtenir tous les points liés à une question, il faut cliquer sur toutes les réponses vraies et aucune réponse fausse. Cliquer sur autant de réponses vraies que fausses donne la note zéro. La note minimum est zéro.

Étape 2: Importation dans Moodle (MAJ Moodle 2011)

Pour créer un QCM dans Moodle, il faut:

Nouveautés

5. Inclure les QCM dans un cours slideint

Nous avons ajouté dans l'URL du QCM dans le cours en ligne généré par slideint l'appel à qcm.php. En effet, le même cours en ligne est utilisé à la fois sur Internet et dans Moodle. Selon le cas, en cliquant sur le QCM, il faut aller soit vers l'URL du QCM sur Internet soit vers l'URL du QCM dans Moodle.
En fonction du serveur Web et de l'identifiant du QCM, qcm.php dirige vers le QCM html ou le QCM Moodle. Par exemple, pour le QCM identifié par processus, qcm.php permet de rediriger le clic vers l'une des deux URL suivantes:
http://cours.it-sudparis.eu/moodle/Suivi/qcm.php?id=processus
ou
http://www-inf.it-sudparis.eu/cours/UNIX/Web/moodle/Suivi/qcm.php?id=processus
Configurer le fichier qcm.php et copier le fichier qcm.php dans /moodle/Suivi sur tous les serveurs Web sur lesquels les QCM sont utilisés.

6. FAQ

Changes

Comment produire le package Debian

package.html