Questions à réponse courte avec expressions régulières

Attention : vous consultez actuellement la documentation dédiée aux versions 1.x de Moodle. La documentation pour les versions 2.x de Moodle est consultable ici : Questions à réponse courte avec expressions régulières et celle pour Moodle 3.x est consultable là : Questions à réponse courte avec expressions régulières.

Questions à réponse courte avec expressions régulières

  • IMPORTANT.-
    • La question à réponse courte avec expressions régulières décrite dans cette page de documentation est un plugin additionnel de Moodle, qui vous permet de créer des questions pour l'activité Test. Cette question n'a rien à voir avec l'option "Utiliser les expressions régulières" du module Leçon de Moodle.
    • Vous trouverez la documentation pour l'option "Utiliser les expressions régulières" du module Leçon à cette adresse Short answer analysis.

Tout comme la question à réponse courte, la question à réponse courte de type "Expression régulière" attend de la part de l'élève une réponse à une question "ouverte", consistant en un ou plusieurs mots ou une courte phrase. Cependant, l'utilisation des expressions régulières vous donne accès à un puissant système d'analyse de la réponse des élèves.

Réponse correcte correspondant à une expression régulière

Il est impossible de fournir des exemples complets des vastes possibilités offertes par ce système, mais voici quelques possibilités.

Exemple 1. Supposons que votre question soit "Donnez les couleurs du drapeau français".

Dans le champ Réponse 1 vous pourriez saisir la "meilleure réponse" attendue, par exemple "il est bleu, blanc, rouge". Pour plus de détails voir Première réponse correcte plus loin.

Dans le champ Réponse 2 vous pourriez saisir cette expression régulière : "(il est |)bleu, blanc(,| et) rouge" (il ne faut pas taper les guillemets, bien sûr). Cette expression acceptera n'importe laquelle des réponses suivantes :

  • il est bleu, blanc, rouge
  • il est bleu, blanc et rouge
  • Il est bleu, blanc, rouge
  • Il est bleu, blanc et rouge
  • bleu, blanc, rouge
  • bleu, blanc et rouge

Moodle1.9

Dans Moodle 1.9, par défaut une expression régulière est sensible à la casse (minuscules/majuscules). Pour rendre l'expression insensible à la casse, vous ajouterez le paramètre /i tout à la fin de l'expression.

Voir Casse des caractères ci-dessous.

Exemple 2. (en anglais) Question : "What is blue, or red, or yellow?". Réponse : "(|it's )a colou?r". Cette expression acceptera n'importe laquelle des réponses suivantes :

  • a colour
  • a color
  • it's a colour
  • it's a color

Note.- Le début de cette expression régulière "(|it's )" acceptera comme réponse soit rien soit "it's " (attention : it's suivi d'une espace). Le point d'interrogation signifie : le caractère qui précède, employé zéro ou une fois ; nous l'utilisons ici pour accepter aussi bien l'orthographe anglaise (colour) qu'américaine (color).

Exemple 3. (en anglais encore) Question : "Donnez en anglais le nom d'un animal qui fait 3 lettres et dont la lettre du milieu est la voyelle a". Réponse : "[bcr]at". Ce qui acceptera les 3 réponses : bat, cat et rat.

Note.- Dans la syntaxe des expressions régulières, l'inclusion de caractères entre crochets carrés signifie que n'importe lequel de ces caractères peut être utilisé pour l'évaluation de l'expression. Ainsi, dans l'exemple ci-dessus, l'expression "[bcr]at" est l'équivalent exact de "(b|c|r)at". Faites bien attention de ne pas utliser le caractère séparateur | dans une expression régulière entre crochets [...]. Par exemple l'expression "[b|c|r]at" ne fonctionnera pas comme attendu.

Les métacaractères et quand les échapper

Définition

Dans la syntaxe des Expressions régulières, un certain nombre de caractères spéciaux, les métacaractères jouent un rôle spécial ; mais il est possible de forcer ces caractères spéciaux à être interprétés comme des caractères normaux (dans leur sens "littéral") en les "échappant", c'est-à-dire en les faisant précéder d'une barre oblique inverse "\". Voci une liste de ces principaux métacaractères:

. ^ $ * ( ) [ ] + ? | { } \ /

Dans les Réponses Acceptables

  • Les Réponses acceptables sont celles qui ont un score supérieur à zéro.

Dans ces Réponses, si vous avez besoin d'utiliser un ou plusieurs métacaractères pour leur valeur littérale, vous devez les "échapper", en les faisant précéder d'une barre oblique inverse "\".

Exemple 1.- Si vous voulez accepter comme correcte la réponse "Cet ordinateur coûte 1000$ aux USA.", vous devrez rédiger ainsi votre réponse : "Cet ordinateur coûte 1000\$ aux USA\.".

Exemple 2.- Si vous voulez accepter comme correcte la réponse "Les ordinateurs de bureau sont (généralement) plus puissants que les portables.", vous devrez rédiger ainsi votre réponse : "Les ordinateurs de bureau sont \(généralement\) plus puissants que les portables\.".

  • Vous pouvez mélanger les métacaractères qui ont un rôle spécial avec d'autres qui ont une valeur "littérale", à l'intérieur d'une même réponse. Mais faites attention à ne pas vous mélanger les pinceaux.

Exemple 3.- Pour accepter l'une ou l'autre de ces 2 réponses correctes : "Les ordinateurs sont (généralement) moins cher que les voitures." et "Les ordinateurs sont (généralement) meilleur marché que les voitures.", vous devrez rédiger ainsi votre réponse : "Les ordinateurs sont \(généralement\) (meilleur marché|moins cher) que les voitures."

  • Dans les cases des Réponses Acceptables vous ne pouvez entrer que des expressions régulières qui pourront générer un nombre fini de phrases. C'est pourquoi vous ne serez pas autorisé à entrer certains métacaractères qui correspondraient à un nombre potentiellement infini de phrases.
  • Liste des métacaractères que vous pouvez utiliser pour leur fonction spéciale dans la syntaxe des expressions régulières :

( ) [ ] ? |

  • Liste des métacaractères que vous ne pouvez pas utiliser pour leur fonction spéciale dans la syntaxe des expressions régulières. Vous ne pouvez utiliser ces caractères que pour leur valeur "littérale", en les "échappant" avec une barre oblique inverse comme expliqué plus haut :

. ^ $ * + ? { } \ /

Dans les Réponses Incorrectes

  • Les Réponses Incorrectes sont des réponses dont le score est égale à zéro (Aucun).

Lorsque vous rédigez ces Réponses Incorrectes, vous pouvez utiliser la totalité des métacaractères pour leur valeur spéciale :

. ^ $ * ( ) [ ] + ? | { } \ /

Pour des exemples d'utilisation, voir le paragraphe Détection des mots ou chaînes de caractères manquants ci-après.

Validation des Réponses

Lorsque vous validez votre Question de type REGEXP, le "moteur" de la question vérifie la validité de toutes vos expressionsn régulières, selon les règles expliquées ci-dessus. Si une erreur est trouvée (ou plusieurs), un message d'erreur s'affiche au-dessus de la (ou les) Réponses erronées et il vous impossible d'enregistrer votre question tant qu'il y reste des erreurs.

Le "moteur de validation" vérifie également que vos parenthèses et crochets carrés sont correctement ouverts et fermés.

Note.- Le moteur de validation fonctionne mieux dans Moodle 2.1 que dans les versions précédentes. Le texte de la Réponse comportant des erreurs est affiché, suivi d'une (ou plusieurs) ligne(s) où les caractères erronnés sont clairement affichés. Voir la copie d'écran ci-dessous.

Errors fr.jpg

Détection des mots ou chaînes de caractères manquants

Les expressions régulières seules ne permettent pas de détecter des mots ou groupes de lettres absents de la réponse d'un élève, il faudra donc ajouter un petit code pour y arriver. Toute réponse prévue par le professeur qui commencera par un double tiret analysera la réponse de l'élève pour voir si la chaîne de caractères qui suit est présente ou absente. Si cette chaîne est présente, l'analyse continuera jusqu'à la réponse prévue suivante ; si la chaîne est absente, l'analyse s'arrêtera et le message de feedback prévu s'affichera.

Exemple 4. Question sur les couleurs du drapeau français.

  • Réponse 2: --.*bleu.*
  • réponse de l'élève : "il est blanc et rouge "
  • Feedback 2: Il manque la couleur du ciel !

Ici, le point signifie "n'importe quel caractère, et l'astérisque signifie "le caractère qui précède, répété un nombre quelconque de fois". La réponse prévue n° 2 ci-dessus signifie : vérifier si la chaîne de caractères "bleu", précédée de n'importe quoi et suivie de n'importe quoi est absente de la réponse de l'élève. Notez que l'usage de l'astérisque est légèrement différent dans les questions de type Réponse Courte et dans les questions de type Réponse Courte avec expressions régulières.

Exemple 5. Question : "Donnez en anglais le nom d'un animal qui fait 3 lettres et dont la lettre du milieu est la voyelle a". Réponse prévue : "--[b|c|r]". Feedback : "Votre réponse devrait commencer par l'une de ces 3 lettres : b, c ou r".

Exemple 6. Question "Quelles sont les couleurs du drapeau français ?".

  • Réponse 2 : "--.*(bleu|rouge|blanc).*"
  • réponse de l'élève : "Il est noir et orange."
  • Feedback : "Vous n'avez trouvé aucune des couleurs attendues !"
  • réponse de l'élève : "Il est bleu et orange."
  • Feedback: Aucun feedback, l'analyse se poursuit jusqu'à l'expression régulière suivante.

Explication.- L'expression régulière de la réponse 2 recherche un mot manquant dans la liste de ceux prévus entre parenthèses et séparés par le signe |. Dès que l'un des mots présumés manquants est trouvé dans la réponse de l'élève, la condition "mots manquants" est considérée comme FAUSSE et l'analyse se poursuit.

Example 7. Question "Quelles sont les couleurs du drapeau français ?".

  • Réponse 2 : "--.*(&&bleu&&rouge&&blanc).*"
  • réponse de l'élève : "Il est bleu, rouge et orange."
  • Feedback: "Vous n'avez pas trouvé TOUTES les couleurs attendues !".
  • réponse de l'élève : "blanc bleu rouge".
  • Feedback: Aucun feedback, l'analyse se poursuit jusqu'à l'expression régulière suivante.

Explication.- L'expression régulière de la réponse 2 recherche un mot manquant dans la liste de ceux prévus entre parenthèses et séparés par le double signe &&. C'est seulement si TOUS les mots de la liste sont présents dans la réponse de l'élève (quel que soit leur ordre) que la condition "mots manquants" sera considérée comme FAUSSE et que l'analyse se poursuivra. Notez que cette liste doit commencer par la séquence '&&'.

Échapper les caractères spéciaux

Si vous avez besoin dans vos réponses prévues de caractères qui font partie de la liste des caractères spéciaux utilisés dans la syntaxe des expressions régulières, vous devrez les "échapper", c-a-d les faire précéder d'une barre oblique inverse. Par exemple si vous voulez accepter la réponse "Cet ordinateur vaut 1 000$", vous écrirez ainsi l'expression régulière: "Cet ordinateur vaut 1 000\$". Voici la liste complète des caractères spéciaux qui doivent être échappés : ^ $ * ( ) [ ] + ? | { } \ /

Édition des Réponses en mode professeur

Affichage du bouton Indice

Il est possible d'afficher un bouton Indice pour permettre à l'étudiant d'acheter une lettre. Un clic sur ce bouton Indice ajoutera la lettre suivante correcte à la réponse courante de l'élève. Si le paramètre Appliquer les pénalités a été activé dans les réglages du test, une pénalité correspondant au Facteur de pénalité sera appliquée à chaque "achat" de lettre par l'étudiant. Par défaut l'affichage du bouton Indice est paramétré à Non. Dans Moodle 1.9 et 2.0, le bouton Indice ne sera disponible pour l'étudiant que si dans le Test le paramètre Mode adaptatif a été réglé sur Oui. Dans Moodle 2.1, le bouton Indice ne sera disponible que pour les Tests dont le paramètre Comportement de la question aura été réglé sur Adaptatif (avec ou sans pénalités).

Moodle2.1

Dans Moodle 2.1, en raison du changement dans le système de score, un clic sur le bouton Indice n'enlève pas immédiatement une pénalité du score de l'étudiant. La pénalité sera appliquée lorsque l'étudiant cliquera sur le bouton Vérifier. En attendant cette action, le bouton Indice sera désactivé (affichage en grisé) pour empêcher l'étudiant d'obtenir un nombre incontrôlé de lettres ! Lorsque le bouton Indice est désactivé, un bouton ? s'affiche à sa droite, expliquant à l'étudiant qu'il doit d'abord Vérifier sa réponse avant que le bouton Indice soit réactivé. regexp click check button fr.jpg

Moodle1.9

Dans Moodle 1.9, lorsque le professeur visualise les résultats du test pour chaque étudiant, il peut voir ce caractère "paragraphe" ( ¶ ) à la suite de chaque réponse pour laquelle l'étudiant a demandé de l'aide.

Dans Moodle 2.0 à chaque fois que l'étudiant clique sur le bouton Indice pour acheter une lettre, un caractère paragraphe invisible ( ¶ ) est ajouté au texte de sa réponse.

Moodle2.0

Dans Moodle 2.0, sur la page 'Relecture de la tentative', section 'Historique des réponses', l'étiquette [Indice] est affichée dans la colonne 'Réponse du participant' après chaque réponse pour laquelle l'étudiant a demandé de l'aide en cliquant sur le bouton Indice.

regexp hint history fr.jpg

Moodle2.1

Dans Moodle 2.1, l'étiquette Indice est suivie de la lettre qui a été "achetée" par l'étudiant.

regexp hint history 21 fr.jpg

Casse des caractères

Moodle1.9

Dans Moodle 1.9, par défaut une expression régulière est sensible à la casse (minuscules/majuscules). Pour rendre l'expression insensible à la casse, vous ajouterez le paramètre /i tout à la fin de l'expression.

Moodle2.1

Moodle2.0

Dans Moodle 2.0, vous disposez en mode édition de la question du paramètre Casse des caractères, qui s'applique à toutes les réponses (expressions régulières) de la question en cours. Vous ne devez plus ajouter le paramètre /i à la fin de vos expressions régulières. Si vous avez créé des questions de type REGEXP dans Moodle 1.9, vous serez amené à supprimer le paramètre /i à la fin de vos expressions régulières.

Première réponse correcte

Pour la Réponse 1 vous devez entrer un texte qui a) est la "meilleure" réponse attendue possible; b) n'est pas une expression régulière ou - plus exactement - ne sera pas interprété comme telle mais comme du texte normal et c) à laquelle vous affectez une Note de 100%. Vous remarquerez que lors de la création d'une nouvelle question de type regexp, la Note attribuée à la Réponse 1 est automatiquement mise sur 100%. et vous ne pouvez pas modifier ce score.

Note.- Il y a deux manières d'entrer une Réponse contenant des méta caractères (^ $ * ( ) [ ] + ? | { }), selon qu'il s'agit de la Réponse 1 ou de l'une des Réponses suivantes. Exemple : combien coûte cet ordinateur américain ?

Réponse 1: Il vaut 1 000$.

Réponse 2: Il (m')?a couté 1 000\$\.

Dans Réponse 1 vous tapez la réponse attendue telle quelle. Dans la Réponse 2 en revanche vous devez "échapper" les méta-caractères $ et point final.

Autres Réponses (Réponse 2, 3, etc.)

Toute réponse avec une Note supérieure à 0% doit être entrée sous forme d'une expression régulière qui peut générer des réponses alternatives acceptables (que la note soit de 100% ou inférieure). Ceci veut dire que vous ne pouvez pas entrer une réponse ayant une Note supérieure à 0% et commençant par un double tiret --, syntaxe utilisée pour détecter l'absence de mots, comme expliqué plus haut.

Prévisualisation des questions dans une fenêtre popup (pour le professeur seulement)

Lorsque le professeur prévisualise une question dans la fenêtre popup il peut désormais également voir la liste complète des solutions alternatives acceptables. Ces solutions alternatives sont automatiquement générées à partir des expressions régulières que vous avez entrées en créant la question et auxquelles vous avez attribué une note supérieure à 0%. La toute première solution (Solution 1) est affichée en tête de liste. Elle est suivie des autres solutions acceptables, sous la forme suivante : a) la note attribuée; b) un rappel de votre expression régulière et c) la liste des solutions générées par cette expression régulière.

Actuellement le seul mécanisme de vérification de la validité des expressions régulières entrées par le professeur consiste à vérifier que les parenthèses ouvertes sont bien toutes refermées (ainsi que les crochets carrés, si vous les utilisez). Si le nombre de parenthèses (ou de crochets carrés) ouvertes ne correspond pas au nombre de parenthèses fermées, un message d'erreur vous en avertira, qui précisera l'expression régulière où l'erreur a été détectée ainsi que la nature de l'erreur (mais pas l'emplacement exact). Vous devrez immédiatement corriger l'expression régulière fautive dans la question en cours de prévisualisation.

Aussitôt après avoir créé une nouvelle question à expression régulières, il est fortement conseillé de prévisualiser cette question et de cliquer sur le bouton Afficher les réponses alternatives afin de vérifier le bon fonctionnement des expressions régulières que vous avez créées.

alternate answers fr.jpg

Feedback automatique supplémentaire (couleur de caractères)

Lorsqu'un étudiant (ou le professeur en mode Prévisualisation de question) soumet une réponse à une question de type REGEXP, 3 types de messages sont affichés (en mode Adaptatif).

Moodle2.1

Veuillez noter que dans Moodle 2.1 la question de type REGEXP ne peut s'utiliser qu'en mode adaptatif, quel que soit le mode de fonctionnement du Test dans lequel cette question se trouve.

Il est donc fortement conseillé de créer des Tests ne contenant que des questions de type REGEXP, ou mélangées à des questions d'autres types, à condition que dans le Test le paramètre Comment se comportent les questions soit réglé sur Mode adaptatif.

  • Le message standard délivré par le module Test : correct/incorrect (plus la couleur associée avec ces états - vert ou rouge).
  • Le message de feedback prévu par le professeur pour chaque réponse - correcte ou incorrecte - lors de la création de la question.
  • Un message de feedback supplémentaire est automatiquement fourni par le système, en affichant la réponse soumise par l'étudiant, qui sera formatée selon les codes de couleur suivants :
    • le début de la réponse soumise par l'étudiant et qui correspond au mieux à l'une des réponses alternatives possibles est affiché en bleu ;
    • tous les mots présents dans la réponse soumise et qui sont présents dans les réponses alternatives possibles suivant le début de réponse correcte sont colorés en rouge ;
    • tous les mots non présents dans les réponses alternatives possibles suivant le début de réponse correcte sont colorés en rouge et barrés ;

Bien entendu, le sens de ces couleurs, etc. devra être expliqué aux étudiants avant qu'ils ne fassent le test ; en particulier la différence entre le formatage "rouge" et "rouge barré".

Note.- Les systèmes de coloration des mots de la réponse soumise par l'étudiant sont différents dans Moodle 1.9 et 2.0. Le système expliqué ici est celui de Moodle 2.0 et (légèrement différent) de Moodle 2.1.

Moodle2.0regexp colored feedback.jpg




Moodle2.1regexp colored feedback 21 fr.jpg

Insertion de sous-questions de type regexp dans une question de type Close

Note importante

La question de type RegExp n'est pas reconnue par la question de type Close de Moodle. Si vous souhaitez inclure des questions de type RegExp dans une question de type Close, vous devrez remplacer le fichier question/type/multianswer/questiontype.php de la distribution standard de Moodle par une version modifiée. Voir les détails sur le site Modules and Plugins de Moodle.

Syntaxe d'insertion de sous-questions de type REGEXP dans une question de type Cloze.

Moodle1.9

Dans Moodle 1.9, utilisez REGEXP

  • Les couleurs du drapeau français sont : {:REGEXP:=bleu, blanc, rouge#Correct!~=le bleu, le blanc(,| et) le rouge #Correct!~--.*bleu.*#Il manque la couleur du ciel.}
  • Les couleurs du drapeau français sont : {:REGEXP:%100%bleu, blanc, rouge#Correct!~%100%le bleu, le blanc(,| et) le rouge#Correct!~%0%--.*bleu.*#Il manque la couleur du ciel.}

Moodle2.1

Moodle2.0

Dans Moodle 2.0 ou 2.1, utilisez REGEXP ou l'abréviation RX pour les réponses qui ne sont pas sensibles à la casse des caractères.

  • Les couleurs du drapeau français sont : {:REGEXP:=bleu, blanc, rouge#Correct!}
  • Les couleurs du drapeau français sont : {:RX:=bleu, blanc, rouge#Correct!}

Acceptera "bleu, blanc, rouge" et aussi "Bleu, blanc, rouge" ou encore "BLEU, BLANC, ROUGE".

Dans Moodle 2.0, utilisez REGEXP_C ou l'abréviation RXC pour les réponses qui sont sensibles à la casse des caractères.

  • Les couleurs du drapeau français sont : {:REGEXP_C:=bleu, blanc, rouge#Correct!}
  • Les couleurs du drapeau français sont : {:RXC:=bleu, blanc, rouge#Correct!}

Acceptera "bleu, blanc, rouge" mais n'acceptera pas "Bleu, blanc, rouge" (erreur de majuscules).

Veuillez noter que, comme expliqué ci-dessus, la toute première solution doit avoir une note de 100% et ne doit pas être une expression régulière. Dans la syntaxe du type de question Cloze, une note de 100% s'écrit soit = soit %100%. Comme indiqué plus haut, si vous oubliez par hasard d'attribuer la note de 100% à la toute première solution de votre liste, au moment d'enregistrer votre question Cloze un message d'erreur vous en avertira. Toutefois, si vous voyez le message "La Solution 1 doit être correcte et avoir un score de 100%. Voulez-vous retourner modifier ceci ?" vous ne devez pas cliquer sur le bouton Oui, mais sur le bouton Non, puis retourner dans votre question Cloze et faire la correction nécessaire.

Veuillez noter que la syntaxe des sous-questions insérées dans une question de type Cloze doit être suivie à la lettre et qu'il ne faut jamais copier-coller du texte depuis votre traitement de texte vers le texte d'une question de type Cloze sous peine d'en empêcher le bon fonctionnement.

Le bouton Indice n'est pas disponible pour une sous-question de type regexp insérée dans une question de type Cloze.

Voir aussi