Des QCMsâïž
Le principeâïž
Le thĂšme propose une macro multi_qcm
, qui permet de construire des groupes de questions à choix simples ou multiples, avec évaluation automatique du résultat, avec ou sans affichage de la correction.
Pour tester ses réponses, il suffit de cocher ses choix, puis de cliquer sur le bouton de vérification : le compteur de réponses correctes s'affiche alors.
Les qcms sont "rejouables" à volonté (bouton recommencer
) et ont donc valeur d'Ă©valuation formative.
Un Qcm avec une seule question
-
Quelle est la réponse ?
- 4
- 2
- 42
La documentation complĂšte
La syntaxeâïž
La macro {{ multi_qcm(...)}}
prend en argument, pour chaque question, une liste comprenant trois ou quatre éléments :
- la question, de type str qui peut ĂȘtre du markdown avec du code, du latex (mais attention, il faudra doubler les
\
) ; par exemple :"Quelle est la réponse ?"
- une liste de réponses ; par exemple :
["4", "2", "42"]
- une liste contenant le numéro de la bonne réponse ou des bonnes réponses ; par exemple :
[3]
. Attention, ce n'est pas l'indice ! - un dictionnaire (optionnel) qui contient des options spécifiques à cette question. à l'heure actuelle, une seule option est couverte
'multi': bool
(voir ci-dessous)
Il faut Ă©galement renseigner obligatoirement les deux arguments :
multi
: réglage pour toutes les questions du qcm, indiquant si les questions n'ayant qu'une seule bonne réponse sont à choix multiples ou pas.DEBUG
: affiche ou non dans la console le code markdown généré pour ce qcm durant le build.
Il est conseillé de renseigner aussi l'argument qcm_title
qui par défaut vaut 'Question'
. Il y a d'autres arguments facultatifs que l'on verra plus loin.
Le code de l'exemple complet
{{ multi_qcm(
[
"Quelle est la réponse ?",
["4", "2", "42"],
[3]
],
qcm_title = "Un Qcm avec une seule question",
multi = False,
DEBUG = False
) }}
Un Qcm avec une seule question
-
Quelle est la réponse ?
- 4
- 2
- 42
Remarque
On remarquera que les boutons réponses sont des boutons radio. Pour multi = True
, les boutons réponses sont des cases à cocher.
Les paramĂštres optionnelsâïž
On peut renseigner, en plus, les options suivantes :
paramÚtre | type | valeur par défaut | description |
---|---|---|---|
hide |
bool |
False |
si on la met à True , un masque apparaßt au-dessus des boutons pour signaler à l'utilisateur que les réponses resteront cachées aprÚs validation. |
shuffle |
bool |
False |
si on la met à True , les questions et les réponses seront mélangées. |
admo_kind |
str |
'!!!' |
type d'admonition utilisée pour les questions ('???' et '???+' sont également utilisables). |
admo_class |
str |
'tip' |
classe d'admonition |
Exemplesâïž
QCM avec une seule bonne réponse et avec correction
{{ multi_qcm(
[
"""
On a saisi le code suivant :
```python title=''
n = 8
while n > 1:
n = n/2
```
Que vaut `n` aprÚs l'exécution du code ?
""",
[
"2.0",
"4.0",
"1.0",
"0.5",
],
[3]
],
multi = False,
qcm_title = "Un QCM avec mélange automatique des réponses",
DEBUG = False,
shuffle = True,
admo_class = 'question'
) }}
Un QCM avec mélange automatique des réponses
-
On a saisi le code suivant :
n = 8 while n > 1: n = n/2
Que vaut
n
aprÚs l'exécution du code ?- 2.0
- 4.0
- 1.0
- 0.5
QCM avec une seule bonne réponse et sans correction
Seul le score indiquera combien il y a de bonnes réponses.
{{ multi_qcm(
[
"""
On a saisi le code suivant :
```python title=''
n = 8
while n > 1:
n = n/2
```
Que vaut `n` aprÚs l'exécution du code ?
""",
[
"2.0",
"4.0",
"1.0",
"0.5",
],
[3]
],
[
"Quelle est la machine qui va exécuter un programme JavaScript inclus dans une page HTML ?",
[
"La machine de lâutilisateur sur laquelle sâexĂ©cute le navigateur web.",
"La machine de lâutilisateur ou du serveur, selon celle qui est la plus disponible.",
"La machine de lâutilisateur ou du serveur, suivant la conïŹdentialitĂ© des donnĂ©es manipulĂ©es.",
"Le serveur web sur lequel est stockée la page HTML."
],
[1],
],
multi = False,
qcm_title = "Un QCM avec mélange automatique des questions et réponses (bouton en bas pour recommencer)",
DEBUG = False,
shuffle = True,
admo_class = 'question',
hide = True
) }}
Un QCM avec mélange automatique des questions et réponses (bouton en bas pour recommencer)
-
On a saisi le code suivant :
n = 8 while n > 1: n = n/2
Que vaut
n
aprÚs l'exécution du code ?- 2.0
- 4.0
- 1.0
- 0.5
-
Quelle est la machine qui va exécuter un programme JavaScript inclus dans une page HTML ?
- La machine de lâutilisateur sur laquelle sâexĂ©cute le navigateur web.
- La machine de lâutilisateur ou du serveur, selon celle qui est la plus disponible.
- La machine de lâutilisateur ou du serveur, suivant la conïŹdentialitĂ© des donnĂ©es manipulĂ©es.
- Le serveur web sur lequel est stockée la page HTML.
QCM avec une ou plusieurs réponses selon les questions
Si on souhaite mélanger des réponses unique ou multiples, il faut choisir la valeur de multi
par défaut et indiquer dans un dictionnaire le choix particulier par question.
Ici on a choisi multi = False
pour le comportement global et on ajoute {'multi': True}
dans la liste de la question concernée.
{{ multi_qcm(
[
"""
On a saisi le code suivant :
```python title=''
n = 8
while n > 1:
n = n/2
```
Que vaut `n` aprÚs l'exécution du code ?
""",
[
"2.0",
"4.0",
"1.0",
"0.5",
],
[3]
],
[
"Quelle est la machine qui va exécuter un programme JavaScript inclus dans une page HTML ?",
[
"La machine de lâutilisateur sur laquelle sâexĂ©cute le navigateur web.",
"La machine de lâutilisateur ou du serveur, selon celle qui est la plus disponible.",
"La machine de lâutilisateur ou du serveur, suivant la conïŹdentialitĂ© des donnĂ©es manipulĂ©es.",
"Le serveur web sur lequel est stockée la page HTML."
],
[1],
],
[
"""
Cocher toutes les bonnes réponses
```python title=''
meubles = ['Table', 'Commode', 'Armoire', 'Placard', 'Buffet']
```
""",
[
"`#!py meubles[1]` vaut `#!py Table`",
"`#!py meubles[1]` vaut `#!py Commode`",
"`#!py meubles[4]` vaut `#!py Buffet`",
"`#!py meubles[5]` vaut `#!py Buffet`",
],
[2, 3],
{'multi': True}
],
multi = False,
qcm_title = "Un QCM avec mélange automatique des questions (bouton en bas pour recommencer)",
DEBUG = False,
shuffle = True
) }}
Un QCM avec mélange automatique des questions (bouton en bas pour recommencer)
-
On a saisi le code suivant :
n = 8 while n > 1: n = n/2
Que vaut
n
aprÚs l'exécution du code ?- 2.0
- 4.0
- 1.0
- 0.5
-
Quelle est la machine qui va exécuter un programme JavaScript inclus dans une page HTML ?
- La machine de lâutilisateur sur laquelle sâexĂ©cute le navigateur web.
- La machine de lâutilisateur ou du serveur, selon celle qui est la plus disponible.
- La machine de lâutilisateur ou du serveur, suivant la conïŹdentialitĂ© des donnĂ©es manipulĂ©es.
- Le serveur web sur lequel est stockée la page HTML.
-
Cocher toutes les bonnes réponses
meubles = ['Table', 'Commode', 'Armoire', 'Placard', 'Buffet']
-
meubles[1]
vautTable
-
meubles[1]
vautCommode
-
meubles[4]
vautBuffet
-
meubles[5]
vautBuffet
-