Script de debriefing

Added by Jean-Julien Fleck about 7 years ago

Bonjour,

Pour ma fin d'année 2012, j'avais concocté un QCM récapitulatif avec 10 exercices de 5 questions chacun couvrant l'ensemble du programme. Comme je voulais voir un peu les chapitres ou exercices qui posaient problème, j'ai essayé de décortiquer les résultats à l'aide d'un script écrit en ruby qui générait le fichier joint.

Comme le passage de la version 0.49 à la version 1.11 a fait disparaître le fichier bareme.xml que je devais parser pour savoir quel élève avait eu quelle question, j'ai de toute façon un petit travail de réécriture à faire et je me demande s'il pourrait être utile à d'autres (ce qui impliquerait bien sûr une réécriture plus importante pour que ce soit adapté au plus grand nombre).

Mon organisation reflète un système à 3 niveaux : thèmes/exercices/questions
Chaque exercice comportait 5 questions et chaque thème pouvait avoir de 1 à 3 exercices selon son importance dans l'année.
Néanmoins, pour arriver à cela, je me suis imposé une structure qui sera sûrement trop restrictive pour la plupart des applications générales, chacun ayant ses propres manières de composer...

Il reste toutefois, je pense, la possibilité de faire un système relativement simple à deux niveaux en utilisant la commande \element et l'environnement {question} d'AMC. J'en arrive alors à mes questions:
  1. Pour le moment, je parse tous les fichiers .tex présents dans le répertoire de mon QCM (j'aime bien hiérarchiser en pleins de fichiers indépendants) et je récupère les premiers arguments de \element et de {question} à coup d'expression régulière. Mais si je devais écrire pour une plus grande audience que moi-même, je me doute que mes regexp ne seront plus suffisantes à envisager tous les cas. Existe-t-il alors un moyen simple pour obtenir directement depuis latex un fichier dans lequel l'identifiant de chaque \element est donné en signalant les identifiant des {question} contenues à l'intérieur ?
  2. Le passage à la version 1.1.1 m'a montré que le fichier csv généré ne comportait plus de "0" à toutes les questions, mais seulement à celles où une réponses a effectivement été donné, ça m'économise déjà le passage par la lecture du fichier bareme.xml :o). Pour distinguer les questions réussies/non traitées/ratées, j'ai utilisé un barème +2/0/-1 (unique bonne réponse à chaque fois), mais là aussi c'est une contrainte assez forte pour l'utilisateur potentiel, par exemple si on ne veut pas attribuer de points négatifs aux mauvaises réponses, impossible de distinguer le cas "non traité" du cas "raté". Serait-il possible qu'AMC puisse générer un fichier .csv indépendant du barème qui écrive +1/0/-1 respectivement pour réussi/non traité/raté et laisse vide les questions non eues par l'élève (comme actuellement pour ce dernier point) ?

Voilà. Si cela intéresse du monde, n'hésitez pas à le dire. Sinon, je peux continuer à simplement utiliser ma propre organisation sans qu'il soit nécessaire de modifier AMC. C'est moins général, mais tout aussi efficace pour ma convenance personnelle :o)

À bientôt,

JJ

bilan_QCM.pdf (107.8 kB)


Replies (2)

RE: Script de debriefing - Added by Alexis Bienvenüe about 7 years ago

Bravo pour ce très beau bilan ! Dans les versions récentes, AMC produit des statistiques par questions dans un onglet du fichier ODS exporté, mais ne propose aucun regroupement par thème.

Depuis la version 1.1.0, toutes les données produites par AMC ne sont plus enregistrées dans des fichiers XML, mais dans des bases de données SQLite (c'est-à-dire des fichiers, dans le sous-répertoire data du répertoire du projet). Une description rapide du contenu de ces bases peut être trouvée au début des fichiers AMC/DataModule/*.pm.

  1. Une idée comme ça : ne pas baser le regroupement des questions sur le "groupe" formé par l'utilisation de la commande \element, mais sur le nom de la question (par exemple en utilisant des noms sous la forme groupe_exercice_question, c'est presque le cas dans votre exemple). On peut alors récupérer la liste des noms de questions dans la base de données layout, dans la table layout_question.
  2. Les résultats des étudiants peuvent être retrouvées dans la table scoring_score de la base scoring. La colonne why contient la valeur V si aucune case n'a été cochée, ce qui permet de reconnaître une non-réponse. Les réponses parfaites correspondent au cas score=max.

RE: Script de debriefing - Added by Jean-Julien Fleck about 7 years ago

Bon, ben je sens que je vais me mettre à l'API ruby de SQLite durant ces prochaines semaines :o)

Merci pour la suggestion de convention de nommage. C'est effectivement une contrainte pour l'utilisateur (et une que j'utilise en partie moi-même), mais ce sera vraisemblablement la voie la plus flexible pour un tel projet. Du coup, le nombre de subdivisions pourra être laissé à l'appréciation du concepteur des questions.

Je reviendrai ici quand j'aurai une version présentable de la chose.

Bonne rentrée à tous :o)

(1-2/2)