Les nouvelles technologies pour l’enseignement des mathématiques
Intégration des TICE dans l’enseignement des mathématiques

MathémaTICE, première revue en ligne destinée à promouvoir les TICE à travers l’enseignement des mathématiques.

Géométrie repérée dynamique : une autre voie vers l’algébrisation ?

Dans cet article nous détaillons une possibilité d’utiliser la partie algorithmique-programmation des programmes pour construire une nouvelle voie d’algébrisation, puis nous verrons comment la démarche est tout à fait possible dans les autres classes, sans la programmation.

Article mis en ligne le 28 mai 2010
dernière modification le 29 mai 2010

par Yves Martin

Dans cet article nous détaillons une possibilité d’utiliser la partie algorithmique-programmation des programmes pour construire une nouvelle voie d’algébrisation, puis nous verrons comment la démarche est tout à fait possible dans les autres classes, sans la programmation.

Prélude - le tableur comme réification faible

Depuis plusieurs années, l’Éducation Nationale a choisi de faire entrer significativement les tableurs dans les curricula de nombreuses classes, y compris les classes faisant peu de mathématiques. Le tableur a été choisi comme outil intermédiaire entre l’arithmétique et l’algèbre. Si, comme c’est le cas dans beaucoup de classes, le projet est tout de même de poursuivre un chemin vers l’algèbre, on parle alors d’intermédiation, car le tableur permet de travailler sur des variables sans tout à fait faire de l’algèbre, voire même - selon les classes - sans en faire du tout. On peut rester dans une certaine opérationalisation du travail sur feuille de calcul, et peu progresser vers l’algèbre, en particulier si ce n’est pas dans le programme, ou au contraire, utiliser les cellules comme un travail « sur les objets ». Une cellule d’un tableur, avec son nom différent de son contenu, ayant été considéré par les concepteurs de programmes comme une première représentation acceptable de la variable algébrique.

Chez les cognitivistes, le « calcul sur les objets » [1], comme démarche de réification des concepts que l’on veut enseigner, est une méthode opérationnelle que l’on utilise dans les classes primaires par exemple pour le calcul en cycle 2 (avec le succès que l’on connait de la méthode Picbille ou plus généralement les usages de collections organisées) ou encore dans le cycle 3 pour enseigner les fraction avec le fractionnement physique de bandes unités et tout un travail sur les bandes et les écritures fractionnaires à partir de ces bandes.

Le prix à payer

Certes il y a toujours un prix à payer, au moment où l’on va abandonner les objets. Le concept va faire évaporer l’objet et même plus précisément, le réduire. Un peu un phénomène quantique, cette réduction, pas de la fonction d’onde, mais d’un objet qui servait de support à une représentation et qui, dans les deux cas mentionnés, se réduit à un point immatériel. Pour les nombres, cela survient en CE1, quand les élèves ne doivent plus penser le nombre comme représenté par le gros carton de 10 cm de la bande numérique de la classe - le nombre avait une épaisseur - mais comme un point, une abscisse, sur la droite numérique. Deux ans plus tard, on refait la même chose pour les fractions. Elles aussi avaient une épaisseur, une globalité, le quart d’une bande, c’est pas rien, et on l’a tellement montré ce quart de bande, puis vient à nouveau cette réduction quand le quart n’est plus que l’abscisse d’un point sur la droite numérique.

Pourtant il y a des méthodes où ce passage se fait en douceur et avec intelligence, mais ce n’est pas le l’objet ici.


L’idée est que le tableur comme outil intermédiaire entre l’arithmétique et l’algèbre se situe dans une logique cognitiviste qui a fait ses preuves, en réifiant les concepts sur des objets directement manipulables.

La critique théorique qui est généralement faite au tableur est en même temps la raison de son succès (en tout cas de son choix) : c’est une réification attractive - on reste souvent du côté du tableur - et donc, en termes d’objectifs mathématiques, une réification faible, on ne va pas vraiment vers l’algèbre, les cellules du tableur, dans leur manipulation, ne sont pas des variables algébriques. Sans un travail spécifique, nous restons loin de l’algèbre.

Ce que nous allons proposer dans les onglets suivants va être une réification dynamique de l’algèbre, qui reste du côté de l’algèbre tout en proposant une manipulation des objets produits par l’engagement dans l’algèbre. Nous allons le faire dans le cadre de la géométrie repérée.

GeomRepDyn

Géométrie repérée dynamique

Nous allons nous situer en géométrie repérée, avec un outil de réification pour faire de l’algèbre : la géométrie dynamique. Puisque, du point de vue des programmes, nous sommes à une charnière avec l’introduction de l’algorithmique et la pratique d’un langage de programmation, dans cet onglet, nous allons nous situer dans cette démarche là. Nous verrons comment s’en passer facilement au troisième onglet. Il nous faut donc un logiciel de géométrie dynamique qui contient un langage de script. On pense tous en coeur à TeP, mais non ça serait trop facile, ça sera un autre ...Il s’appelle CaRMetal.

Un mot sur les CaRScripts

Depuis août 2009, CaRMetal s’est doté d’un langage de scripts pour pouvoir travailler la programmation principalement dans un environnement graphique (même si la console texte existe) et surtout un environnement graphique dynamique.

Ce n’est pas sans lien avec l’évolution des programmes du lycée : puisqu’il y a de moins en moins de géométrie, mais de l’algorithmique et de la géométrie repérée, pourquoi ne pas envisager de faire se rencontrer ces deux champs du programme ? Si possible de manière intelligente, voire même ludique …

Du côté de l’élève il s’agit de proposer un environnement commun pour la géométrie et la programmation – économie de temps d’apprentissage ... même pour l’enseignant – avec un langage non pas construit uniquement pour une utilisation scolaire, avec les artifices qui vont avec (s’il y a des anciens parmi les lecteurs de MathemaTICE, ils se souviendront que certains d’entre nous ont appris le LSE !!!), mais bien un langage largement utilisé dans le monde Web 2.0 pour lequel les navigateurs rivalisent en temps d’exécution : le javascript (JS).

L’éditeur Javascript de CaRMetal intègre toutes les fonctionnalités géométriques du logiciel sous forme d’icônes, ainsi que la bibliothèque Maths du JS et les principales instructions de programmation. L’utilisation du JS est ainsi simplifiée : il n’y a pas de syntaxe à apprendre, on ne fait que modifier des lignes pré-écrites. Les lignes son numérotées (renvoi du numéro de la ligne dans les erreurs) et il y a une coloration syntaxique.

Pour l’auteur, le choix de JS relève d’un cahier des charges très précis : langage pérenne, intégrable dans un logiciel libre, utilisable en ligne, et qui plus est faiblement typé pour pouvoir ajouter les fonctionnalités géométriques de CaRMetal.

Pour les habitués de la programmation en JS, éventuellement pour les premiers usages en classe, l’utilisation peut se faire en « pur JS » avec une sortie en console texte. Cette sortie est simple d’accès et pratique pour tout ce qui peut toucher les statistiques ou l’algorithmique, en arithmétique par exemple. Compte tenu du sujet de cet article, on utilisera la sortie graphique. De toute façon, c’est là qu’est la richesse du langage puisque son intégration à CaRMetal est totalement dynamique comme on va le voir rapidement.

Un script de CaRMetal – on dira désormais un CarScript – peut s’appliquer à une figure vide ou à une figure préparée pour son exécution. Pour le programmeur un CarScript est avant tout un programme qui admet comme paramètre d’entrée une figure de CaRMetal. Pour le géomètre, un CarScript est un outil qui va finaliser une figure que la géométrie dynamique usuelle ne pourrait pas réaliser – ou pas aussi rapidement. Et selon ce que nous faisons, nous sommes parfois plus du côté du programmeur, parfois plus du côté du géomètre.

Je propose de ne pas faire de topo sur le logiciel, ce qui suit donnera un aperçu globalement limité certes mais correct pour la partie script, on se reportera à l’onglet Références pour plus d’information, en particulier technique, sur le sujet. Signalons quand même que CaRMetal est un logiciel libre, gratuit et multiplateforme.

Démarche d’investigation en algèbre

Avec les outils qu’il propose, CaRMetal autorise un nouveau regard sur la géométrie repérée, car il permet de faire – très simplement – des programmes autour de ce que nous appellerons de la géométrie repérée dynamique, GRD, c’est-à-dire de la géométrie repérée, tournée du côté de l’algèbre, tout en restant accessible à la manipulation directe. Sans aucune technicité, nous utilisons d’emblée cette spécificité dynamique de l’interaction JS-logiciel. Voyons comment sur l’exemple de la construction algébrique d’un carré, en plusieurs étapes.

Tout d’abord, commençons par un carré particulier, centré à l’origine O du repère, et de sommet A. Pour l’essentiel, il suffit donc de savoir placer un segment orthogonal à [OA] et de même longueur. Selon la classe, c’est un résultat bien connu sur l’orthogonalité, soit des droites soit des vecteurs. On peut aussi se placer en début de lycée, quand la propriété n’est pas nécessairement connue. Une démarche (attitude mathématique du socle commun) consiste alors à utiliser une lecture graphique dans un premier temps et à engager une interprétation algébrique de cette lecture. Cette interprétation algébrique peut même être un objectif d’induction du numérique vers l’algébrique, participant à se représenter le champ algébrique comme conceptualisation du champ numérique. Le script suivant peut alors se construire par étape :

Pour écrire les coordonnées du point B (ligne 5) sans connaître le résultat, on peut envisager la démarche « d’investigation algébrique » suivante,désormais possible grâce à cet outil :

Attitude d’investigation en géométrie repérée
 entrer la ligne 4 comme seul contenu du script,
 l’exécuter,
 lire les coordonnées (-1,4) du point à construire,
 et conjecturer l’interprétation algébrique de la ligne 5.
 Puis annuler le script précédent, ajouter la ligne 5, exécuter le script
 ET valider par une manipulation directe du point A.

C’est la dernière ligne de cette séquence qui donne à la démarche proposée son statut d’investigation. En effet les coordonnées numériques des points, données dans un script, ne fixent pas les points dans la figure, mais les initialisent seulement.

En faisant cette manipulation, l’élève peut déplacer A sur d’autres coordonnées entières pour, non seulement valider l’orthogonalité de manière perceptive, mais aussi pour valider le fait que sa compréhension algébrique a bien été prise en compte dans le script comme on peut le penser.

On notera que le point O ne sert pas, mais souvent les élèves placent le centre d’une figure avant de commencer. On vérifie par manipulation que le carré n’est pas véritablement de centre O mais bien implicitement de centre l’origine du repère. L’objectif suivant est alors de faire un authentique travail algébrique – éventuellement avec une fiche pour une trace dans l’environnement papier-crayon – non plus seulement pour explorer avec les scripts mais bien pour anticiper et produire les coordonnées correctes.

On aura compris - par rapport au préambule sur le tableur - que cette démarche d’un travail algébrique sur la géométrie repérée avec validation par la géométrie dynamique à travers les scripts [2] se situe clairement plus du côté de l’algèbre que le tableur. Mais elle garde aussi cette dimension de « calcul sur les objets » car une fois le script exécuté, les élèves peuvent manipuler les points qu’ils ont eux-mêmes construits. La dimension algébrique est alors acceptée comme embarquée dans ce projet de travail sur les objets. Et par cette manipulation de la figure, avec les objets produits par leurs propres scripts les élèves acquièrent aussi des connaissances algébriques.

On voit donc ici qu’un travail régulier sur ce type de scripts dans un environnement dynamique, outre qu’il est pleinement en accord avec les nouveaux programmes, s’inscrit dans une logique générale d’apprentissage qui a amené à inscrire le tableur dans de nombreux programmes, tout en restant dans une véritable démarche algébrique.

La situation n’est d’ailleurs pas simple pour les élèves. Ayant pris conscience de la non utilisation du point O dans le script précédent, on n’aboutit pas au carré algébrique en une seule étape, loin s’en faut. Parfois les élèves travaillent implicitement sur une seule coordonnée, sans même s’en apercevoir avant d’invalider leur travail par la manipulation des points de base.

Un script qui produit un carré … seulement si O est sur l’axe des abscisses


Par manipulation sur O, et en plaçant O sur des valeurs entières on peut
analyser ses erreurs et (éventuellement) avoir une aide à l’organisation des calculs …


... avant d’arriver à une version correcte

Sur un plan plus technique, on aura observé dans les scripts précédents combien l’écriture mathématique dans les CarScripts est proche de l’écriture mathématique au tableau : c’est la même , elle est seulement envoyée aux points de la figure par une expression entre guillemets – par une chaine de caractères donc.

La géométrie repérée dynamique sans scripts

Il faut comprendre (nous n’en n’avons pas encore parlé, c’est expliqué en préambule de l’onglet suivant) qu’alors on n’envoie pas une initialisation comme quand on donne une valeur numérique pour les points, mais bien un calcul littéral. Voici par exemple les coordonnées du point B dans le logiciel :

Cela signifie aussi que, dans des classes ou l’algorithmique n’est pas au programme, la même démarche, mais simplement dans l’inspecteur d’objet, est aussi une pratique de géométrie repérée dynamique, elle aussi plus proche de l’algèbre que la pratique des tableurs.

L’inspecteur d’objet, comme les autres outils, a un fonctionnement complètement a-modal, y compris dans l’écriture algébrique : chaque écriture (même partielle) qui a un sens algébrique est automatiquement interprétée et la figure actualisée, ce qui facilite grandement l’investigation.

En fait l’expérience d’enseignant est claire sur ce point, c’est la réactivité immédiate de l’inspecteur d’objet qui fait que les élèves rentrent facilement dans l’activité. Voici par exemple, rapporté dans un mail (merci pour l’autorisation), l’expérience en seconde de Jérôme Caré, collègue au Lycée Freyssinet de Saint-Brieuc, sur les équations du second degré :

et une copie d’écran de ce qu’ont fait les élèves (pas de trace des essais, c’était juste une confirmation - on a laissé le A* du à l’utilisation de deux fois le même nom - c’était leur première séance CaRMetal)

On retiendra de cet onglet l’enjeu que peut avoir, pour une entrée efficace dans l’algèbre, la manipulation d’objets, produits par les élèves, issus de leurs propres raisonnements algébriques, et les possibilités – selon les élèves, les classes et le projet d’apprentissage - d’une phase que l’on a dite « d’investigation algébrique » pour aider à l’induction vers l’algèbre.
Dans le cadre d’un travail sur la programmation, les scripts d’écriture algébrique sont une entrée intéressante car identique à l’écriture mathématique. Dans ce cas, la GRD est un outil de validation du script. Sans les scripts, par un travail directement dans l’inspecteur d’objet, la GRD est un outil, elle pratiquée pour elle-même.

Statique/Absolu

Quand la représentation du dynamique est interrogée

Avant de développer le thème de cet onglet, comme j’ai choisi de ne pas trop inonder cet article d’informations techniques sur les scripts de CaRMetal (tout est déjà sur le site de l’IREM de La Réunion, détaillé dans l’onglet « Référence ») il y a quand même un minimum à savoir sur les scripts pour poursuivre.

Formation express

Pour apprécier ce qui suit il faut au minimum savoir comment passer une variable JavaScript dans les coordonnées d’un point CaRMetal. Cela se fait par adressage indirect (ça c’est pour les programmeurs), on dira en classe par passage par contenu. En pratique une variable JavaScript k , d’une boucle par exemple, est passée par _k ,comme dans les langages actuels ou encore dans les logiciels de calcul formel.

Plus de détails en image pour les curieux

Quand on donne, par script, des valeurs numériques aux objets, ces valeurs numériques initialisent la position des objets sur la sortie graphique - la figure CaRMetal, mais ne les fixent pas.

Par exemple, pour apprendre les boucles for, on peut faire le tableau de fil suivant, sur des valeurs entières (script regroupé avec la sortie graphique)

Mais puisque tous les points sont initialisés - certes à la bonne position - on n’a fait qu’un dessin - ce qui est déjà un objectif tout à fait honorable en seconde - ce n’est pas une figure « tableau de fil » au sens où il y aurait une cohérence globale interne : tous les points sont indépendants

Faire un tableau de fils dynamique à partir par exemple de trois points A, O, B nécessite de partager les segments [OA] et [OB], de parcourir ce partage par une boucle et de construire des points associés. Il va donc falloir envoyer une variable JavaScript à CaRMetal. La syntaxe est celle indiquée plus haut, ce qui donne (script, résultat, et coordonnés d’un point obtenu par l’inspecteur d’objets dans la même figure) :

En lisant les coordonnées de A, O, B en ligne 1 du script, vous pouvez observer que [OA] est initialement vertical et [OB] horizontal. Cela signifie que l’on a déplacé le point A dans l’illustration : le tableau de fil est dynamique, au sens où il conserve une cohérence après manipulation de ses points de base A, O et B. Par ailleurs, on remarque dans les coordonnées du point P29 le passage algébrique des coordonnées de A et B et le passage par contenu des variables r1 et r2 (on préfèrera dire « par contenu » plutôt que « par valeur », pour des raisons qui n’apparaissent pas ici).

Fin du bloc dépliable

Un subtil mélange de statut

Nous poursuivons notre exploration de la dimension dynamique de la géométrie repérée. Nous quittons les possibilités d’investigation algébrique comme au premier onglet, pour nous intéresser (dans un contexte de 1°S ou TS) à la réflexion qu’elle peut induire sur les représentations de chacun dans les différents champs de la géométrie, l’algèbre, mais aussi la programmation voire même l’algorithmique : manipulant des figures produites par un script, nous sommes à la rencontre de ces champs, dont les représentations, par la manipulation directe, vont s’enrichir mutuellement.

Ce qui suit n’a pas été proposé en classe - puisque l’algorithmique n’est pas encore en 1°S et TS - mais en formation continue des enseignants pour explorer les possibles en ce domaine. L’objectif est de réinvestir le cercle trigonométrique et la question va se poser du type d’investissement : va-t-il être statique ou dynamique ? On peut penser que les lecteurs de MathemaTICE auront les idées claires sur la question, mais poursuivons quand même puisqu’à terme, il s’agit de faire des TP de lycée.

On commence - comme les programmes scolaires nous demandent de le faire - par proposer un programme aux commentaires et à l’analyse des élèves.

Clairement, ce script construit un cercle de centre O passant par A (points gras ci-dessous) et place sur ce cercle 20 points. Divers commentaires techniques sont possibles, en particulier on notera que l’on a construit le segment [OA], en lui donnant un nom dans CaRMetal, s1 ce qui permet d’utiliser s1 comme mesure pour le rayon du cercle dans la ligne 8 et d’éviter un calcul de distance. Mais ce n’est pas tellement cela qui nous intéresse ici. On peut aussi parler de la référence explicite au point O, et donc de la dépendance du cercle par rapport à ce point, ce que l’on voit ci-dessous (on a déplacé seulement le centre O).

Pendant le déplacement de O, les plus curieux peuvent se poser des questions sur le mouvement des autres points. Ils paraissent, à réduction près du cercle, se déplacer en translation. Qu’en est-il en fait ?

Ce n’était pas la question, ce n’est pas non plus au programme, mais ...

... je ne résiste pas ... quel bel exercice concret de géométrie pour remarquer - et conjecturer les éléments - que la composée d’une homothétie (le cercle change de rayon) et d’une translation (on déplace O à la souris) est une homothétie ... mais bon, c’est passé de mode ...

On notera qu’il y a quand même l’implicite dont on veut parler, alors, allons y ...

Nous allons maintenant déplacer le point A, mais avant cela, pour bien voir le mouvement des points, on peut en colorier quelques uns, ce qui donne :

Les points se déplacent à l’écran quand on manipule O ou A, tout en restant figés sur le cercle de centre O, ils ne se déplacent pas sur ce cercle. Ces points, construits géométriquement, conservent un comportement statique sur le cercle. Comme c’est amené ici, dans un article, avec des titres et des sous-titres révélateurs, cela ne surprend personne, mais l’expérience montre qu’en formation continue, dans un contexte plus global, cela interroge, non pas sur le résultat, mais sur notre propre représentation du dynamique.

En classe, on peut s’attendre à ce que ce ne soit pas une évidence. Alors un questionnement sur ce sujet peux être lancé. Les représentations vont s’exprimer, sur le rapport implicite au repère ... et même peut-être sur le rapport au repère implicite ...

La raison en est évidemment élémentaire, et on peut voir sur les coordonnées des points que les angles utilisés sont absolus, comme si, sur la figure, il y avait un repère implicite :

Mais même en prenant cela en compte, nos représentations du dynamique reste ébranlées. Elles le sont dans la rencontre entre le statique et l’absolu. En effet, jusqu’ici le statique était identifiée au dessin que la manipulation directe cassait (les tableaux de fils statiques) alors qu’ici l’absolu, s’il contient une dimension statique, s’inscrit aussi dans une logique dynamique : rien n’est cassé, tout est cohérence. Et qui plus est, dans de nombreuses situations, l’usage des angles absolus est suffisant. Voyons-en un exemple.

Un absolu pas si statique que ça

Dans la séance de formation continue citée plus haut, je parlais d’un « contexte plus global ». Ce qui précède était en fait masqué par une commande de construction, celle d’une néphroïde par enveloppe de cercles.

On se donne un cercle de diamètre [AB] et à partir d’un point M du cercle (les points du script précédent) on construit le cercle de centre M tangent à [AB]. On obtient alors une néphroïde. Si on s’arrange pour la construire à partir de deux points, le centre O du cercle et un point A qui définit ce cercle, elle est manipulable facilement. Et elle fait totalement illusion - au sens où l’on ne perçoit pas vraiment l’utilisation d’angles - car en manipulant A, même avec ces angles absolus, le cercle de centre un point donné bouge avec A puisque le diamètre [AB] bouge aussi.

Produit par ce script :

Et pourtant. Si, dans un contexte géométrique donné, on devait répondre à une contrainte dynamique spécifique, comme utiliser un cercle particulier en fonction de A - disons le 4ème cercle avant le point A dans l’illustration ci-dessous - clairement la figure n’est pas correcte, c’est-à-dire que l’algorithme ne convient pas, les angles absolus ne suffisent plus.

à gauche le 4ème cercle avant A est mis en bleu, à droite on voit que c’est le cercle de centre d’angle absolu nul dans le script

Une version scolaire de ce questionnement

Chacun aura remarqué le caractère ambigu de la relation entre ces trois approches : statique/absolu/dynamique : ce n’est pas clair, et cela ne l’est pas car cela dépend de l’usage qu’on veut faire de la figure, ou encore de l’objectif de formation - en programmation pour la réaliser- que l’on se donne. C’était un choix pour qu’en formation le questionnement n’arrive qu’après la construction effective de la figure, et non pas pendant l’écriture du script. Mais en classe, on travaillera sur une situation bien plus claire. Pour créer le questionnement, on peut choisir de proposer, comme en formation, la construction d’un figure qui portera ce questionnement, dans une deuxième phase, par une contrainte supplémentaire.

Il s’agit cette fois de faire une cardioïde par enveloppe de segments : on place sur le cercle n points avec un angle au centre constant entre deux points consécutifs et, en parcourant deux fois le cercle, on joint les points d’indice k et 2k.

Alors, bien sûr, avec script :

... c’est clair qu’en déplaçant A, la cardioïde ne va pas suivre. Et pourtant ... c’est souvent une surprise pour les élèves, et c’est elle qui fait surgir la question de l’angle absolu et fait ressortir des représentations de cette situation, soit sur les angles, soit tout simplement sur les nombres réels car après tout, utilise-t-on des angles ou des réels ici ?

Pour éclaircir cela, on peut proposer aux élèves la contrainte suivante : faire que la cardioïde construite par des segments suive le point A, plus précisément qu’elle soit de « sommet » le point A. Il n’y a pas grand chose à modifier bien entendu, mais cela peut être complexe pour les élèves car, pour faire cela, il est plus simple de se placer dans un autre contexte (que l’on précisera), où des objets sont déjà sur la figure.

On se donne donc un cercle de centre O passant par I (prendre I à la main, mais sur l’horizontale passant par O), un point M sur objet du cercle. On note ang - variable CaRMetal - l’angle IOA. De fait, on s’est donné une origine pour les angles dynamique. Penser à aller dans l’inspecteur d’objet pour donner à la mesure de ang une amplitude jusqu’à 360°. Dans le script, il suffit alors d’ajouter l’angle dynamique à l’angle absolu.

La proximité, dans le cosinus et le sinus, de la variable algébrique et de la donnée numérique peut être, en classe, l’occasion d’une discussion sur le statut de ce qui est utilisé. Là encore, on peut manipuler la variable ang à travers le point M.

On obtient bien ce qui est attendu : une animation sur M produit bien l’effet souhaité d’une rotation de la cardioïde.

Une animation sur M produit bien l’effet souhaité d’une rotation de la cardioïde en ayant M comme sommet.

Et pourtant

Malencontreusement - mais plus certainement malicieusement - un élève a fait une animation sur le point I, il vous demande - avec un vrai plaisir de déstabilisation potentielle - qu’il « ne comprend pas ce qu’il se passe, M n’est plus là où il faut, et pourtant, Monsieur, on a bien mis l’angle IOA cette fois ».

Heureusement, vous y aviez réfléchi avant. C’est encore une belle illustration que, définitivement, l’absolu des angles est toujours présent, caché mais bien présent. Mais vous pouvez éviter cela aussi en fixant I à l’intersection du cercle et de la parallèle à l’axe des abscisses (de la grille) passant par O.

Bilan de cet onglet

Dans un contexte différent de la géométrie repérée dynamique, plus délicat en terme de concepts mathématiques engagés (le cercle trigonométrique et la mesure des angles), nous commençons à dégager cet invariant que l’interaction entre la géométrie dynamique et la programmation, par la manipulation directe sur les objets produits, permet d’enrichir les représentations qu’ont les élèves de ces deux cadres de travail.

Pour le fun

Cardioïde temporelle

Un petit onglet pour le prof, et pour se faire plaisir ... et aussi pour aller plus loin sur les scripts. Dans cette partie, on continue sur la cardioïde.

On sait - en fait généralement on ne sait pas d’ailleurs - que CaRMetal autorise l’enroulement continu sur le cercle c’est-à-cire que les angles ne sont pas limités à [0, 2π]. Pour cela on utilise le curseur circulaire continu :

Le point M s’enroule sur le cercle avec son compte tours. La macro renvoie l’angle absolu et le nombre de tours.

On ajoute une possibilité de faire varier en temps réel le nombre de cordes de la cardioïde - de 60 à 120. Mais surtout, à travers un pop up, la rotation de la cardioïde pourra prendre trois aspects : standard, temporel discret, temporel continu.

La figure avant le script, est déjà construite dans un environnement temporel

Les pop-up menu et le curseur ne sont pas actifs, ce sont des données qui seront utilisées par le script suivant :

Le script construit le segment [pi pf]. L’écriture paraît complexe mais c’est seulement parce que le rayon du cercle est un peu long à écrire et qu’il est utilisé 4 fois.

sA est le rayon du cercle initial, nseg est le nombre de segments, donné par le curseur. On remarquera que la boucle va jusqu’à 120, tous les segments sont construits, même si nseg est plus petit. Leur affichage est traité dans la ligne 5, la dernière ligne de la boucle, le segment est caché si son indice est trop élevé. Ainsi les points ne sont calculés qu’une fois, seul leur affichage dépend du curseur.

La variable chx est bien sûr le choix du popup. Le rayon du cercle par défaut vaut sA. On lui ajoute une expression si chx>1 (donc si on fait un choix de cardioïde temporelle). Dans ce cas on lui ajoute le nombre de tours, c’est le sens de (chx>1)*tour. Si de plus on a fait le choix temporelle continue, il faut ajouter une variation continue du rayon : c’est l’expression (chx==3)*anrel/360.

On remarquera aussi l’économie considérable du traitement par les booléens qui évitent le recours à des conditionnels imbriqués qui seraient difficile à mettre en œuvre dans ce cas.

La cardioïde après deux tours, en mode animation …

… puis en inversant le sens de l’animation (ici à 60 segments)

Bien entendu, pendant l’animation, on peut faire sauter la cardioïde d’un mode à l’autre en changeant de choix dans le pop up et faire varier le nombre de segments.

Une dernière expérience sur cette cardioïde illustre la profondeur de l’intégration des outils entre eux. Si avant de lancer l’animation sur M, on fait faire 3 tours en arrière à M, en mode temporel et qu’on lance l’animation, celle-ci démarre bien dans l’état temporel de la cardioïde. On peut en conclure que l’animation de CaRMetal respecte la temporalité et le déterminisme enrichi induit.

Récursivité dynamique

Là encore juste pour le plaisir, un dernier script qui illustre à nouveau l’intégration profonde du JavaScript au logiciel. On va l’illustrer par un algorithme récursif dont le paramètre essentiel sera modifié pendant l’exécution récursive du script.

La courbe de Cesaro est une variante de Koch avec un angle variable

Manipulation directe sur l’angle de la courbe de Cesaro pendant l’exécution du script

Voici le script de cette figure. Il est inclus dans la figure, dans le dernier onglet, on peut directement le lancer dans la figure en ligne.

Dans la figure C est le transformé de A de centre B dans la rotation d’angle π-2rot.

Bon on aura compris que cet onglet est un peu militant, mais il ne doit pas y avoir beaucoup de logiciels qui font ces deux choses-là. En plus quand il est libre et multiplateforme, ça mérite d’être présenté, non ?

Références

La version 3.5 de CaRMetal

Cet article est construit autour de la version 3.5 de CaRMetal. CaRMetal est un logiciel libre (GNU) gratuit, multiplateforme. Son auteur, Eric Hakenholz, a profondément harmonisé le code pour la version 3.5 qui offre des améliorations significatives et quelques outils nouveaux.

Parmi les améliorations : l’intégration des scripts dans les figures : on peut mettre plusieurs script dans une figure comme vous pouvez le tester dans les premières figures de l’onglet suivant.

L’autre point fort est l’a-modalité des animations : on peut animer des points divers (sur des segments ou des cercles par exemple) tout en poursuivant la construction, ce qui offre à l’investigation des orientations nouvelles car on peut construire les figures vérifiant les conjectures pendant l’animation.

Dans l’illustration ci-dessus, le point bleu tourne autour du cercle extérieur. La construction est un exercice classique sur la recherche d’invariant (l’autre centre d’homothétie des deux cercles que le point de contact). Traditionnellement on conjecture le point invariant par l’animation du point bleu, puis on cherche une construction, et on confirme la conjecture en animant à nouveau le point avant d’entreprendre une démonstration. Ici on peut désormais faire les constructions pendant l’animation. Sur cet exemple la visualisation de l’invariant reste élémentaire car la droite des centres est fixe, mais dans d’autres situations, la visualisation de l’invariant ne peut s’obtenir qu’à travers l’animation.

Un nouvel outil est le Monkey : on peut secouer une figure pour vérifier sa résistance au mouvement. Plusieurs type d’instrumentalisation du Monkey (utilisations détournées) sont possibles en particulier en statistique mais pas seulement. Dans les ressources un premier article en parle.

Enfin les exercices ont été complètement repensés et sont désormais eux aussi dynamiques ce qui n’était pas le cas dans la version précédente. On se rendra sur la page des nouveautés (ci dessous) pour en savoir plus.

Ressources

Site de CaRMetal : Téléchargement, nombreux tutoriels en flash, diaporamas dynamiques (collège), galerie des utilisateurs, forums.

Nouveautés de la version 3.5 (avril 2010, avec un classeur d’exemple).
Dont l’utilisation de l’outil Monkey.

Un interview de Éric Hakenholz sur Framablog sur Framablog] (octobre 2009)

Parmi les tutoriaux récents de Monique Gironce (en flash) :

Une vidéo sur les nouveaux exercices de CaRMetal

Une vidéo sur les scripts, sur la base de la méthode d’Euler.

Tour d’horizon du logiciel (avec classeurs téléchargeables et en ligne)

Partie 1 - Géométrie | Classeur de géométrie en ligne
Partie 2 - Scripts | Classeurs de scripts en ligne

Remarque : les classeurs de scripts à télécharger dans l’article précédent sont légèrement différents que ceux des classeurs en ligne : en ligne on a enlevé le « prompt » pour des choix de paramètres, pour une utilisation plus fluide.

Le (gros) classeur de cet article reprend une trentaine des scripts en ligne, soit plus de la moitié.

Les CaRScripts à l’IREM de La Réunion

L’IREM de la Réunion a un atelier algorithmique avec les CaRScripts qui propose un manuel de référence de 67 pages (Alain Busser), des articles de prise en main pour l’enseignant. On trouvera aussi deux rubriques très fournies de Alain Busser :

 Narration de recherche sur les 9 TP d’algorithmique en classe de seconde.
 Une rubrique Sujets de l’épreuve pratique TS 2009 avec de nombreux scripts.

Prise en main des CarScripts (dont PDF) | Itération 1 | Itération 2 | Espace (plus technique)

Le groupe de travail http://www.reunion.iufm.fr/recherche/irem/spip.php?rubrique49 utilise les CaRScripts. Les scripts sont essentiellement dans les 4 sous-rubriques.

Utilisation plus générale de CaRMetal sur le site de l’IREM

(Nombreux articles de Alain Busser, on peut aussi avantageusement utiliser ce mot clé sur le site de l’IREM.

Scripts en ligne

Jouer avec les scripts de CaRMetal en ligne

Dans l’applet suivant il y a 15 figures et 33 scripts. On choisit une figure en cliquant sur les onglets en bas du classeur.

On peut aussi naviguer avec les flèches à droite. Pour avoir une vue d’ensemble du classeur et aller directement sur une figure, il est aussi intéressant de cliquer sur l’icone des figures, à côté des flèches.

Une fois placé dans une figure, il faut ensuite lancer un script. Pour cela, vous cliquez sur l’icône de script et vous choisissez le script (illustration ci-dessous). Penser qu’on peut déplacer les points et/ou modifier les curseurs quand il y en a pendant l’exécution du script s’il est long. Par contre éviter d’annuler un script avant qu’il ne soit fini. Quand une figure contient plusieurs scripts penser à annuler celui que vous avez exécuté avant d’en lancer un autre. Si vous avez trop joué avec et que ce n’est plus possible, vous pouvez aussi ouvrir la palette d’outils (dernière icône en bas à droite) et supprimer les premiers points qui ont été construits par le script, tout devrait être supprimé.

Parfois il y a une animation également, en général vous lancez le script puis ensuite vous démarrez l’animation

Tous les scripts proposés ici sont détaillés et expliqués dans des articles sur le site de l’IREM de La Réunion (un article sur la récursivité est en cours de rédaction) . Si vous en faites vous aussi, penser à les mettre sur le forum CarScript du site de CaRMetal ou encore de laisser un lien sur le forum « Production des utilisateurs », où l’on peut voir votre script.

Dans les liens de l’onglet précédent il y en a d’autres en particulier en statistique, ici à la fin il y a quelques scripts booléens un peu plus fun.

Un classeur de 15 figures de CaRMetal

<carmetals|doc=2257|largeur=743|hauteur=649>


Dans cet article, nous avons essayé de montrer qu’à travers des problèmes concrets - on travaille sur des objets produits par les élèves - nous pouvons proposer aux élèves des activités, sans grande technicité, qui font manipuler les outils de la géométrie analytique élémentaire et de la trigonométrie de leur programme, tout en se posant des questions de leur propre culture (quel type de manipulation directe sur les images suis-je entrain de construire ?). Ceci en revisitant, de manière originale les concepts mathématiques engagés.