Question calculée

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 : Question calculée et celle pour Moodle 3.x est consultable là : Question calculée.

Remarque : cet article est en cours de rédaction. N'hésitez pas à le compléter. Veuillez utiliser la page de discussion pour vos recommandations et suggestions d'améliorations.


Les questions calculées permettent de créer des questions numériques par l'utilisation de paramètres tels que {x},{y} qui seront remplacés par des valeurs tirées au hasard lorsque le test est passé par un étudiant.

Par exemple, si vous souhaitez créer un grand nombre de problèmes du type "Calculez l'aire d'un rectangle" pour entrainer vos étudiants, vous pouvez créer une question avec deux paramètres par exemple {base} et {hauteur} et dans le champs "Formule de la bonne réponse =" vous inscrivez {base}*{hauteur} (* est le signe de la multiplication).

Quand un étudiant passe le test, Moodle choisira aléatoirement les valeurs pour {base} et {hauteur} et évaluera la justesse de la réponse en utilisant la formule de calcul que vous avez saisie.

Le test a très peu de chance d'apparaitre deux fois avec les mêmes valeurs.

Est-ce le type de question dont vous avez besoin

Le but principal d'une question calculée est de générer de multiples versions d'une question avec des valeurs numériques différentes. Cela implique que vous devez avoir au moins un paramètre qui variera aléatoirement dans une des réponses.

Caractères génériques et jeu de données

Quand Moodle propose une question calculée à l'étudiant, les paramètres entre accolades sont remplacés par des valeurs aléatoires. Pour être exact, ces valeurs ne sont pas vraiment aléatoires mais plutôt aléatoirement choisies parmi un jeu de données, pré-défini, de données possibles. Cela vous permet de contrôler les valeurs choisies (par exemple pour s'assurer que les valeurs seront des nombres réels).

Ces jeux de données peuvent être "privé" ou "partagé". Les jeux de données privés ne sont utilisés que pour un paramètre d'une question calculée définie ; les jeux de données partagés sont utilisés pour un paramètre dans toutes les questions où ce paramètre est utilisé.

Configuration de la question calculée

Comme pour toutes les questions, ouvrir la banque de questions en cliquant sur "question" dans le bloc d'administration. Choisir la catégorie de rattachement de la question ; toutes les catégories partagées possibles sont listées dans le menu déroulant. Il est possible qu'il n'existe que les catégories par défaut ; vous pourrez ajouter et changer de catégorie ultérieurement.

Choisir le type de question "calculée" dans le menu déroulant

Pour créer (ou modifier) une question calculée, il y a trois pages de configuration. Les instructions ci-dessous vous guident pas à pas à travers ces trois pages :


Page 1. Ajout d'une question calculée

  1. Vous pouvez modifier la catégorie de rattachement; si vous le faites n'oubliez pas de cliquer sur le bouton modifier la catégorie pour valider la mise à jour.
  2. Donner un nom à la question qui vous permette de l'identifier dans la banque de questions
  3. Saisissez le texte de la question; il s'agit de l'énoncé de la question à laquelle l'étudiant doit répondre et il doit contenir toutes les informations nécessaires à l'étudiant pour le calcul de la réponse. Par conséquent il devrait contenir au moins un paramètre (une donnée dont la valeur variera à chaque étudiant) indiqué entre accolades. Par exemple si vous souhaitez que vos étudiants fassent la somme de A et B; le texte de la question pourrait être: Calculer la somme de {A} et {B}
  4. si vous souhaitez afficher une image, elle apparaîtra après le texte de la question, avant les choix. Si vous souhaitez plus de contrôle sur le placement de l'image , incluez la dans le texte de la question en utilisant la barre d'édition standard.
  5. Définissez la valeur du champ note par défaut; il doit contenir le nombre de points maximum pour cette question.
  6. Définissez le champ Facteur de pénalité. Vous pouvez déterminer, pour chaque mauvaise réponse, quelle proportion de la note sera retirée. Cela n'est intéressant que si le test est effectué en mode adaptatif. Ainsi, l'étudiant peut apporter une nouvelle réponse à la question. Le facteur de pénalité doit être un nombre compris entre 0 et 1. Un facteur de pénalité de 1 signifie que l'étudiant doit fournir la bonne réponse au premier essai, sous peine de n'obtenir aucun point. Un facteur de pénalité de 0 Signifie que l'étudiant peut réessayer autant de fois qu'il veut et pourra obtenir tous les points. Un facteur de pénalité de 0.2 pour une note de 10 signifie qu'à chaque mauvaise réponse, l'étudiant est pénalisé de deux points.
  7. Saisir éventuellement un texte de feedback général Ce texte est présenté à l'étudiant après une tentative de réponse. Le feedback général peut servir à donner des indications sur les connaissances que la question testait, ou pour apporter des éléments complémentaires si les étudiants n'avaient pas compris la question.
  8. Ensuite, saisir la réponse sous forme d'une formule de calcul; cette formule contient au moins un des paramètres déclarés dans le texte de la question. ATTENTION, ne pas mettre le signe égal dans la formule. Dans les nouvelles versions vous pouvez avoir plusieurs réponses différentes et leur appliquer un barème différent tant qu'au moins une des réponses obtient 100% des points.

Remarques:

-En règle générale, écrivez vos formules comme vous le feriez sur une calculatrice; exemple 3+5*sin(3:{x}) ; une exception cependant pour la fonction exponentielle: x au cube n'est pas écrit {x}^3 mais on utilise la fonction pow({x},3)

-Il est préférable de mettre trop de parenthèses que pas assez pour être sûr que la formule sera bien interprétée, en particulier, n'oubliez pas les parenthèses pour les fonctions qui en ont besoin; exemple (sin(3)/x) est différent de (sin(3/x))

-Il n'y a pas de multiplication implicite, mettez toujours le signe "*" pour multiplier.

  1. Pour chaque réponse, indiquez le pourcentage de la note maximale obtenu pour cette réponse.
  2. Déterminer l'écart toléré entre la réponse de l'étudiant et la réponse exacte. La tolérance et le type de tolérance se combinent pour déterminer un intervalle de résultat acceptable. Exemple : si la tolérance = t, la réponse correcte = x, la différence avec la réponse de l'étudiant d
    1. Nominal: la réponse de l'étudiant est jugée juste si d <=t
    2. Relatif: la réponse de l'étudiant est jugée juste si d/x <= t
    3. Géométrique: la réponse de l'étudiant est jugée juste si d² <= t
  3. Les deux champs suivants "La réponse correcte affiche" et"Format" déterminent le nombre de décimales ou de chiffres significatifs que vous attendez dans la réponse.
  4. Le champ "feedback"apparait aux étudiants s'ils donnent cette réponse.
  5. Vous pouvez spécifier autant de réponses que vous le souhaitez en cliquant sur "emplacement pour 1 réponse supplémentaire"
  6. Vous pouvez aussi préciser une unité de mesure pour la réponse. Si vous choisissez l'unité "cm", et que la bonne réponse est 15, alors les réponses 15cm et 15 sont considérées comme bonnes. Si vous ajoutez d'autres unités de mesure, par exemple "mm" avec le multiplicateur "10". Cela signifie que les réponses 15cm ou 150mm seront acceptées.
  7. Vous pouvez passer à la page suivante

Page 2. Propriétés du jeu de données

Chaque paramètre que vous spécifiez dans la formule doit avoir un jeu de valeurs possibles, c'est son jeu de données. Donc chaque paramètre est listé dans cette seconde page de configuration pour que son jeu de données soit défini. Il est possible de choisir entre :

  • jeu de données privé qui n'est utilisé que pour cette question
  • jeu de données partagé qui peut être utilisé pour d'autres questions calculées de la même catégorie

Utiliser un jeu de données partagé peut vous permettre de gagner du temps lorsque vous créez un grand nombre de questions calculées similaires.

Poursuivez en choisissant pour chaque paramètre le type de jeu de données, puis cliquez sur "page suivante"

Page 3. Éditer les jeux de données

A ce stade, il faut créer le jeu des valeurs possibles que chaque paramètre peut prendre. Attention, cette page est un peu confuse. Il y a deux façons de créer des valeurs, soit vous saisissez une liste de valeurs, soit vous laissez Moodle les générer pour vous.

Ajouter/effacer vos propres valeurs :

Ajouter des valeurs une par une à la liste se fait simplement :

  1. Dans chaque champs paramètre saisissez la valeur souhaitée
  2. Allez à la section 'Ajouter' et cliquez sur le bouton 'Ajouter' (en laissant le nombre d'item à 1)
  3. Répétez l'opération précédente autant de fois que nécessaire (le maximum d'item est de 100)

Pour effacer des valeurs d'une liste :

  1. Dans la section 'supprimer', sélectionnez le nombre d'item à effacer
  2. Cliquez sur le bouton 'Supprimer'

Laissez Moodle générer les valeurs :

  1. Commencez par définir l'intervalle des valeurs que vous accepterez, en saisissant les limites inférieures et supérieures
  2. Choisissez le nombre de décimales des valeurs
  3. Choisissez la distribution des valeurs entre les limites de l'intervalle : soit "uniforme" pour que toutes les valeurs de l'intervalle aient la même probabilité d'être générées ; soit "Log-uniforme" pour que les valeurs proches de la limite inférieure aient plus de chance d'être générées
  4. Allez ensuite à la section "Ajouter" et cliquez sur "Forcer la régénération"
  5. Dans le menu déroulant à coté du bouton "Ajouter", choisissez le nombre d'items que vous souhaitez ajouter à la liste (la liste ne peut pas dépasser 100 items)
  6. Pour terminer cliquez sur le bouton ajouter
  7. Si vous souhaitez plus de contrôle sur la création des valeurs vous pouvez les générer une par une et pré-visualiser les valeurs avant de les ajouter. Cliquez sur le bouton Obtenir un nouvel "élément à ajouter" pour que Moodle génère une nouvelle valeur dans la section "Élément à ajouter" en haut de la page. Si cet élément vous convient cliquez sur le bouton ajouter pour un élément ; sinon cliquez à nouveau sur le bouton Élément à ajouter pour obtenir une nouvelle valeur.

Noter que si vous supprimez des éléments de la liste, vous pouvez les récupérer en choisissant l'option Réutiliser la valeur précédente si disponible au lieu de l'option par défaut Imposer une regénération

Terminer

Quand votre liste d'éléments (valeurs) est complète vous pouvez enregistrer. (bouton en bas de la page)


Fonctions disponibles

Les questions calculées peuvent utiliser plus que les simples opérateurs arithmétiques. Les fonctions suivantes sont utilisables dans les versions 1.5 et ultérieures.

Fonction Explication
abs Valeur absolue
acos Arc cosinus -- en radians !!! Convertissez vos mesures de degrés en radians avant d'en demander l'acos.
acosh Inverse du cosinus hyperbolique -- en radians !!! Convertissez vos mesures de degrés en radians avant d'en demander l'acosh.
asin Arc sinus -- en radians !!! Convertissez vos mesures de degrés en radians avant d'en demander l'asin.
asinh Inverse du sinus hyperbolique -- en radians !!! Convertissez vos mesures de degrés en radians avant d'en demander l'asinh.
atan2 Arc tangente de deux variables -- Passez deux valeurs comme (x, y), et vous obtiendrez l'atah(y/x), ajusté au bon quadrant.
atan Arc tangente -- en radians !!! Convertissez vos mesures de degrés en radians avant d'en demander l'atan.
atanh Inverse de la tangente hyperbolique
bindec Conversion de binaire en décimal
ceil Arrondit à l'entier supérieur
cos Cosinus -- en radians !!! Convertissez vos mesures de degrés en radians avant d'en demander le cos.
cosh Cosinus hyperbolique -- en radians !!! Convertissez vos mesures de degrés en radians avant d'en demander le cosh.
decbin Conversion de décimal en binaire
decoct Conversion de décimal en octal
deg2rad Conversion de degrés en radians
exp Calcule l'exposant de e
expm1 Returns exp(number) - 1, computed in a way that is accurate even when the value of number is close to zero
floor Arrondit à l'entier inférieur
fmod renvoie le modulo (nombre à virgule flottante) de deux nombres - C'est à dire le reste de la division du premier nombre par le second.
is_finite Finds whether a value is a legal finite number
is_infinite Détermine si une valeur est infinie
is_nan Détermine si une valeur n'est pas un nombre
log10 Base-10 logarithm
log1p Returns log(1 + number), computed in a way that is accurate even when the value of number is close to zero
log logarithme népérien (ln)
max Trouve la valeur la plus haute
min Trouve la valeur la plus basse
octdec Conversion d'octal en décimal
pi() Renvoie la valeur de Pi
pow (numberToRaise, NumberRaisedTo) Exponentielle
rad2deg Conversion d'une mesure en radian en son équivalent en degrés
rand Génère un entier aléatoirement
round arrondi d'un nombre à virgule
sin Sinus -- en radians !!! Convertissez vos mesures de degrés en radians avant d'en demander le sinus.
sinh Sinus hyperbolique-- en radians !!! Convertissez vos mesures de degrés en radians avant d'en demander le sinus hyperbolique.
sqrt Racine carrée
tan Tangente -- en radians !!! Convertissez vos mesures de degrés en radians avant d'en demander la tangente.
tanh Tangente hyperbolique-- en radians !!! Convertissez vos mesures de degrés en radians avant d'en demander la tangente hyperbolique.

Constante prédéfinie

Pour l'instant, il n'y a pas d'autre constante prédéfinie autorisée que pi( ), sans paramètre, qui renvoie la valeur de pi.