Loading

Je vais vous expliquer ici comment générer un QCM à l’aide de Python et LaTeX à partir d’un simple fichier texte.

Générer un QCM à l’aide de Python et LaTeX: pré-requis

Avant de vous lancer dans cette aventure, il vous faudra déjà avoir sur votre machine:

  • une distribution \(\LaTeX\)
  • Python 3.10 minimum

Vous avez déjà ça? C’est cool! Sinon, ce n’est pas la peine de continuer… Il vous faudra avant tout installer tout ça.

Générer un QCM à l’aide de Python et LaTeX: le fichier texte et le résultat

Avant de rentrer dans le vif du sujet, de quoi s’agit-il ?

Tout est parti de ma volonté de créer des quiz sur ce site… Il n’y a aucun plugins WordPress qui me va… J’ai donc voulu créer des QCM via \(\LaTeX\) (car c’est quand-même plus joli). Mais je ne voulais pas passer deux heures à écrire les questions.

J’ai donc imaginé que je pouvais créer un fichier texte basique à partir duquel serait généré mon beau QCM.

À quoi ressemble le fichier texte ? Voici un exemple:

T-
Ensembles de nombres

N-
Seconde générale

C-
Pour chacune des questions suivantes, une seule réponse est exacte. Laquelle ? Cochez la bonne réponse.

DEBUT-

Q-
Quel est le plus petit ensemble contenant $\dfrac{7}{4}$ ?

R-
$\N$|0
$\Z$|0
$\D$|1
$\Q$|0
$\R$|0

Q-
Quel est le plus petit ensemble contenant $\sqrt\pi$ ?

R-
$\N$|0
$\Z$|0
$\D$|0
$\Q$|0
$\R$|1

FIN-

Analysons-le. Pour délimiter les différentes sections, j’ai utilisé:

  • « T- » suivi, à la ligne, du titre du QCM
  • « N- » suivi, à la ligne, du niveau du QCM
  • « C- » suivi, à la ligne, de la consigne
  • « DEBUT- » indique que les questions vont commencer
  • « Q- » suivi, à la ligne, d’une question
  • « R- » suivi, à la ligne, des multiples réponses au format « <réponse>|<0 ou 1> », où « 0 » indique que c’est la mauvaise réponse et « 1 », la bonne.
  • « FIN- » désigne la fin des questions

Je vous livre sans plus attendre les résultats (le sujet et sa correction):

Et ceci a été obtenu avec la simple commande:

>>> qcm('Seconde/QCM01.txt', colonnes=5, solution=False)
>>> qcm('Seconde/QCM01.txt', colonnes=5, solution=True)

Voici la vidéo de démo:

Le module Python

Vous pouvez télécharger le fichier ZIP ci-dessous:

Dans ce fichier ZIP, vous trouverez un répertoire QCM Mathweb dans lequel se trouvent:

  • un fichier « preambule.tex » servant de… préambule pour le fchier \(\LaTeX\) généré
  • un fichier « qcmmathweb.py », le module Python
  • un fichier « qcm.py » servant d’exemple pour générer les QCM donnés en exemple ci-dessus
  • un dossier « Seconde » dans lequel se trouve un fichier « QCM01.txt » servant de base pour le CQM à créer

Une fois décompressé, vous pouvez exécuter directement le script du fichier qcm.py afin de voir si tout fonctionne.

Les utilisateurs de MacOS et Linux pourront peut-être rencontrer des difficultés (car j’ai testé ceci uniquement sous Windows). Les retours seront donc les bienvenus en commentaire sur cette page.

Ce module est destiné à évoluer en fonction des diverses remarques qui me seront adressées en commentaires.

Si ce module vous plaît, n’hésitez pas à noter cette page (sans retour, je n’aurai pas la motivation de continuer)

4.8 6 votes
Évaluation de l'article
S’abonner
Notification pour
guest
6 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
Philippe Rackette

Le logiciel Auto Multiple Choice, sous licence GPLv2, est très avancé sur ce sujet. Je l’utilise régulièrement pour corriger automatiquement des QCM faits sur papier.

Site : https://www.auto-multiple-choice.net/index.fr

Code source : https://gitlab.com/a10684/auto-multiple-choice/

Il fonctionne sous Linux et MacOS, mais pas sous Windows.

Youssef

Bonjour,
Le lien pour telecharger le code python ne fonctionne pas.
MErci pour votre travail et ce partage

JPS

Bonjour, je n’arrive pas à compiler chez moi…

*** Python 3.4.5 |Continuum Analytics, Inc.| (default, Jul 5 2016, 14:56:50) [MSC v.1600 32 bit (Intel)] on win32. ***
*** Distant Python engine is active ***
>>> 
*** Console de processus distant Réinitialisée *** 
Traceback (most recent call last):
 File « C:\Users\jp\Desktop\QCM Mathweb\qcm.py », line 1, in <module>
  from qcmmathweb import qcm
 File « C:\Users\jp\Desktop\QCM Mathweb\qcmmathweb.py », line 36
  match line:
       ^
SyntaxError: invalid syntax

savez vous d’où vient ce bugg ????

MERCI