Géométrie dynamique sur le Web*

Gilles Kuntz (Gilles.Kuntz@imag.fr)
Leibniz IMAG, Université de Grenoble, France

*Article accepté pour la conférence INET'98 (22-24/7/98 Genève)


Résumé
Le développement de la géométrie dynamique dans l'enseignement suscite la création de nombreux sites Web pédagogiques qui ne peuvent aujourd'hui bénéficier de cet outil au fil de leurs pages. Les techniques classiques d'animation de figures sur le Web sont soit trop limitées, soit trop difficiles à mettre en oeuvre. Le projet Cabri-java se propose dans un premier temps de développer une applet Java permettant de retrouver tous les avantages de la géométrie dynamique dans des figures actives. La réalisation d'une application Java complète de création et de manipulation de figures est étudiée.

 

Plan

 

Géométrie dynamique et enseignement

Aujourd'hui, le développement de la géométrie dynamique est étroitement lié à celui de la manipulation directe par ordinateur.
Mais en fait, les origines de la géométrie dynamique remontent bien avant quand plusieurs mathématiciens dont Clairault (XVIIIe) et d'autres auteurs plus récents ont développé l'idée de déplacer les éléments d'un figure dans le but d'illustrer des phénomènes (géométriques) et de prouver des théorèmes.

Géométrie dynamique et manipulation directe sont souvent associées dans les environnements informatiques proposés à l'utilisateur, enseignant ou apprenant. comme moyen de développer des activités intellectuelles basées sur leurs connaissances géométriques. En d'autres termes, l'utilisateur est placé dans un micromonde, au sens de la définition donnée par Seymour Papert dans son livre fameux : Mindstorms,Children, Computers, and Powerful Ideas [1] (Cf le développement de Logo). Au contraire de Logo, dans un micromonde bâti sur la géométrie, comme dans Cabri ou Geometer's Sketchpad, les bases mathématiques à enseigner jouent un rôle primordial. Au travers de la manipulation directe, l'étudiant peut construire ses propres constructions complexes, faisant appel pour cela à des connaissances géométriques plus ou moins avancées : il peut ainsi interagir directement sur les représentations d'objets géométriques théoriques.

Les caractéristiques-clés de tels environnements de géométrie dynamique sont :

  • une base mathématique solide de la géométrie à représenter.
  • une interface utilisateur conviviale autorisant une prise en main immédiate d'une part importante des outils.
  • un rapide retour d'interaction du système permettant à l'utilisateur de contrôler le comportement des objets qu'il a construits.

Depuis plusieurs années, de nombreux travaux [2,3, 4, 5] ont montré l'importance de l'engagement direct de l'apprenant à travers l'usage de logiciels de construction et de manipulation d'objets géométriques. Les recherches menées autour du logiciel Cabri-géomètre [6] soulignent le rôle prépondérant de l'investissement personnel de l'élève, qui, affranchi des difficultés de construction d'objets géométriques souvent difficiles à dessiner, peut analyser librement les problèmes qui lui sont posés d'une manière dynamique et active. Ce logiciel multilingue disponible sur plate-forme Macintosh ou PC, mais aussi sur calculatrices de poche [7] a aujourd'hui dépassé le million d'exemplaires vendus dans le monde et a suscité la création de nombreux groupes collaboratifs appelés "clubs cabri". Son usage en classe, mais aussi en auto-apprentissage hors du temps scolaire s'est largement développé au point de réunir des centaines d'utilisateurs lors d'universités d'été organisées autour de ce logiciel.

Cet outil de géométrie dynamique est également utilisé de manière fructueuse dans d'autres domaines où la géométrie sert de support mathématique comme l'optique, l'électronique, la mécanique, l'astronomie...

[exemple Cabri-géomètre]
L'utilisation de ce type d'outil s'avère également bien adaptée dans des contextes d'élèves en difficulté, soit au niveau scolaire (soutien personnalisé), soit au niveau médical (projet TéléCabri [8] , de télé-enseignement pour des enfants hospitalisés ).

 

Géométrie sur le Web

Dès ces débuts, le Web est apparu comme un outil indispensable pour permettre une meilleure collaboration dans un premier temps entre enseignants. Ceux-ci pouvaient ainsi échanger leurs cours, discuter sur des documents concrets des meilleurs outils d'enseignement. Des listes de diffusion ont été créées, de nombreux sites Web se sont développés de par le monde et en particulier autour de la géométrie dynamique.

D'autres expériences d'enseignement centrées autour de la création de sites Web directement par les élèves se sont développées depuis quelques années. Dans ce cadre, les élèves sont amenés à devenir acteurs de leur apprentissage, à communiquer avec d'autres classes de par le monde, à transmettre leur savoir naissant. Placés dans cette situation nouvelle pour eux, certains élèves qui subissaient un enseignement traditionnel se retrouvent pleinement dans un contexte où leur initiative personnelle est plus sollicitée. Les idées généreuses de la jeunesse d'entraide d'autres élèves en échec scolaire ou en difficulté passagère (par exemple hospitalisés) motivent souvent les enfants à donner le meilleur d'eux-mêmes pour placer des exercices commentés sur le Web, des activités ludiques d'apprentissage ou des corrigés d'examens comme par exemple sur ce site d'un collège grenoblois [6].

Comment arriver alors à regrouper les bienfaits de la géométrie dynamique et du Web ?

La première solution consiste à décrire par l'énoncé et par des copies d'écran les exercices à réaliser ensuite à travers un logiciel comme Cabri-géomètre. L'inconvénient majeur de cette méthode est une perte de temps entraînée par la mise en place des éléments géométriques de la figure avant d'être à même d'aborder réellement le problème posé. Le côté ludique de l'apprentissage par le Web est alors totalement gommé.

Une deuxième possibilité est de permettre le déchargement direct de fichiers issus du logiciel de géométrie dynamique depuis le serveur Web. Cette solution nécessite la définition d'un type MIME pour le transfert des fichiers, la configuration souvent manuelle des navigateurs ainsi que l'existence préalable sur l'ordinateur du client du logiciel Cabri-géomètre, qui devra pouvoir ainsi se lancer en même temps que le navigateur, comme une application d'aide. Si toutes ces conditions sont réunies, l'utilisateur pourra ainsi bénéficier pleinement des capacités du logiciel, mais son travail ne sera pas directement intégré dans la page Web d'où la figure aura été déchargée. Il devra alors effectuer des aller-retours entre le logiciel et le navigateur pour suivre par exemple les instructions données dans la page Web.

Ces deux méthodes ont donc toutes deux les inconvénients de conditionner l'utilisation de la géométrie dynamique au travers du Web à plusieurs préalables :

  • posséder le logiciel Cabri-géomètre, lequel n'existe pas en dehors des systèmes compatibles DOS, Windows ou MacOS.
  • avoir éventuellement configuré son navigateur pour lancer Cabri directement à partir des figures ou macros déchargées.
  • avoir une machine assez puissante pour permettre le lancement des deux logiciels en parallèle : le navigateur et le logiciel de géométrie dynamique.

En attendant une solution plus adaptée, certains sites utilisent néanmoins cette méthode comme par exemple le site abraCAdaBRI [10] hébergé sur le serveur du projet Cabri. Mais tous les webmestres de ces sites réclament d'avoir le moyen de placer des figures animées de géométrie directement dans leurs pages Web.

 

Supports classiques pour les animations

Étudions les moyens de placer des animations issues d'un logiciel de géométrie dynamique directement dans des pages d'un site Web.

Les formats d'animations les plus utilisés comme QuickTime ou AVI peuvent servir à coder des séquences animées capturées à partir d'une utilisation directe du logiciel. Mais malgré un support croissant de ces formats sur diverses plateformes, il reste des zones d'incompatibilité sur certains systèmes. Par ailleurs la taille des animations produites reste souvent trop importante pour des liaisons lentes.

Pour pallier cette difficulté une solution peut consister à produire des animations graphiques dans le format Gifs animés supportés directement par tous les navigateurs récents. De nombreux outils permettent aujourd'hui de créer de telles animations à partir d'une séquence de fichiers issus de "captures d'écran". En limitant le nombre de couleurs (souvent un codage sur 4 ou 5 bits est suffisant), la taille des fichiers animés est souvent moindre que ceux des fichiers QuickTime ou AVI correspondants. Le site officiel de Cabri montrent quelques exemples simples d'animations ainsi produites.

Ces animations souffrent toutefois d'un défaut majeur : il ne s'agit que de "films" d'une séquence animée devant lequel l'élève reste passif. Tout engagement direct disparaît et avec lui un des apports essentiels des Sciences de l'Education de ces dernières années.

Comment permettre alors de créer une réelle interactivité entre l'élève et la figure animée sur le Web ?

La première solution consiste à utiliser un des logiciels d'animation les plus connus comme Macromedia Shockwave pour créer des séquences animées basées sur un véritable scénario d'interaction; l'utilisation gratuite du plugin Shockwave permettant ensuite l'intégration de l'animation aux pages Web. C'est ce moyen qui a été utilisé dans certaines pages du site abraCAdaBRI [10],, dont une copie figure ci-après.

[Shockwave animation]

Plusieurs inconvénients majeurs de cette méthode :

  • le coût du logiciel Director produisant les animations Shockwave souvent trop cher pour des budgets scolaires.
  • le temps nécessaire pour créer une animation (l'auteur de l'animation en exemple déclare avoir eu besoin d'une journée complète pour la créer)
  • l'interactivité trop dirigée incompatible avec la nécessaire découverte des solutions par auto-apprentissage.
  • la taille-mémoire supplémentaire demandée au navigateur lors du chargement du plugin qui souvent entraîne un blocage de celui-ci sur des configurations limitées.

Une autre solution à envisager : la réalisation d'un plugin spécifique permettant de recréer l'environnement Cabri pour des figures intégrées aux pages Web. L'écriture de ce plugin en code natif présente un avantage et un inconvénient : d'une part, c'est la façon la plus efficace de transporter Cabri sur le Web, d'autre part il est nécessaire de réécrire le plugin pour chaque système existant ou à venir. Ce dernier point ajouté au problème d'installation préalable inhérent aux plugins nous a conduit a écarté cette possibilité.

 

Cabri-java

[Pythagoras]

La solution choisie finalement pour placer des figures actives sur le Web a été d'utiliser le langage objet Java. Ce choix a été guidé par plusieurs considérations :
  • le support multiplateforme de Java à travers des machines virtuelles pour chaque architecture.
  • l'intégration de plus en plus étroite du Web et de Java dans les navigateurs récents.
  • la programmation-objet bien adaptée à la réalisation d'animations d'objets géométriques structurés.

Le projet Cabri-java dans sa phase actuelle se consacre dans un premier temps à l'écriture d'une applet permettant d'animer une figure de géométrie dynamique en reprenant le plus possible l'ergonomie du logiciel Cabri lui-même. Ceci est rendu parfois difficile en raison des lacunes des premiers outils de développement Java (JDK 1.0.2). Les classes standards seules connues des navigateurs ne proposent pas de possibilité directe de changer la forme du curseur de la souris dans une applet, ni l'affichage de menus pop-up dans la zone de l'applet elle-même. Au niveau graphique, l'aspect pointillé ou gras des tracés n'est pas prévu, sauf en le programmant soi-même, ce qui ne serait pas efficace par rapport à l'appel de méthodes natives sur chaque architecture. Tous ces manques sont néanmoins en voie d'être comblés par le JDK 1.2 et la nouvelle API standard Java 2D.

Java étant choisi, il restait à déterminer par quel moyen transmettre à l'applet les nombreux paramètres permettant de définir une figure géométrique même peu complexe. Une solution pouvait être de décrire tous les objets et leurs propriétés au moyen des balises PARAM de l'applet. C'est cette solution qui a été choisie pour communiquer les données géométriques dans deux autres projets de géométrie dynamique en java [11, 12] Mais, d'une part il est vite très difficile de créer toutes ces données manuellement et d'autre part les fichiers HTML s'en serait trouvés très alourdis. Le choix effectué a été de conserver intégralement les fichiers générés par le logiciel Cabri en les plaçant sur le serveur afin que l'applet puisse les lire, une seule balise PARAM étant nécessaire pour indiquer le nom du fichier et sa position sur le serveur Web.

Cette solution présente l'avantage d'une publication aisée, mais a l'inconvénient d'exiger de posséder le logiciel Cabri, ce qui n'est pas une vraie restriction pour des webmestres développant des sites consacrés à l'utilisation de ce logiciel en classe...

[Cabri-java figure]

Comment faire pratiquement pour publier une figure active ?

  • il faut placer sur le serveur Web les fichiers binaires Java (.class) de l'applet ou une archive zip non compressée de ces binaires. (On peut aussi référencer un autre serveur qui possède les binaires de l'applet à travers le paramètre CODEBASE)
  • dans les pages Web, la balise décrivant l'applet peut être par exemple :
    <APPLET CODE="CabriJava.class" WIDTH=600 HEIGHT=400 ARCHIVE="CabriJava.zip">
    <PARAM name = "lang" value = "fr">
    <PARAM name = "file" value = "figures/College/Etoile">
    </APPLET>
    Le paramètre "lang" peut pour le moment prendre les valeurs "fr" pour les messages en français et "en" pour l'anglais.
    Le paramètre "file" indique le chemin (ici relatif) de la figure sur le serveur.
  • d'autres paramètres de décoration ont été ajoutés à l'instar des balises de fond de page Web :
    <PARAM name = "background" value = "images/fond.gif">
    <PARAM name = "bgcolor" value = "#F0F0A0">
    <PARAM name = "border" value = "0">
 

Déjà dans sa version préliminaire actuelle, l'applet CabriJava permet de placer dans des pages Web des figures actives dans lesquels l'utilisateur peut à son gré déplacer les objets géométriques tout en conservant les propriétés topologiques définies à leur création. Une page de démonstration disponible sur le serveur du projet Cabri [13] permet de mieux tester les possibilités.

Même si toutes les possibiltés du logiciel Cabri ne sont pas encore transcrites en Java (lieux de points, coniques...), une première utilisation pédagogique a déjà été placée sur le Serveur Mathématique de La Réunion [14]

Au stade actuel, Cabri-java souffre des lenteurs des machines virtuelles proposées avec les navigateurs, mais une nouvelle génération de VM (virtual machines) mettant en oeuvre la technologie de compilation JIT(Just-In-Time) arrive, permettant d'obtenir un retour d'interaction tout à fait suffisant lors du déplacement d'objets.

 

Prolongements

[bicycle]

En parallèle avec le travail consistant à compléter l'applet CabriJava pour y intégrer l'essentiel des possibilités offertes par le logiciel lui-même, le projet se développe dans deux voies :

  • implanter des aspects animation sur action ou a priori : Cabri permet déjà d'animer les figures sur action de l'utilisateur en utilisant l'outil "ressort d'animation" comme dans la figure ci-contre. Mais, il semble aussi utile de pouvoir animer des figures sur le Web dès leur affichage en l'absence d'intervention de l'utilisateur. Afin de spécifier les déplacements à effectuer, un paramètre supplémentaire de l'applet pourra par exemple transmettre des messages aux objets nommés de la figure par l'intermédiaire d'un langage de script déjà défini dans le cadre du projet Cabri-script de communication entre figures Cabri.
  • concevoir et réaliser une application Java de construction et de manipulation de figures Cabri : l'équivalent d'un Cabri multi-plateforme. Même si ce programme n'aura jamais la fluidité des applications Cabri natives, il sera très apprécié pour permettre de créer des figures utilisables ensuite par l'applet CabriJava. Un autre intérêt d'une telle application sera de faire mieux connaître la géométrie dynamique en permettant une diffusion plus large de son approche et son utilisation dans de nombreuses figures actives au fil de pages Web. Pour développer une telle application présentant une même interface utilisateur sur toutes les plateformes, il est envisagé d'utiliser les Java Foundations Classes définies par SUN [14]

 

Bibliographie

  1. Papert S "Mindstorms,Children, Computers, and Powerful Ideas" 1980 New-York
  2. Schneiderman B "Direct Manipulation: a Step Beyond Programming Languages", IEEE Computer (16)8 57-69 1983
  3. Laborde JM "Des connaissances abstraites aux réalités artificielles, le concept de micromonde Cabri" dans Environnements Interactifs d'Apprentissage avec Ordinateurs, pp 29-41, Eyrolles Paris 1996
  4. Laborde JM & Strasser R, "Cabri-Géomètre : A microworld of geometry for guided discovery learning", Zentrablatt für Didactik der Mathematik 5 p. 171-177, 1990
  5. Schumann H "The design of microworlds in geometry based on a two-dimensoinal graphics system devised for second education", INT. J. MATH. EDUC. SCI. TECHNOL., 1993, VOL. 24, N°2, 231-250
  6. Site officiel du projet Cabri
    http://www-cabri.imag.fr/index.html
  7. Site Cabri chez Texas Instruments
    http://www.ti.com/calc/docs/cabri.htm
  8. Site du projet TeleCabri
    http://www-cabri.imag.fr/TeleCabri/
  9. Desigaux M. Collège Jules Flandrin
    http://www-cabri.imag.fr/TeleCabri/PassionRecherche/
  10. Martin Y. site abraCAdaBRI
    http://www-cabri.imag.fr/abracadabri/
  11. Jackiw N. site JavaSketchpad
    http://forum.swarthmore.edu/dynamic/java_gsp/
  12. Joyce D. site Geometry applet
    http://aleph0.clarku.edu/~djoyce/java/Geometry/Geometry.html
  13. Kuntz G. projet Cabri-java 1997
    http://www-cabri.imag.fr/cabrijava/
  14. Hakenholz E. Première expérimentation de Cabri-java 1998
    http://www.ac-reunion.fr/pedagogie/covincep/icosaweb/GeomJava/activite/Quatre/Docs/Pytha/Pytha.htm
  15. Sun Microsystems Java Foundations Classes
    http://java.sun.com/products/jfc/