Créer un exerciseur : Premières pistes !

GeoGebra est le plus souvent connu comme un logiciel de géométrie dynamique, couramment utilisé au collège. Mais, ce logiciel gratuit, disponible en ligne et en version bureau, possède bien plus de fonctionnalités et son interface comprend de nombreux paramètres souvent méconnus mais qui peuvent se révéler très utiles pour introduire de l’interactivité dans un fichier.

Le but de ce tutoriel est d’expliquer comment réaliser un exerciseur (exercice autocorrectif) : lorsque l’élève réussit une construction ou un calcul, un message apparaît, lui signifiant son succès. Cela permet de faire travailler les élèves en autonomie, en classe ou à la maison, et de créer des ressources que les élèves pourront utiliser pour réviser ou se réapproprier certaines notions. 

Il y a plusieurs moyens de réaliser un exerciseur : l’un est plutôt simple en utilisant des conditions d’affichage. L’autre, plus complexe, utilise un script (JavaScript). Je ne vais pas expliquer dans ce tutoriel comment créer certains objets (objets géométriques, textes, champs texte, nombres …) : il est donc nécessaire d’être familier avec ces différents outils de GeoGebra.

Vous pouvez travailler sur la version 5 ou la version 6 de GeoGebra : il y a quelques différences et travailler avec la version en ligne GeoGebra classique vous évitera des problèmes d’affichage qui peuvent survenir lors de la mise d’une appliquette.

Les étapes de ce tutoriel :

Créer un compte GeoGebra

Avant de présenter ces différentes méthodes, une petite précision. Un exerciseur ne sera vraiment efficace que si vous utilisez la version en ligne de GeoGebra : sur la version bureau, il n’est pas possible d’empêcher l’accès à la fenêtre « Algèbre » qui contient tous les objets créés. Même si cette fenêtre peut être fermée, elle reste très facilement accessible et son ouverture permettrait la lecture et l’affichage de tous les objets et donc de ceux que l’on veut cacher.

Il faut donc créer un compte GeoGebra (gratuit) sur le site https://www.geogebra.org/ 

Le fichier pourra être créé soit directement dans l’éditeur d’activité en ligne soit sur la version bureau de GeoGebra. Dans ce cas il faudra ensuite téléverser le fichier dans les ressources GeoGebra en ligne.

Utiliser une condition d’affichage dépendant d’un nombre

Il est assez simple de paramétrer une condition à laquelle un objet s’affiche. L’objet en
question peut-être du texte, une image, un objet géométrique ou tout autre objet construit avec GeoGebra.

Par exemple, dans l’appliquette ci-dessus, tant que le calcul est faux, le message « Ce n’est pas le résultat » est affiché. Il laissera la place au message « Très bien » lorsque le résultat sera correct.

Voici les étapes de sa création :

Commencer par créer tous les objets sans se soucier de ceux que l’on veut afficher ou pas. Ici, il y a :

  • Le texte de consigne.
  • Le champ texte qui permet de saisir la réponse.
  • Le nombre qui sert de variable et qui prend la valeur saisie dans le champ texte. Il faut donc le créer avant le champ texte.
  • Les deux textes qui s’affichent en fonction de la justesse de la réponse.

Il faut ensuite saisir les conditions d’affichage des deux textes qui valident ou pas la réponse.

  • Le texte « Réponsefausse » s’affiche si le nombre « Réponse » est différent 21.
  • Le texte « Réponsejuste » s’affiche si le nombre « Réponse » est égal à 21.

Pour cela, il faut aller dans les propriétés de ces objets et dans l’onglet « Avancé« , saisir la condition d’affichage dans le champ « Condition pour afficher l’objet » :

Il faut saisir « Réponse==21 ».

Il faut saisir « Réponse!=21 ».

Le fichier est maintenant prêt. Avant de sauvegarder, il reste à fermer la fenêtre algèbre : cela empêche les élèves de retrouver/modifier facilement les conditions d’affichage et c’est plus esthétique…

Changer la couleur d’un objet en fonction de la réponse

Il est également possible de faire varier les couleurs des textes (ou de tout autre objet doté d’une couleur modifiable) en fonction des résultats donnés.

Par exemple, dans l’appliquette ci-dessus, tant que la réponse reste égale à 0, le calcul est écrit en bleu. Si on saisit une (autre) réponse fausse, il est en rouge et il devient vert si la réponse est juste (et le message « Très bien » apparaît).

Pour cela il faut utiliser les « Couleurs dynamiques« , dans l’onglet « Avancé » des propriétés :

  • L’objet sera vert si le nombre calcul est égal à 21.
  • L’objet sera bleu si le nombre calcul est égal à 0.
  • L’objet sera rouge si le nombre calcul est différent de 21 et de 0.

Attention, le ET logique se note «  » sous GeoGebra (attention, ce n’est pas un accent circonflexe). Pour l’obtenir, on peut saisir « && » au clavier.

sur la version 5 de GeoGebra, on peut utiliser la table de symboles du logiciel. La table de symboles se trouve en bout de la ligne de saisie, en cliquant sur « α »).

Sur la version 6 de GeoGebra, on peut utiliser le clavier virtuel.

Remarque sur les couleurs

Les conditions utilisées pour l’utilisation les couleurs sont des tests logiques : ils prennent la valeur 0 ou la valeur 1.

Les couleurs, elles, sont définies par un nombre compris entre 0 et 1.

Il est donc possible d’obtenir des nuances de couleurs en multipliant les tests par un nombre compris entre 0 et 1, comme ci-contre.

Il est également possible de mélanger ces 3 couleurs pour obtenir n’importe quelle couleur souhaitée : il suffit pour cela de leur attribuer le même test.

Il est également possible de jouer sur l’opacité d’un objet.

Utiliser une condition d’affichage avec un opérateur logique

  On peut vouloir afficher un objet en fonction de plusieurs résultats. Dans ce cas ou peut utiliser les opérateurs logiques « ET » et « OU ».   Dans l’exemple ci-dessous, un message apparaît si les 3 calculs sont justes. Pour cela, il faut utiliser la condition d’affichage suivante : Attention, le ET logique se note «  » sous GeoGebra (attention, ce n’est pas un accent circonflexe). Pour l’obtenir, on peut saisir « && » au clavier. De même OU logique se note «  » sous GeoGebra. Il s’obtient en saisissant « || » (la barre verticale s’obtient avec la combinaison de touches AltGr + 6). Avec GeoGebra 6, le clavier virtuel permet d’avoir accès à tous les symboles :     Sur la version 5 de GeoGebra, on peut utiliser la table de symboles du logiciel. La table de symboles se trouve en bout de la ligne de saisie, en cliquant sur « α ».  

Utiliser une condition d’affichage avec une relation géométrique

Dans les 2 pages précédentes, j’ai expliqué comment utiliser des conditions d’affichage relatives à une ou plusieurs variables numériques.   On peut aussi vouloir afficher un objet en fonction d’une relation géométrique entre deux objets.   Dans l’exemple ci-dessous, un message apparaît si les 2 droites sont parallèles.   Pour cela, la condition d’affichage est la suivante : f et d sont les noms des deux droites. Le symbole « ∥ » est le test de parallélisme. Dans la table des symboles de GeoGebra 5, vous trouverez facilement les tests de parallélisme, de perpendicularité et d’appartenance.   Avec GeoGebra 6, vous les trouverez grâce au clavier virtuel :

Comparer deux objets géométriques

Toujours en utilisant la condition d’affichage d’un objet, il est possible de comparer deux objets géométriques déjà construits. On a alors une cible qui est cachée et un autre objet que l’on va déplacer ou déformer jusqu’à ce qu’il coïncide avec la cible.

Dans cet exemple, il y a deux points : un point A qui est caché et dont les coordonnées sont générées aléatoirement lorsque l’on clique sur le bouton « nouveau point ».

Le point B est un point libre.

Si les deux points sont confondus, le message apparaît.

La condition d’affichage  est alors l’égalité des deux points :

Utiliser un script pour valider une construction géométrique

L’utilisation de conditions d’affichage comme expliquée dans les pages précédentes fonctionne bien. Mais si l’on souhaite que la condition d’affichage soit la réussite à une construction géométrique, c’est un peu plus compliqué. Dans ce cas il est nécessaire d’utiliser un script (JavaScript).

Mais commençons par le début. Il faut tout d’abord construire la figure que les élèves vont devoir tracer. Par exemple, un triangle équilatéral de côté 3 cm. Il faut renommer « cible1 » cet objet.

Nous aurons également besoin d’un nombre nommé « test1». Le script le mettra à 1 lorsque la construction sera réussie.

Le message qui apparaîtra lorsque la construction sera réussie (« bravo » dans mon exemple) doit avoir un affichage conditionné par « test1==1» :

Il faut ensuite cacher  tous les éléments de la construction (ne pas les effacer mais décocher « Afficher l’objet »).

Il faut également mettre à 0 le nombre « test1» (pour cela taper « test1=0 » dans la barre de saisie).

Il faut ensuite aller dans les propriétés de n’importe quel objet et aller dans l’onglet « Script » puis dans l’onglet « JavaScript global » et copier et coller le script ci-dessous :

function ggbOnInit() {    

ggbApplet.debug("ggbOnInit");

ggbApplet.registerAddListener("NouvObj");

}

function NouvObj (obj) {

type=ggbApplet.getObjectType(obj);{

test1 = ggbApplet.getValue("test1");

cmd1="SetValue[test1,"+obj+"== cible1]";

if (test1 == 0) {ggbApplet.evalCommand(cmd1);};

ggbApplet.refreshViews();
}
}

Ce script compare tout nouvel objet créé à l’objet qui est nommé « cible1».

Lorsqu’il y a « correspondance » entre les deux objets alors le nombre « test1» devient égal à 1.

Attention : le script se lance à l’ouverture du fichier. Pour que le script soit actif, il faut fermer et rouvrir le fichier.

Pour en savoir plus sur ce genre de script, consulter la page dédiée du Wiki de GeoGebra.

Ce script n’est pas de moi : une première version en a été écrite par Mickael Borcherds (@mike_geogebra sur  Twitter) en 2009.

Voici le résultat.

Il ne faut pas oublier, avant de sauvegarder le fichier, de :

  • fermer la fenêtre algèbre ;
  • mettre à 0 le nombre « test1» ;
  • personnaliser la barre d’outils si on souhaite que les élèves n’utilisent que certains outils.

Il est tout à fait possible d’avoir plusieurs cibles dans un exerciseur. Il suffit de dupliquer 3 lignes du script comme ci-dessous.

Il ne faut pas oublier de créer les nombres « test2 », « test3 »…

Un exemple avec 2 cibles :

function ggbOnInit() {    

ggbApplet.debug("ggbOnInit");

ggbApplet.registerAddListener("NouvObj");

}

function NouvObj (obj) {

type=ggbApplet.getObjectType(obj);{

test1 = ggbApplet.getValue("test1");

test2 = ggbApplet.getValue("test2");

test3 = ggbApplet.getValue("test3");

cmd1="SetValue[test1,"+obj+"== cible1]";

cmd2="SetValue[test2 ,"+obj+"== cible2]";

cmd3="SetValue[test3 ,"+obj+"== cible3]";

if (test1 == 0) {ggbApplet.evalCommand(cmd1);};

if (test2 == 0) {ggbApplet.evalCommand(cmd2);};

if (test3 == 0) {ggbApplet.evalCommand(cmd3);};

ggbApplet.refreshViews();

}

}