Header
🠖 Les questions dans Chocolatine

Rédiger une question sur Chocolatine

La syntaxe des questions se compose :
  • d'une première ligne qui définit le type de la question, son niveau (de 1 à 3) et différents autres paramètres,
  • de lignes permettant de définir des valeurs associées à des clés ou des sous-clés,
  • et de manière facultative, de variables.
Exemple :
TEXTE niveau-2
question : Dans quelle ville a été développé le site Chocolatine ?
  - description : Taper le nom de la ville en toutes lettres.
réponse : Toulouse
  - type : ignorer-casse
  - explication : Le développement de Chocolatine a commencé en 2021
au lycée Déodat de Séverac à <b>Toulouse</b>.

Toutes les questions utilisent des paramètres (1re ligne) et des clés et sous-clés universels : Pour tout type.
Chaque question possède des paramètres et des clés spécifiques selon son type. Les différents types sont :

  • TEXTE demandant une réponse tapée au clavier,
  • QCM demandant de choisir 0, 1 ou plusieurs réponses,
  • COUPLE demandant de former des paires,
  • ORDRE demandant de remettre des éléments dans l'ordre,
  • GROUPE demandant de ranger des éléments dans des groupes,
  • FLASH consistant en une flashcard (carte de mémorisation),
  • PYTHON (encore en développement) demandant de coder en python.
Import/Export de lots entier de questions :
Les lots de questions sont exportables au format .txt. Chaque question est alors séparé d'une ligne de pointillés.

1. Pour tous les types de question

1.1. Paramètres universels (1re ligne)

abréviation autocomplétion de la rédaction description
ffocusRestreindre la souris à la zone de la question pour empêcher la recherche d'une réponse. La question n’est visible que quand la souris est dessus. Si la souris quitte la zone plus de 3 secondes, elle est considérée comme ratée.
xxsDéfinir une durée limite de réponse (en seconde). Au-delà, c’est l’échec.
Exemple : Pour un temps de 20 secondes, écrire 20s.
! hors-évaluationEmpêcher que la question soit proposée lors d’une évaluation.
xpx-passages Attendre x passages sur la question pour faire progresser la mémorisation. Ce paramètre est utile quand les variantes ne sont pas équivalentes et que l'élève doit passer sur plusieurs variantes pour traiter toutes les notions souhaitées.

1.2. Clés et sous-clés universelles

abréviation autocomplétion de la rédaction description
q:question : Texte (facultatif si annexes) de la question.
-d: - description : Texte complémentaire qui apparaît en italique sous la question.
-x: - explication : Texte d'explication qui s'affiche sous la question lors de la correction.
-i: - image :
(annexe)
Pour insérer une image (en annexe affichée sous la question). Le fichier de l'image devra être glisser-déposer dans la zone de rédaction.
Indiquer le titre du fichier a.jpg suivi d’éventuels paramètres paramètres :
  • 200px pour définir la largeur en pixel de l’image.
  • en-ligne pour afficher cette annexe sur la même ligne que l'annexe précédente.
Exemple : - image : chat.jpg 150px en-ligne
-c: - code :
(annexe)
Pour insérer un bloc de code avec coloration syntaxique (en annexe affichée sous la question).
Indiquer le langage (xml, markup, css, js, javascript, bash, c, c#, c++, http, java, md, markdown, php, py, python, sql, algo) suivi d’éventuels paramètres :
  • 200px pour définir la largeur en pixel du cadre contenant le code.
  • en-ligne pour afficher cette annexe sur la même ligne que l'annexe précédente.
  • avec-num pour afficher la numérotation des lignes de code.
Exemple : - code : py avec-num en-ligne suivi, sur les lignes suivantes, du code.
-f: - fichier :
(annexe)
Pour insérer un fichier sous forme de texte brut qui sera interprété en tenant compte des éventuelles variables.
Indiquer l’extension : svg, csv, html suivi d’éventuels paramètres paramètres :
  • 200px pour définir la largeur du cadre.
  • en-ligne pour afficher cette annexe sur la même ligne que l'annexe précédente.
Exemple : - fichier : csv 300px

1.3. Créer des variantes

Il est possible d'introduire des variables permettant de créer plusieurs variantes d'une même question.
Attention à créer des variantes ayant un niveau de difficulté équivalent sinon il est conseillé de créer une autre question.
Lors de la rédaction d'une question avec variantes, un tableau récapilant toutes les variantes avec les valeurs des variables apparaît sous la question. Il est important que chaque variables aient le même nombre de valeurs.
Lorqu'un élève rencontre pour la première fois une question avec variante, il tombe aléatoirement sur une des variantes puis les fois suivantes, cela suit l'ordre des variantes telles qu'elles sont présentées sous la questions. Il est possible de mélanger toutes les variantes pour éviter des suites de variantes trop logique et facilitant la réponse.

Variable classique :
Ci-contre, création de 3 variantes de la question en remplaçant partout dans la question, le repère {a} par une des valeurs de a.
a = "pomme", "poire", "banane"

Variable multiplicative :
Une variable multiplicative est repérée par l'astérisque * et elle multiplie (produit cartésien) toutes les variables qui la précède.
Ci-contre, création de 6 variantes de la question.
Les repères {a} et {b} sont remplacés par un couple de valeurs de a et de b.
a = 1, 2, 5
*b = "pomme", "poire"
Variantes123456
a112255
bpommepoirepommepoirepommepoire

Exemple avec des variables python et multiplicative
QCM niveau-2 en-ligne
a = "Alice", "Albert", "Myriam"
*b = "Bob", "Benjamin", "Mohammed", "Sophia"

question : <b>{a}</b> souhaite envoyer un message à <b>{b}</b> avec un chiffrement asymétrique. Qui doit générer le couple clé publique/clé privée ?
réponse : B
A : {a}
B : {b}
C : {a} et {b}
D : Aucun des deux.

Variable python :
Une variable python est repérée par le dollar $.
Création de 100 variantes grâce à l'interprétation du code python.
Les variables multiplicatives et python peuvent être cumulées.
$a = range(100)
$b = a*2
Exemple avec des variables python et multiplicative
TEXTE niveau-2
$a = range(2,10)
*$b = range(2,9)
$c = a*b
question : Combien fait `{a}xx{b}` ?
réponse : {c}

1.4. Mise en forme, expressions mathématiques ...

Toutes les mises en forme possibles dans un document le sont aussi pour les questions.
Voir : Comment rédiger un cours sur Chocolatine.

2. Question TEXTE

Pour demander une réponse au clavier,
taper t dans l'éditeur de question vierge.
TEXTE niveau-1
question :
réponse :
Exemple avec des variables python et multiplicative
TEXTE niveau-2
$a = range(2,10)
*$b = range(2,9)
$c = a*b
question : Combien fait `{a}xx{b}` ?
réponse : {c}

2.1. Paramètres spécifiques (1re ligne)

Aucun

2.2. Clés et sous-clés spécifiques

abréviation autocomplétion de la rédaction description
r:réponse : Texte exactement attendu
ou liste d'e valeurs'expressions acceptées, séparées par des virgules (nécessite - type : liste)
ou liste de mots-clés, séparés par des virgules (nécessite - type : mots-clés)
ou une expression régulière (nécessite -type : regex).
-t:- type : Peut être liste, mots-clés ou regex. (Autocomplétion avec les lettres en gras)
Avec les options ignorer-casse, exiger-accents ou pour les mots-clés : ordonnés
Exemple : - type : liste ignorer-casse
-e:- exemple : Exemple de réponse qui sera affiché lors de la correction.
Cette sous-clé est particulièrement utile pour les réponse de type regex assez difficile à comprendre pour la correction.
Par défaut, pour le type liste, les trois premières réponses sont affichées.
Par défaut, pour le type mots-clés, tous les mots sont affichés.
-v:- valide : Règle imposée à l'élève pour pouvoir soumettre sa réponse accompagnée d'un texte d’aide.
Doit respecter la syntaxe - valide : /regex/ aide avec regex l'expression régulière à valider et aide le texte d'aide qui s'affiche en dessous de la réponse si elle est invalide.
Exemple : - valide : /^[0-9]+$/ Doit être un entier..
Des régles prédéfinies peuvent être utilisées (voir tableau ci-dessous).
-x:- explication : Texte d'explication qui s'affiche sous la question lors de la correction.

Validation prédéfinie pouvant être utilisée avec la sous-clé - valide : :
abréviation autocomplétion de la rédaction
bit /^[01]$/ Doit être un bit.
bin /^[0-1]+$/ Doit être un mot binaire.
oct /^[0-1]{8}$/ Doit être un octet.
ent /^[0-9]+$/ Doit être un entier.
rel /^-?[0-9]+$/ Doit être un entier relatif.
rée /^-?[0-9]+(,[0-9]+)?$/ Doit être un nombre réel.
ré1 /^[0-9]+,[0-9]{1}$/ Doit être un nombre réel au dixième près (exemple : 2,3).
ré2 /^[0-9]+,[0-9]{2}$/ Doit être un nombre réel au centième près (exemple : 2,34).
ré3 /^[0-9]+,[0-9]{2}$/ Doit être un nombre réel au millième près (exemple : 2,345).
hex /^[0-9A-F]+$/ Doit être un mot hexadécimal.
IPv4 /^([0-9]{1,3}\.){3}[0-9]{1,3}$/ Doit être une adresse Ipv4.
sans-e /^\\S*$/ Ne doit pas contenir d'espace.
min /^[a-z]+$/ Dois être en minuscules.
alp /^[a-zA-Z0-9]+$/ Doit être une réponse alphanumérique.
maj /^[A-Z]+$/Doit être en majuscules.
not /^-?[1-9](,[0-9]+)?E-?[1-9][0-9]*$/ Doit être en notation scientifique
Exemple : 1,5E-3
Compatible avec la fonction python prédéfinie pour les variables python notation_scientifique()

3. Question QCM

Pour demander de choisir 0, 1 ou plusieurs réponses,
taper q dans l'éditeur de question vierge.
QCM niveau-1
question :
A :
B :
C :
D :
réponse :

3.2. Paramètres spécifiques (1re ligne)

abréviation autocomplétion de la rédaction description
ccomplexePermettre de cocher zéro, une ou plusieurs réponses. Par défaut, c’est une réponse obligatoire.
oordreConserver l'ordre des choix. Par défaut, les choix proposés sont mélangés.
een-ligneAfficher les choix sur une même ligne. Par défaut, ils sont les uns en-dessous des autres.
xcx-choixProposer seulement x choix parmi ceux définis dont au moins un bon (par défaut).
xbx-bonsProposer exactement x choix corrects (QCM complexe). x peut prendre les valeurs 0 ou 2, 3 ... correspondant au nombre de bonnes réponses disponibles. 1 n’est pas autorisé car c’est le comportement par défaut.
xbmx-bons-minProposer au moins x choix corrects (QCM complexe).
xbxx-bons-maxProposer au plus x choix corrects (QCM complexe).

3.2. Clés et sous-clés spécifiques

abréviation autocomplétion de la rédaction description
A:
B:
...
ZZ:
Texte (facultatif si annexes) pour chaque choix de réponse.
Accepte les mêmes sous-clés que la question :
-x: pour une explication affichée à la correction,
-i: pour une image (annexe),
-c: pour un code avec coloration syntaxique (annexe),
-f: pour un fichier texte (annexe).
r:réponse : Lettre du choix correct. Exemple : réponse : B
Si plusieurs choix uniques doivent être acceptés, les séparer d'une virgule.
Si plusieurs choix doivent être cochés simultanéement (QCM complexe), les séparer d'une virgule.
-d: - description : Texte complémentaire qui apparaît en italique sous la question.
-x: - explication : Texte d'explication qui s'affiche sous la question lors de la correction.

4. Question COUPLE

Pour demander de former des paires,
taper c dans l'éditeur de question vierge.
COUPLE niveau-1
question :
A :
A :
B :
B :
C :
C :

4.2. Paramètres spécifiques (1re ligne)

abréviation autocomplétion de la rédaction description
oordreConserver les premiers éléments de chaque couple dans l'ordre plutôt que d'être placés aléatoirement (par défaut).
een-ligneAfficher les couples côte-à-côte plutôt que les uns en-dessous des autres (par déaut).
iinverseInverse l'affichage des colonnes (1re élément à droite) ou des lignes (1re élément en bas) si en-ligne.
xcx-couplesProposer seulement x couples parmi tous ceux disponibles.

4.3. Clés et sous-clés spécifiques

abréviation autocomplétion de la rédaction description
A:
B:
...
ZZ:
Chaque lettre doit être en double pour former un couple ou de manière abrégé :
A : ... | ...
Texte (facultatif si annexes) pour chaque élément d'un couple.
Accepte les mêmes sous-clés que la question :
-x: pour une explication affichée à la correction,
-i: pour une image (annexe),
-c: pour un code avec coloration syntaxique (annexe),
-f: pour un fichier texte (annexe).
t:titres : Ajout de titres pour les 2 colonnes (ou 2 lignes) selon la syntaxe :
titres : ... | ...

5. Question ORDRE

Pour demander de remettre des éléments dans l'ordre,
taper o dans l'éditeur de question vierge.
ORDRE niveau-1
question :
A :
B :
C :

5.2. Paramètres spécifiques (1re ligne)

abréviation autocomplétion de la rédaction description
een-ligneAfficher les éléments en ligne plutôt qu'en colonne (par défaut).
xex-elementsProposer seulement x éléments à ordonner parmi tous ceux disponibles.

5.3. Clés et sous-clés spécifiques

abréviation autocomplétion de la rédaction description
A:
B:
...
ZZ:
Texte (facultatif si annexes) pour chaque élément à ordonner.
Accepte les mêmes sous-clés que la question :
-x: pour une explication affichée à la correction,
-i: pour une image (annexe),
-c: pour un code avec coloration syntaxique (annexe),
-f: pour un fichier texte (annexe).

6. Question GROUPE

Pour demander de ranger des éléments dans des groupes,
taper g dans l'éditeur de question vierge.
GROUPE niveau-1
question :
groupe :
A :
B :
groupe :
C :
D :

6.3. Paramètres spécifiques (1re ligne)

abréviation autocomplétion de la rédaction description
oordreConserver l'ordre des éléments. Attention cela peut orienter fortement la réponse de l'élève.
Par défaut, les éléments proposés sont mélangés.
ggroupe-ordreConserver les groupes dans l'ordre.
een-colonneAfficher les groupes en colonne plutôt que côte-à-côte (par défaut).
iinverseInverse les lignes (éléments au dessus des groupes) ou les colonnes (éléments à gauche des groupes).
ssans-groupePermettre de ne pas placer tous les éléments dans un groupe.
Dans ce cas les éléments sans groupes doivent être placés avant le nom du premier groupe.
xex-elementsProposer seulement x éléments à placer dans un groupe parmi tous ceux disponibles.

6.3. Clés et sous-clés spécifiques

abréviation autocomplétion de la rédaction description
g: groupe : Nom du groupe. Les éléments du groupes A : doivent être placé à la suite.
-d: - description : Texte complémentaire qui apparaît en italique sous le groupe.
-x: - explication : Texte d'explication qui s'affiche sous le groupe lors de la correction.
-v: - valide : Nombre d'éléments attendus dans le groupe pour que l'élève puisse envoyer sa réponse.
La syntaxe est - valide : n / aide ou n est le nombre d'éléments et aide un texte explicatif à destination de l'élève si le groupe n'est pas valide.
Exemple : - valide : 2 / Placer exactement 2 éléments dans ce groupe.
A:
B:
...
ZZ:
Texte (facultatif si annexes) pour chaque élément à ordonner.
Accepte les mêmes sous-clés que la question :
-x: pour une explication affichée à la correction,
-i: pour une image (annexe),
-c: pour un code avec coloration syntaxique (annexe),
-f: pour un fichier texte (annexe).

7. Question FLASH (carte de mémorisation)

Pour tester ses connaissances sur une question avant d'afficher la réponse,
tapant f dans l'éditeur de question vierge.
Ces questions ne peuvent pas être proposées lors d'une évaluation d'après leur principe même.
FLASH niveau-1 hors-evaluation
question :
réponse :
Exemple classique
FLASHCARD niveau-1 hors-evaluation

question : Comment est le drapeau de Tahiti ?
  - description : Exemple de question FLASHCARD (carte de mémorisation).
réponse :
  - image : Tahiti-Flag.jpg 400px

7.1. Paramètres spécifiques (1re ligne)

Aucun

7.3. Clés et sous-clés spécifiques

abréviation autocomplétion de la rédaction description
r:réponse : Texte (facultatif si annexes) de la réponse.
Accepte les mêmes sous-clés que la question :
-x: pour une explication affichée à la correction,
-i: pour une image (annexe),
-c: pour un code avec coloration syntaxique (annexe),
-f: pour un fichier texte (annexe).
Les questions dans Chocolatine Réviser