Enseigner l’addition et la soustraction avec LOGO

La tortue LOGO permet de voir des sommes de relatifs
mercredi 27 mai 2009
par  Alain BUSSER

Deux séances d’une heure chacune ont suffi, et l’investissement en temps a été rentabilisé lorsqu’il a fallu mettre dans le cours que soustraire -5 revient à ajouter 5 puisque tous les élèves l’avaient découvert par eux-mêmes !

Lorsque Edmund Gunter a inventé la machine ci-dessous :

règle à calcul
au format CaRMetal (enregistrer puis ouvrir en local)

il a combiné deux idées :

- L’échelle logarithmique, remontant à John Napier, qui ramène les multiplications à des additions ;
- Les translations matérialisées par le glissement d’une règle contre l’autre, qui elles-mêmes matérialisent l’addition des réels même négatifs.

C’est cette dernière idée qui est à la base des TD décrits ci-dessous.

L’idée de représenter des additions de nombres par des additions de vecteurs colinéaires est bien sûr réalisable avec un logiciel de géométrie dynamique, comme avec C.a.R., de René Grothmann où le premier exemple de géométrie est le fichier suivant :

somme de vecteurs colinéaires
à ouvrir avec CaR ou CaRMetal

Mais à l’époque, C.a.R. n’existait pas... Alors l’activité a été faite en LOGO, le langage de programmation le plus simple qui soit, avec l’avantage que les élèves ont « fabriqué » eux-mêmes l’axe gradué qui sert à repérer les sommes.

Les exemples suivants ont été faits avec le logiciel libre xlogo qui tourne en Java (langage) sur toutes machines, et possède même des fonctionnalités de géométrie dans l’espace !

LOGO (langage) a été inventé dans les années 1960 au MIT, et ses applications à la robotique l’ont doté d’une interface en forme de demi-sphère montée sur roues, qui ressemblait à une tortue, d’où la forme de tortue donnée parfois à la partie qui bouge sur l’écran. Dans les exemples ci-dessous, la tortue est représentée (par défaut) par un triangle isocèle, dont la base servira de repère de mesures.


Première séance

La première heure a été consacrée à un apprentissage des bases géométriques de LOGO.

Un papier a été distribué aux élèves, avec un résumé des principales instructions :

NotationsignificationEffet
ve vide écran Efface tout et replace la tortue au centre
lc lève crayon cesse de laisser une trace
bc baisse crayon comence à laisser une trace
fcc :n Faire couleur crayon Donne au crayon la couleur :n
av :n Avance la tortue avance de :n pixels
re :n Recule La tortue va en arrière de :n pixels
tg :n Tourne gauche La tortue tourne de :n degrés vers la gauche
repete :n Répète :n fois Boucle (entre crochets)

Puis après quelques dessins pour se familiariser avec ce langage, apparaît la première boucle pour dessiner un carré [1] :

pour carré
repete 4 [av 50 tg 90]
fin

Puis des explications sur le fait qu’on vient d’agrandir le langage LOGO en lui ajoutant une instruction qui n’y était pas : « carré », et qu’on peut désormais utiliser comme les autres. Par exemple, en entrant le code suivant :

repete 36 [carré tg 10]

(on répète 36 fois les deux opérations suivantes : dessin d’un carré puis tourner à gauche de 10 degrés), on a en quelques instants le dessin suivant :

L’étape suivante [2] est alors l’écriture d’une instruction « grad » pour « graduation » qui trace l’axe gradué :

qu’on peut d’ailleurs enregistrer dans un fichier nommé « grad.lgo » et téléchargeable ci-dessous (remplacer l’extension « bin » par « lgo » à la main ; en effet spip ne reconnaît pas cette extension).

En entrant « grad » on a l’écran suivant :


Deuxième séance

Puisque le fichier « grad » commence par un « ve » (vide écran), il suffit après avoir chargé celui-ci, d’entrer « grad av 50 » pour avoir ceci :

On lit à l’arrière de la tortue que celle-ci a avancé de 50 pixels, ce qu’on voulait. C’est maintenant qu’on arrive aux additions :

grad av 50 av 30
donne ce graphique

où on compte 8 graduations, révélant que 50+30=80, ce qui n’a rien de nouveau du moins en cinquième...

Avec « grad av 50 re 30 » on illustre la soustraction 50-30=20. Toujours rien de nouveau.

Mais on peut faire toutes sortes de soustractions comme 30-50=-20 avec

grad av 30 re 50

qui donne ce graphique :

(on voit le vestige de l’avancée de 30 pixels qui rappelle le début de la construction ; d’ailleurs avec xlogo on peut régler la vitesse de la souris).

Ensuite, on commence à faire intervenir des nombres négatifs, avec par exemple « grad av 30 av -50 » qui a le même effet que l’exemple précédent.

Autres exemples :

grad re 30 re 50
grad av -30 av -50

ont tous les deux le même effet, qu’on pourrait traduire par -30-50=(-30)+(-50)=-80 :

Enfin, le clou du spectacle, la question :

Qu'est-ci va se passer si on entre "recule de -50" ?

La plupart des élèves devinent qu’on va avoir ceci :

qui revient à dire que « Reculer de -50, c’est comme avancer de 50 » ; les autres le constatent sur la figure et trouvent ça logique. Plus tard, dans le cours, ce sera traduit par

Soustraire un nombre revient à additionner son opposé

Après, la séance se termine par des soustractions comme

  20-(-30)
 -20-(-30)
 -50-(-15)

etc.

Jusqu’à la sonnerie.


Le jour du contrôle sur ce cours les résultats ont été assez bons dans cette classe. Et pour ça il a fallu « sacrifier » deux heures, ce qui est bien peu cher...


[1Le fait que pour dessiner un triangle équilatéral, tout le monde se trompe en remplaçant 4 par 3 (ce qui est juste) et 90 par 60 (ce qui est faux) mériterait d’être analysé plus amplement...

[2sauf qu’on a eu le temps de parler de variables, en remplaçant le code précédent par

pour carré :n
repete 4 [av :n tg 90]
fin

et en entrant des choses comme « carré 30 » mais cette étape n’est pas indispensable pour la suite


Documents joints

Binary Data - 126 octets

Commentaires