Présentation d’un outil qui permet au professeur de créer très facilement tout type d’exercices de calcul, simplement en utilisant une syntaxe appropriée.
A mon entrée à Sésamath, je me suis lancé dans l’écriture de quelques exercices Mathenpoche. Au fil des exercices, qui m’ont permis de renouer après bien des années avec la programmation, j’ai commencé à me sentir limité par la librairie de fonctions utilisée dans Mathenpoche, notamment en ce qui concernait l’affichage d’expressions.
J’ai alors commencé à développer une librairie pour afficher et écrire à la volée des expressions mathématiques, avec le soucis dès le départ de pouvoir manipuler et interagir avec ces expressions. Cette libraire servirait ensuite au développement d’exercices ou d’autres outils.
Après beaucoup de temps et plusieurs mises en hibernation du projet, je peux enfin montrer quelque chose d’exploitable.
La base : une librairie pour l’écriture d’expressions mathématiques
Les expressions peuvent s’écrire à la volée. Voici un exemple qui donne une idée de ce que l’on peut écrire :
J’avais envie que les élèves comprennent mieux la structure algébrique d’une expression, j’ai donc fait en sorte que cette structure se dévoile à mesure que l’on déplace le curseur de la souris dans l’expression.
A tout cela, je voulais ajouter une touche plus dynamique, et on peut donc déplacer les termes, facteurs, membres d’une expression. J’espère que cela permettra aux élèves de bien voir ce qui peut-être déplacé ou non dans une expression.
Une première utilisation : la création d’exercices de calcul
A partir de cette librairie, j’ai développé un outil généraliste pour la création de tout type d’exercice de calcul. Le but était de pouvoir remplacer tous les exercices de calcul (calcul numérique, littéral, décompositions, simplifications, résolutions d’équations,...) de mathenpoche sans avoir à coder séparément chacun des exercices.
L’outil se compose de deux parties : l’éditeur d’exercices et l’exécution par l’élève de l’exercice.
L’éditeur
Création d’un exercice
L’éditeur permet de créer un exercice en entrant :
- un descriptif.
- un énoncé.
- l’expression initiale.
- le type de l’exercice : calcul libre, calcul en suivant les règles de priorité, équation.
- si nécessaire, le format attendu pour la réponse.
- le mode de vérification : aucune vérification, à chaque ligne, ou seulement pour l’expression finale (minimale).
- les variables avec leur valeur (qui peuvent être n’importe quelle expression).
La syntaxe des expressions est naturelle. On utilise « : » pour la division, « / » pour une fraction, « r » pour une racine« , et »^" pour élever à la puissance.
La syntaxe permet la reconnaissance de modèles d’expression et l’utilisation de nombres aléatoires :
- $e désigne un entier.
- $d un nombre décimal.
- $f une fraction numérique.
- $r une racine.
Pour la génération de nombres aléatoires, on ajoute certains paramètres :
- $e[2] génère un entier positif à 2 chiffres.
- $e[-2 ;3] génère un entier relatif compris entre -2 et 3 (inclus).
- $e{2 ;5 ;9} génère un entier dont les valeurs possibles sont 2, 5 et 9.
- $e[-2 ;3]{0 ;2} génère un entier relatif compris entre -2 et 3, 0 et 2 exclus.
- $d{3 ;2} génère un nombre décimal positif avec 3 chiffres avant la virgule et 2 chiffres après.
- $d{-3 ;2} génère un nombre décimal positif ou négatif avec 3 chiffres avant la virgule et 2 chiffres après.
On peut ajouter un chiffre après la lettre pour que le même nombre généré aléatoirement puisse être utilisé plusieurs fois dans une même expression.
Un exemple tiré d’un exercice ou l’on doit simplifier une expression composée de puissances de 10 :
Cette expression génère une fraction contenant 3 puissances de 10 avec des coefficients positifs tous différents et tels que l’expression simplifiée soit une puissance de 10 à exposant positif.
Si l’on étudie les exercices déjà créés, on pourra voir dans certaines expressions des macros qui permettent d’ajouter certaines fonctionnalités, mais cela ne sera pas détaillé ici.
Les boutons
Les différents boutons permettent de charger, enregistrer, tester un exercice :
– nouveau : créer un nouvel exercice.
– tester : lancer l’exercice.
– charger : charger un exercice à partir d’un fichier sur le disque dur.
– sauvegarder : enregistrer l’exercice dans le disque dur.
– charger BD : charger un exercice à partir de la base de données du serveur.
– enregistrer BD : enregistrer l’exercice dans la base de données (désactivé pour ne pas écraser des exercices déjà créés).
Quand on clique sur Tester, un nouvel onglet s’ouvre pour l’exécution de l’exercice, avec un petit personnage qui donne des indications à l’élève.
Ceux qui voudraient compléter la base de données avec d’autres exercices sont les bienvenus. Dans ce cas, il faudrait enregistrer l’exercice dans un fichier et me l’envoyer par mail à l’adresse david.lejolly@sesamath.net , pour que je puisse ensuite l’entrer dans la base de données.
Accès à l’outil
Pour l’instant, l’outil est disponible à l’adresse http://algebria.sesamath.net/.
Par la suite, je vais interfacer cet outil avec labomep et j3p pour pouvoir créer des séries d’exercices variés.
Sur le plan technique
Si l’outil se pésente pour l’instant sous la forme d’un fichier flash, il a été écrit avec le langage haxe, un langage multi-plateforme qui peut, à partir du même code source, produire un fichier flash, du php ou du javascript. Dans le cadre d’une application web, ce même langage peut donc être utilisé pour écrire à la fois la partie serveur et la partie client.
Perspectives
Pour la suite, je voudrais ajouter certains effets graphiques à la librairie pour rendre son utilisation plus attrayante et pour pouvoir ensuite mettre en valeur plus facilement certaines transformations d’écriture dans les expressions. Il me reste également à ajouter à l’outil de calcul la résolution d’un système de deux équations.
Enfin, grâce aux possibilités fournies par le langage Haxe, j’essaierai de traduire tout cela en Javascript pour que cela puisse fonctionner dans le navigateur sans être obligé de passer par le plugin flash.
Vidéos
Pour avoir une idée plus précise des possibilités de l’outil j’ai mis en ligne quelques vidéos :
– manipulation des expressions
– Utilisation de l’éditeur
– calcul en suivant les priorités
– calcul d’une expression littérale par substitution
– Résolution d’une équation