🧮 Questions mathématiques (expressions)
Les questions de type math permettent aux élèves de saisir des expressions mathématiques complètes (fractions, racines, puissances…) via un clavier mathématique dédié, avec une validation intelligente qui distingue les erreurs de valeur des erreurs de forme.
💡 Quelle différence avec une question numérique ?
| Question numérique | Question math | |
|---|---|---|
| Saisie | Un nombre simple (entier ou décimal) | Une expression LaTeX (fraction, racine, puissance…) |
| Clavier | Clavier numérique basique | Clavier mathématique avancé (MathLive) |
| Validation | Comparaison numérique avec tolérance | Comparaison symbolique + contraintes de forme |
| Feedback | Correct / Incorrect | Correct / Incorrect / Bonne valeur mais mauvaise forme / Ambigu |
| Exemple | « Combien font 2 + 3 ? » → 5 | « Simplifier (\frac{4}{6}) » → (\frac{2}{3}) |
En résumé : utilisez numeric pour des résultats numériques simples, et math quand la forme de la réponse (fraction irréductible, expression développée, etc.) fait partie de la compétence évaluée.
🚀 Créer une question math (interface web)
Étape par étape
- Ouvrez l'éditeur de questions (menu enseignant → « Éditer des questions »)
- Sélectionnez le type « Expression math » dans le menu déroulant du type de question
- Rédigez l'énoncé dans le champ texte (vous pouvez utiliser du LaTeX avec
\(...\)) - Saisissez la réponse attendue (champ « Réponse LaTeX attendue ») — c'est l'expression de référence en LaTeX
- Configurez la validation (voir section suivante)
- Renseignez les champs habituels : niveau, discipline, thèmes, difficulté, temps limite, explication
Configuration de la validation
La validation se compose de deux éléments :
Méthode de comparaison (valueCheck)
- EXACT (par défaut) : la réponse de l'élève doit être mathématiquement égale à la réponse attendue. Par exemple (\frac{2}{4}) est acceptée si la réponse attendue est (\frac{1}{2}).
- APPROXIMATE : la réponse de l'élève doit être numériquement proche (à une tolérance près). Utile pour les approximations décimales de (\pi), (\sqrt{2}), etc.
Contraintes de forme (constraints)
Les contraintes permettent d'exiger une forme particulière de la réponse. Si l'élève donne la bonne valeur mais sous une forme non conforme, il recevra le feedback « Bonne valeur, forme incorrecte ».
📐 Contraintes disponibles
IS_FRACTION — Exiger une fraction
L'élève doit répondre sous forme de fraction (\frac{a}{b}).
| Réponse | Attendu | Résultat |
|---|---|---|
| (\frac{1}{2}) | (\frac{1}{2}) | ✅ Correct |
| (0.5) | (\frac{1}{2}) | ⚠️ Bonne valeur, forme incorrecte |
Cas d'usage : « Écrire sous forme de fraction… », « Donner le résultat sous forme fractionnaire… »
IS_IRREDUCIBLE — Exiger une fraction irréductible
L'élève doit donner une fraction dont le numérateur et le dénominateur sont premiers entre eux.
| Réponse | Attendu | Résultat |
|---|---|---|
| (\frac{1}{2}) | (\frac{1}{2}) | ✅ Correct |
| (\frac{2}{4}) | (\frac{1}{2}) | ⚠️ Bonne valeur, forme incorrecte |
| (\frac{3}{4}) | (\frac{1}{2}) | ❌ Incorrect |
Cas d'usage : « Simplifier la fraction… », « Donner la fraction irréductible… »
💡 Combinez
IS_FRACTION+IS_IRREDUCIBLEpour exiger à la fois la forme fractionnaire et la simplification.
IS_EXPANDED — Exiger une forme développée
L'élève doit développer l'expression (pas de parenthèses factorisées).
| Réponse | Attendu | Résultat |
|---|---|---|
| (x^2 + 2x + 1) | ((x+1)^2) | ✅ Correct |
| ((x+1)^2) | ((x+1)^2) | ⚠️ Bonne valeur, forme incorrecte |
Cas d'usage : « Développer l'expression… », « Développer et réduire… »
IS_FACTORED — Exiger une forme factorisée
L'élève doit factoriser l'expression. Deux niveaux :
- PARTIAL : au moins un facteur non trivial (ex : (x(x+1)))
- FULL_AGAINST_TARGET : la factorisation doit correspondre à la structure de la réponse attendue
| Réponse | Attendu | Niveau | Résultat |
|---|---|---|---|
| (x(x+1)) | (x^2+x) | PARTIAL | ✅ Correct |
| (x^2+x) | (x(x+1)) | PARTIAL | ⚠️ Bonne valeur, forme incorrecte |
| ((x+1)(x-1)) | ((x+1)(x-1)) | FULL | ✅ Correct |
Cas d'usage : « Factoriser l'expression… », « Mettre en facteur… »
IS_DECIMAL — Exiger une écriture décimale
L'élève doit répondre sous forme décimale (pas de fraction).
| Réponse | Attendu | Résultat |
|---|---|---|
| (0.5) | (\frac{1}{2}) | ✅ Correct |
| (\frac{1}{2}) | (0.5) | ⚠️ Bonne valeur, forme incorrecte |
| (5) | (5) | ✅ Correct (un entier est un décimal) |
Cas d'usage : « Donner la valeur décimale… », « Écrire sous forme décimale… »
REQUIRE_DECIMAL_PLACES — Exiger un nombre précis de décimales
L'élève doit donner un nombre décimal avec exactement le nombre de décimales spécifié.
| Réponse | Attendu | Places | Résultat |
|---|---|---|---|
| (3.14) | (\pi) | 2 | ✅ Correct (avec APPROXIMATE) |
| (3.1) | (\pi) | 2 | ⚠️ Bonne valeur, forme incorrecte |
| (3.142) | (\pi) | 2 | ⚠️ Bonne valeur, forme incorrecte |
Cas d'usage : « Donner une valeur approchée à 0.01 près… », « Arrondir au centième… »
💡 Combinez avec
valueCheck: APPROXIMATEet une tolérance adaptée.
IS_RATIONALIZED — Exiger un dénominateur rationalisé
L'élève ne doit pas avoir de racines au dénominateur.
| Réponse | Attendu | Résultat |
|---|---|---|
| (\frac{\sqrt{2}}{2}) | (\frac{1}{\sqrt{2}}) | ✅ Correct |
| (\frac{1}{\sqrt{2}}) | (\frac{1}{\sqrt{2}}) | ⚠️ Bonne valeur, forme incorrecte |
Cas d'usage : « Rationaliser le dénominateur… », « Écrire sans radical au dénominateur… »
REQUIRE_STRUCTURAL_MATCH — Correspondance structurelle exacte
L'élève doit répondre avec la même structure syntaxique que la réponse attendue (comparaison via isSame() du ComputeEngine sur la forme brute). Cela va au-delà de l'égalité mathématique : l'écriture doit être identique.
| Réponse | Attendu | Résultat |
|---|---|---|
| (2+3) | (2+3) | ✅ Correct |
| (3+2) | (2+3) | ⚠️ Bonne valeur, forme incorrecte |
| (5) | (2+3) | ⚠️ Bonne valeur, forme incorrecte |
Cas d'usage : « Recopier l'expression suivante… », « Écrire exactement… », exercices de notation.
⚠️ Contrainte stricte : à utiliser avec précaution. Même des réécritures triviales (commutativité) échouent.
SCIENTIFIC_NOTATION — Exiger la notation scientifique
L'élève doit écrire sa réponse en notation scientifique (m \times 10^n) avec (1 \leq |m| < 10).
| Réponse | Attendu | Résultat |
|---|---|---|
| (3.2 \times 10^5) | (320000) | ✅ Correct |
| (32 \times 10^4) | (320000) | ⚠️ Bonne valeur, forme incorrecte (32 ≥ 10) |
| (320000) | (320000) | ⚠️ Bonne valeur, forme incorrecte |
Cas d'usage : « Écrire en notation scientifique… », « Exprimer en écriture scientifique… »
REQUIRE_SIGNIFICANT_FIGURES — Exiger un nombre de chiffres significatifs
L'élève doit donner un nombre avec exactement le nombre de chiffres significatifs spécifié.
| Réponse | Attendu | Figures | Résultat |
|---|---|---|---|
| (3.14) | (\pi) | 3 | ✅ Correct (avec APPROXIMATE) |
| (3.1) | (\pi) | 3 | ⚠️ Forme incorrecte (2 chiffres significatifs) |
| (3.142) | (\pi) | 3 | ⚠️ Forme incorrecte (4 chiffres significatifs) |
| (0.00340) | — | 3 | ✅ 3 chiffres significatifs (3, 4, 0 final) |
Règles de comptage :
- Les zéros initiaux ne comptent pas ((0.005) → 1 chiffre significatif)
- Les zéros intercalaires comptent ((1.02) → 3 chiffres significatifs)
- Les zéros finaux après la virgule comptent ((2.50) → 3 chiffres significatifs)
Cas d'usage : « Donner le résultat avec 3 chiffres significatifs… », « Arrondir à 2 CS… »
💡 Combinez avec
valueCheck: APPROXIMATEet une tolérance adaptée au nombre de chiffres significatifs demandés.
📊 Types de réponse (kind)
EXPRESSION (par défaut)
Le type par défaut. L'élève donne une expression mathématique (nombre, fraction, polynôme…). La validation compare la valeur canonique.
EQUATION
L'élève donne une équation (contenant =). La validation résout les deux équations et compare les ensembles de solutions.
| Réponse élève | Réponse attendue | Résultat |
|---|---|---|
| (2x = 4) | (x = 2) | ✅ Correct (mêmes solutions) |
| (x + 1 = 3) | (x = 2) | ✅ Correct |
| (x = 3) | (x = 2) | ❌ Incorrect |
Configuration :
validationConfig:
kind: "EQUATION"
responseFormat: "SINGLE"
variables: ["x"]
💡 Le champ
variablesindique la variable de résolution. Par défautxsi omis.
ANTIDERIVATIVE (primitive)
L'élève donne une primitive d'une fonction. La validation vérifie que la différence entre la réponse de l'élève et la réponse attendue est une constante (indépendante de la variable d'intégration).
| Réponse élève | Réponse attendue | Résultat |
|---|---|---|
| (x^2) | (x^2) | ✅ Correct |
| (x^2 + 5) | (x^2) | ✅ Correct (constante d'intégration) |
| (x^2 + C) | (x^2) | ✅ Correct (constante symbolique) |
| (x^3) | (x^2) | ❌ Incorrect |
Configuration :
validationConfig:
kind: "ANTIDERIVATIVE"
responseFormat: "SINGLE"
variables: ["x"]
Stratégie de validation :
- Symbolique (rapide) : simplifie
réponse - cibleet vérifie que le résultat ne dépend pas de la variable - Numérique (fallback) : si la simplification symbolique échoue (identités trigonométriques, etc.), évalue la différence en plusieurs points et vérifie qu'elle est constante
💡 Le fallback numérique permet d'accepter des réponses équivalentes que le moteur symbolique ne simplifie pas (ex: (\sin^2(x)) vs (1-\cos^2(x))).
⚠️ Pour les fonctions multi-variables, seule la variable d'intégration principale est supportée. Si le moteur ne peut conclure, le résultat sera
AMBIGUOUS.
📦 Formats de réponse (responseFormat)
SINGLE (par défaut)
Une seule valeur ou expression.
SET — Ensemble non-ordonné
L'élève doit donner un ensemble de valeurs (notation {a, b, c}). L'ordre ne compte pas.
| Réponse élève | Réponse attendue | Résultat |
|---|---|---|
| ({1, -1}) | ({-1, 1}) | ✅ Correct |
| ({-1, 1}) | ({-1, 1}) | ✅ Correct |
| ({1}) | ({-1, 1}) | ❌ Incorrect (élément manquant) |
| ({1, -1, 2}) | ({-1, 1}) | ❌ Incorrect (élément en trop) |
Cas d'usage : « Donner l'ensemble des solutions… », « Quels sont les antécédents… »
TUPLE — Tuple ordonné
L'élève doit donner un tuple ordonné (notation (a, b, c)). L'ordre compte.
| Réponse élève | Réponse attendue | Résultat |
|---|---|---|
| ((1, 2, 3)) | ((1, 2, 3)) | ✅ Correct |
| ((3, 2, 1)) | ((1, 2, 3)) | ❌ Incorrect (mauvais ordre) |
Cas d'usage : « Donner les coordonnées du point… », « Écrire le couple solution (x, y)… »
💡 Les contraintes de forme (IS_FRACTION, IS_IRREDUCIBLE…) s'appliquent à chaque élément de l'ensemble ou du tuple.
🎯 Combinaisons courantes
Voici des combinaisons fréquentes pour différents niveaux :
Collège (6e–3e)
| Exercice type | Contraintes | Exemple |
|---|---|---|
| Simplifier une fraction | IS_FRACTION + IS_IRREDUCIBLE | (\frac{12}{18}) → (\frac{2}{3}) |
| Développer une expression | IS_EXPANDED | (3(x+2)) → (3x+6) |
| Écriture décimale d'une fraction | IS_DECIMAL | (\frac{3}{4}) → (0.75) |
Lycée (2nde–Terminale)
| Exercice type | Contraintes | Exemple |
|---|---|---|
| Factoriser un polynôme | IS_FACTORED (FULL) | (x^2-1) → ((x-1)(x+1)) |
| Rationaliser | IS_RATIONALIZED | (\frac{1}{\sqrt{3}}) → (\frac{\sqrt{3}}{3}) |
| Valeur approchée | APPROXIMATE + DECIMAL_PLACES(3) | (\sqrt{2}) → (1.414) |
| Fraction irréductible | IS_FRACTION + IS_IRREDUCIBLE | (\frac{x^2-1}{x-1}) simplifié |
| Résoudre une équation | kind: EQUATION | (2x+3=7) → (x=2) |
| Ensemble de solutions | responseFormat: SET | (x^2=4) → ({-2, 2}) |
| Notation scientifique | SCIENTIFIC_NOTATION | (0.00045) → (4.5\times 10^{-4}) |
| Chiffres significatifs | REQUIRE_SIGNIFICANT_FIGURES(3) | (\sqrt{2}) → (1.41) |
| Coordonnées d'un point | responseFormat: TUPLE | Milieu → ((3, 5)) |
| Primitive d'une fonction | kind: ANTIDERIVATIVE | (\cos(x)) → (\sin(x)) |
| Primitive avec contrainte | kind: ANTIDERIVATIVE + IS_EXPANDED | (2x) → (x^2) (développé) |
📝 Format YAML (utilisateurs avancés)
Pour créer une question math en YAML :
uid: "math-fraction-001"
title: "Simplifier une fraction"
text: "Simplifier la fraction \\(\\frac{12}{18}\\)"
questionType: "math"
discipline: "mathématiques"
gradeLevels:
- "Sixième"
themes: ["Fractions"]
author: "M. Dupont"
difficulty: 2
timeLimit: 60
targetLatex: "\\frac{2}{3}"
validationConfig:
kind: "EXPRESSION"
responseFormat: "SINGLE"
valueCheck:
method: "EXACT"
constraints:
- type: "IS_FRACTION"
- type: "IS_IRREDUCIBLE"
explanation: "12 et 18 ont pour PGCD 6. On divise numérateur et dénominateur par 6 : 12÷6 = 2, 18÷6 = 3."
Champs spécifiques aux questions math
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
questionType | "math" | oui | Doit être "math" |
targetLatex | string | oui | Réponse attendue en LaTeX |
validationConfig | object | oui | Configuration de validation (voir ci-dessous) |
Structure de validationConfig
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
kind | string | oui | Type de réponse : "EXPRESSION", "EQUATION", ou "ANTIDERIVATIVE" |
responseFormat | string | oui | Format : "SINGLE", "SET", ou "TUPLE" |
variables | string[] | non | Variables de résolution/intégration (requis pour EQUATION et ANTIDERIVATIVE, défaut : ["x"]) |
valueCheck | object | non | Méthode de comparaison (défaut : EXACT) |
valueCheck.method | string | oui* | "EXACT" ou "APPROXIMATE" |
valueCheck.absTolerance | number | oui* | Tolérance absolue (requis si APPROXIMATE) |
constraints | array | non | Liste de contraintes de forme |
🧪 Templates prêts à l'emploi
1. Calcul de fraction simple (6e)
uid: "math-fraction-simple"
text: "Calculer \\(\\frac{1}{3} + \\frac{1}{6}\\)"
questionType: "math"
targetLatex: "\\frac{1}{2}"
validationConfig:
kind: "EXPRESSION"
responseFormat: "SINGLE"
valueCheck: { method: "EXACT" }
constraints:
- type: "IS_FRACTION"
- type: "IS_IRREDUCIBLE"
2. Développement d'identité remarquable (3e)
uid: "math-dev-identite"
text: "Développer \\((x+3)^2\\)"
questionType: "math"
targetLatex: "x^2+6x+9"
validationConfig:
kind: "EXPRESSION"
responseFormat: "SINGLE"
valueCheck: { method: "EXACT" }
constraints:
- type: "IS_EXPANDED"
3. Factorisation (2nde)
uid: "math-facto-diff-carres"
text: "Factoriser \\(x^2 - 9\\)"
questionType: "math"
targetLatex: "(x-3)(x+3)"
validationConfig:
kind: "EXPRESSION"
responseFormat: "SINGLE"
valueCheck: { method: "EXACT" }
constraints:
- type: "IS_FACTORED"
level: "FULL_AGAINST_TARGET"
4. Écriture décimale (6e)
uid: "math-decimal-fraction"
text: "Donner l'écriture décimale de \\(\\frac{3}{8}\\)"
questionType: "math"
targetLatex: "0.375"
validationConfig:
kind: "EXPRESSION"
responseFormat: "SINGLE"
valueCheck: { method: "EXACT" }
constraints:
- type: "IS_DECIMAL"
5. Valeur approchée de π (4e)
uid: "math-approx-pi"
text: "Donner une valeur approchée de \\(\\pi\\) au centième"
questionType: "math"
targetLatex: "3.14"
validationConfig:
kind: "EXPRESSION"
responseFormat: "SINGLE"
valueCheck:
method: "APPROXIMATE"
absTolerance: 0.005
constraints:
- type: "REQUIRE_DECIMAL_PLACES"
places: 2
6. Rationalisation du dénominateur (1ère)
uid: "math-rationaliser"
text: "Rationaliser le dénominateur de \\(\\frac{1}{\\sqrt{2}}\\)"
questionType: "math"
targetLatex: "\\frac{\\sqrt{2}}{2}"
validationConfig:
kind: "EXPRESSION"
responseFormat: "SINGLE"
valueCheck: { method: "EXACT" }
constraints:
- type: "IS_RATIONALIZED"
7. Simplification de racine (3e)
uid: "math-racine-simple"
text: "Simplifier \\(\\sqrt{50}\\)"
questionType: "math"
targetLatex: "5\\sqrt{2}"
validationConfig:
kind: "EXPRESSION"
responseFormat: "SINGLE"
valueCheck: { method: "EXACT" }
8. Fraction irréductible avec variables (2nde)
uid: "math-fraction-var"
text: "Simplifier \\(\\frac{2x}{4x^2}\\)"
questionType: "math"
targetLatex: "\\frac{1}{2x}"
validationConfig:
kind: "EXPRESSION"
responseFormat: "SINGLE"
valueCheck: { method: "EXACT" }
constraints:
- type: "IS_FRACTION"
- type: "IS_IRREDUCIBLE"
9. Développer et réduire (3e)
uid: "math-dev-reduire"
text: "Développer et réduire \\((2x+1)(x-3)\\)"
questionType: "math"
targetLatex: "2x^2-5x-3"
validationConfig:
kind: "EXPRESSION"
responseFormat: "SINGLE"
valueCheck: { method: "EXACT" }
constraints:
- type: "IS_EXPANDED"
10. Valeur approchée de √2 (4e)
uid: "math-approx-sqrt2"
text: "Donner une valeur approchée de \\(\\sqrt{2}\\) à 0.001 près"
questionType: "math"
targetLatex: "1.414"
validationConfig:
kind: "EXPRESSION"
responseFormat: "SINGLE"
valueCheck:
method: "APPROXIMATE"
absTolerance: 0.0005
constraints:
- type: "REQUIRE_DECIMAL_PLACES"
places: 3
11. Résolution d'équation du premier degré (4e)
uid: "math-equation-1er-degre"
text: "Résoudre l'équation \\(2x + 3 = 7\\)"
questionType: "math"
targetLatex: "x = 2"
validationConfig:
kind: "EQUATION"
responseFormat: "SINGLE"
variables: ["x"]
12. Ensemble de solutions d'une équation du second degré (2nde)
uid: "math-equation-solutions-set"
text: "Résoudre \\(x^2 - 5x + 6 = 0\\) et donner l'ensemble des solutions"
questionType: "math"
targetLatex: "\\{2, 3\\}"
validationConfig:
kind: "EXPRESSION"
responseFormat: "SET"
13. Coordonnées d'un point (3e)
uid: "math-coordonnees-tuple"
text: "Donner les coordonnées du milieu du segment [A(1;3), B(5;7)]"
questionType: "math"
targetLatex: "(3, 5)"
validationConfig:
kind: "EXPRESSION"
responseFormat: "TUPLE"
14. Notation scientifique (4e)
uid: "math-notation-scientifique"
text: "Écrire \\(0.00045\\) en notation scientifique"
questionType: "math"
targetLatex: "4.5 \\times 10^{-4}"
validationConfig:
kind: "EXPRESSION"
responseFormat: "SINGLE"
valueCheck: { method: "EXACT" }
constraints:
- type: "SCIENTIFIC_NOTATION"
15. Chiffres significatifs (2nde)
uid: "math-chiffres-significatifs"
text: "Donner \\(\\pi\\) avec 4 chiffres significatifs"
questionType: "math"
targetLatex: "3.142"
validationConfig:
kind: "EXPRESSION"
responseFormat: "SINGLE"
valueCheck:
method: "APPROXIMATE"
absTolerance: 0.0005
constraints:
- type: "REQUIRE_SIGNIFICANT_FIGURES"
figures: 4
16. Primitive d'un polynôme (Terminale)
uid: "math-primitive-polynome"
text: "Donner une primitive de \\(3x^2 + 2x\\)"
questionType: "math"
targetLatex: "x^3 + x^2"
validationConfig:
kind: "ANTIDERIVATIVE"
responseFormat: "SINGLE"
variables: ["x"]
17. Primitive trigonométrique (Terminale)
uid: "math-primitive-cosinus"
text: "Donner une primitive de \\(\\cos(x)\\)"
questionType: "math"
targetLatex: "\\sin(x)"
validationConfig:
kind: "ANTIDERIVATIVE"
responseFormat: "SINGLE"
variables: ["x"]
❓ FAQ et pièges courants
L'élève a tapé la bonne réponse mais obtient « Bonne valeur, forme incorrecte » ?
C'est le comportement attendu quand une contrainte de forme n'est pas respectée. Par exemple si vous exigez IS_FRACTION et que l'élève tape 0.5 au lieu de \frac{1}{2}.
Quelle différence entre EXACT et APPROXIMATE ?
- EXACT : les expressions doivent être mathématiquement égales (ex : (\frac{2}{4} = \frac{1}{2}), (x+x = 2x)). Utilisez-le quand une valeur exacte est attendue.
- APPROXIMATE : la comparaison se fait numériquement avec une tolérance. Utilisez-le pour les valeurs irrationnelles ((\pi), (\sqrt{2})…) ou les arrondis.
Peut-on combiner plusieurs contraintes ?
Oui, toutes les contraintes sont vérifiées. Si une seule n'est pas respectée, l'élève reçoit « Bonne valeur, forme incorrecte ». Combinez par exemple IS_FRACTION + IS_IRREDUCIBLE pour exiger une fraction simplifiée.
L'élève obtient « Résultat incertain » (AMBIGUOUS) ?
Cela signifie que le moteur de calcul n'a pas pu déterminer si la réponse est correcte. Cela peut arriver avec des expressions très complexes. Le score n'est pas affecté négativement dans ce cas.
Quelles expressions le clavier mathématique permet-il de saisir ?
Le clavier avancé (MathLive) permet de saisir :
- Fractions : (\frac{a}{b})
- Puissances : (x^n)
- Racines : (\sqrt{x}), (\sqrt[n]{x})
- Lettres grecques : (\pi), (\alpha), etc.
- Fonctions trigonométriques : (\sin), (\cos), (\tan)
- Parenthèses et opérations de base
Puis-je utiliser des images dans les questions math ?
Oui, le champ imageRef fonctionne comme pour les autres types de questions. Vous pouvez associer une image (figure géométrique, graphique…) à votre énoncé.