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.

Pensée informatique et géométrie
Article mis en ligne le 15 mai 2018
dernière modification le 5 octobre 2018

par Alain Busser, Patrice Debrabant, Sophie Gonifei

Dans cet article, on va s’intéresser à la possibilité de développer la géométrie par la programmation et réciproquement.
Cette possibilité de symbiose s’appuie sur les liens qui existent entre les deux domaines [1]. Certains de ces liens ont été mis en évidence dans la tortue Logo. Ils apparaissent plus clairement dans les logiciels de géométrie dynamique, qui donnent accès à un environnement de géométrie euclidienne pourvu d’instruments alternatifs [2] et de la possibilité de créer des instruments personnalisés.
Il est ainsi possible de faire de la géométrie autrement et non pas de faire une autre géométrie, qui serait détachée des géométries euclidienne et non-euclidiennes (et donc un peu anecdotique).
En retour, la programmation se trouve ancrée en géométrie, et « concrétisée ».

Pour illustrer l’approche que l’on souhaite développer, on présentera des idées d’activités originales sur un thème classique : rectangle et spirale d’or.

Cet article est associé à un projet soumis à la CARDIE de l’académie de Bordeaux (cycle 3, 4 et lycée) pour l’année 2018/2019. Ce projet concerne la création d’un parcours d’apprentissage de la programmation dans un environnement de géométrie dynamique. Les lecteurs qui souhaiteraient nous accompagner dans ce projet sont invités à nous contacter.

Article placé sous licence CC-by-SA : http://creativecommons.org/licenses/by-sa/3.0/fr/legalcode

I) Introduction

Avec l’arrivée fracassante de Scratch aux cycles 3 et 4, on a désormais une trilogie bien établie des TICE : tableur, géométrie dynamique et programmation.
Pour la programmation, Scratch est remplacé par Python au lycée.

En ce qui concerne la mise en œuvre, selon les recommandations des programmes officiels en mathématiques, ces différents outils TICE ne doivent pas être étudiés pour eux-mêmes, mais plutôt mobilisés de façon naturelle dans le cadre d’une notion ou d’un besoin. L’objectif n’est pas de faire des « spécialistes » [3].

Pour les logiciels, on est tenté de dire que « c’est plié » : le choix est stable tout au long du cursus de l’élève, à l’exception, importante, de la transition de Scratch à Python lors du passage au lycée.
Cela étant, la transition ne va pas de soi. En effet :

  • on ne retrouve pas en Python le « mode de programmation » de Scratch, qui est très particulier [4] ;
  • on perd, avec Python, la dimension affirmée de « pédagogie créative » [5] de Scratch.

De plus, aux cycles 2 et 3, avec Scratch, les élèves pratiquent la programmation dans un cadre géométrique interactif. Au lycée, on passe soudain à une programmation qui n’a plus de lien (natif) avec un cadre géométrique interactif. En pratique, Python est souvent utilisé comme une super-calculatrice [6].
La divergence entre les deux logiciels est didactique et a aussi une dimension affective [7] : les élèves ne perçoivent pas bien les articulations entre les deux logiciels et sont souvent déçus de ne pas pouvoir exploiter certaines compétences qu’ils ont acquises avec Scratch [8].

On le répète régulièrement, Scratch n’est pas un logiciel de géométrie dynamique et ne peut pas remplacer un logiciel de géométrie dynamique. Cette réalité est bien comprise par les élèves.
Pour autant, Scratch est loin d’être un simple logiciel de programmation, et Scratch a beaucoup de caractéristiques communes avec un logiciel de géométrie dynamique. On peut même dire que la programmation avec Scratch s’apparente davantage à la programmation dans un espace de géométrie dynamique qu’à la programmation dans un langage classique comme Python [9].

Ainsi, on a par exemple la possibilité avec Scratch de construire un script très simple qui parcourt (trace) un carré :

Comment « comprendre », autrement dit quelle représentation peut-on se faire de ce script ?
C’est le script d’un algorithme pour construire un carré. Et cet algorithme a une existence propre, indépendamment de Scratch ou d’un logiciel particulier de pilotage d’un drone.
Cet algorithme est comparable à un algorithme de construction classique [10], avec des outils traditionnels ou des outils virtuels en géométrie dynamique. Et il a lieu d’être dans le même contexte.

Moyennant deux points libres A et B, le script suivant crée un carré dynamique en A et B.

  1. Fixer la tortue en A
  2. Viser B
  3. répéter 4 fois {
  4.    Avancer de AB
  5.    Tourner à gauche de 90°
  6.    }

Télécharger

Ce script peut être programmé avec CaRMetal et DGPad [11].

version du script avec CaRMetal
version du script avec DGPad

C’est exactement le même carré [12] que celui que l’on pourrait construire avec les instruments virtuels.

On pourrait obtenir ce carré par l’algorithme (ou sa traduction par un script) traditionnel (qu’il est visiblement plus facile de mettre en œuvre que de programmer...) :

Construire le segment [AB]
Construire la perpendiculaire d1 à [AB] passant par B
Construire le cercle c1 de centre B et de rayon AB
Construire le (bon) point d'intersection C du cercle c1 et de la droite d1
Construire la perpendiculaire d2 à [AB] passant par A
Construire le cercle c2 de centre A et de rayon AB
Construire le (bon) point d'intersection D du cercle c2 et de la droite d2
Construire le segment [BC]
Construire le segment [CD]
Construire le segment [DA]

Quand on replace le script Scratch dans cette perspective, on s’en fait une représentation plus juste et on peut construire des compétences algorithmiques qui non seulement viennent enrichir la géométrie, mais également s’en nourrissent : il y a une correspondance qui se tisse entre les objets géométriques et les scripts.

II) La pensée informatique

La notion (et le terme) de « pensée informatique » a été introduite aux Etats-Unis en 2006 par Jeanette Wing, une chercheuse en informatique. Elle regroupe un ensemble d’attitudes, de connaissances et de savoir-faire généraux qui sont mobilisés de façon significative dans le domaine de la programmation par les développeurs. [13]
Cette pensée informatique comprend la description algorithmique des objets, la décomposition de problèmes en sous-problèmes, un certain type d’abstraction, etc. Elle est mobilisée lors des activités de type expérimental et se construit sur un dialogue (ou une synthèse) entre l’expérimental, l’intuitif et le théorique. [14]
On peut favoriser le déploiement naturel de cette pensée en utilisant des scripts en français, dans un langage de script bien structuré, et qui se rapproche de la langue naturelle. [15]
La pensée informatique peut ainsi éclairer la géométrie tout en se forgeant à l’aide de la géométrie.
Il est par ailleurs important de noter que cette façon différente de faire de la géométrie peut redonner confiance à certains élèves dont la motricité est imparfaite (certains de ces élèves sont les plus avancés sur le plan conceptuel).

III) Le projet

En nous appuyant sur ces observations, il nous a semblé utile de développer la pensée informatique en géométrie, d’en préciser les articulations, et de reconnaître officiellement un de ses vecteurs principaux, à savoir la programmation dans un espace de géométrie dynamique. Celle-ci serait initiée au collège et perdurerait au lycée, en particulier sous forme d’activités de pédagogie créative.
Les activités qui s’appuient sur la programmation en géométrie dynamique sont intéressantes et il serait (est) dommage de s’en priver en passant à Python, d’autant qu’elles permettraient de renforcer la transition de Scratch à Python.
Dans cette perspective, il sera essentiel de prévoir des dispositifs permettant aux enseignants de s’approprier les outils en vue d’une utilisation sereine en classe. Le projet n’est pas destiné exclusivement à des spécialistes de la programmation. Les enseignants qui souhaitent participer au projet ne sont pas sensés avoir des compétences spécifiques au départ, mais plutôt les construire au fur et à mesure.

IV) Les outils [16]

*POO : Programmation Orientée Objet.
L’initiation à la programmation fonctionnelle est seulement envisagée. Cet objectif est peut-être trop ambitieux. Très peu de documents pertinents semblent exister dans ce domaine (et ils seraient indispensables).

V) Présentation générale des activités

Dans le cadre de ce projet, on fera en sorte de traiter des thèmes intéressants en eux-mêmes d’un point de vue mathématique (ou informatique).
Le parti pris est de proposer des activités essentiellement centrées sur les mathématiques plutôt que des activités interdisciplinaires de type EPI, qui seront plutôt complémentaires du projet.

De plus, les thèmes pourront aussi être choisis pour leur richesse pédagogique potentielle : thèmes nécessitant la mise en œuvre de différents points de vue, pouvant amener à l’utilisation (justifiée) de différents logiciels, la règle d’or étant d’utiliser le logiciel le plus adapté à une approche donnée.
L’idée est de construire des activités « modulables », construites avec différents paliers de difficulté en permettant aux enseignants de mettre en œuvre de la différenciation.
Pour toutes les activités proposées, un dispositif doit être prévu pour que la syntaxe soit utilisée sans effort (l’objectif n’est pas d’apprendre une syntaxe particulière, mais de savoir la mobiliser [17]).
Ces activités ne sont pas finalisées et peuvent donner lieu, c’est notre souhait, à des séances effectives créées par le lecteur.

VI) Activité(s) autour du rectangle d’or

Cycle 3

Activité 1 : découverte du rectangle d’or

Phase 1 : Histoire de l’art

Voici deux œuvres très célèbres de l’histoire de l’art :

* le Parthénon à Athènes (monument) :

* la naissance de Vénus par Bottticelli (tableau) :

Question : qu’est-ce que ces deux œuvres ont en commun ?...

Réponse : la forme du rectangle.

Phase 2 : sondages

On présente différents rectangles (dont un rectangle d’or) aux élèves et on leur demande celui qu’ils trouvent le plus beau (dont les proportions sont les plus harmonieuses).
(On espère qu’ils vont choisir le rectangle d’or sinon l’effet est un peu raté…)

Résultats dans une classe d’esthètes

Ensuite, on présente une nouvelle série composée de rectangles d’or de tailles différentes.

(Tous les élèves choisissent la case « Tous aussi beaux ». Sinon on peut faire quelques considérations psychologiques sur les illusions d’optique...)

Conclusion : tous ces rectangles sont des rectangles d’or. Ils ont la même forme.


Activité 2 : notion de rectangle semblable et d’inclinaison

Quand deux rectangles ont la même forme, on dit qu’ils sont semblables.
Comment vérifier, autrement que par la vue, qui peut être trompeuse, que les triangles précédents sont semblables ?

Débat en classe pour arriver à la synthèse suivante :

Une idée serait de zoomer sur un rectangle, puis de le déplacer pour voir si on peut le faire coïncider avec un autre rectangle.

Remarque : avec un logiciel de retouche d’images, il est essentiel de contraindre le respect des proportions (autrement dit de la forme) lors du redimensionnement (en appuyant sur la touche Maj).
On constate que deux rectangles sont semblables s’ils sont dans cette situation avant le redimensionnement :

Une autre idée consiste à trouver une grandeur numérique du rectangle qui correspond à sa forme.
On peut prendre le quotient $\dfrac{Longueur}{largeur}$ . Ce quotient sera égal pour des triangles qui ont la même forme.
Pour tous les rectangles d’or, on obtient un quotient environ égal à 1,618034

fin de la synthèse et teaser de l’activité suivante :

Mais comment est-on arrivé à un tel nombre 1,618034 ?...


Activité 3 : Origine du rectangle d’or. Reconnaître un rectangle d’or à l’aide de deux exemplaires accolés.

Activité « magistrale » [18]

Selon le mathématicien grec Euclide, un rectangle de largueur a et de longueur b est un rectangle d’or s’il a la même forme qu’un rectangle de largueur b et de longueur a+b.

Avec deux petits rectangles de dimensions a et b , on peut délimiter les limites d’un grand de dimensions b et (a+b).

Par conséquent, si on dispose de deux triangles identiques, on a un test pour déterminer s’il s’agit d’un rectangle d’or (coïncidence des diagonales). L’inclinaison de la diagonale caractérise la forme du rectangle.

Quand un rectangle est un rectangle d’or, le quotient $\dfrac{Longueur}{largeur}$ est égal à un même nombre (voir activité 2), et ce nombre est appelé le nombre d’or, noté φ [19] (la lettre grecque phi, en hommage au sculpteur grec Phidias).


Activité 4 : déterminer si certains rectangles sont des rectangles d’or

Ces rectangles (tableau, monument, carte de crédit…) sont fournis sous forme d’images en miniature.


Activité 5 : découverte du dynamisme dans GeoGebra, CaRMetal et DGPad

Les fichiers (créés par les concepteurs de l’activité) sont fournis par le professeur.
Dans ces fichiers, on a deux rectangles identiques et certains éléments sont dynamiques.

fichier GeoGebra
fichier CaRMetal
fichier DGPad

Les élèves doivent montrer par deux arguments différents que ces rectangles sont (ou pas) des rectangles d’or.

Les élèves sont répartis en 3 groupes. Après une phase de découverte, un élève de chaque groupe vient présenter les manipulations avec le logiciel qu’il a expérimenté.

avec GeoGebra

Remarque : on représente les points libres par un disque rouge et les points semi-libres par un cercle rouge.


Activité 6 : Construction d’un rectangle d’or (approximation) avec CaRMetal et GeoGebra

Construction fondamentale avec les outils virtuels : segment de longueur donnée, perpendiculaire, cercle de rayon donné.

Le point Geek : approche modale avec GeoGebra. Approche amodale avec CaRMetal et DGPad. [20]
Outils préfixés avec GeoGebra et CaRMetal. Outils infixés avec DGPad. [21]

1) Construire un rectangle d’or de dimensions fixes, comme ceux de l’activité 5 ( φ en valeur approchée ).

2) Construire un rectangle d’or de dimensions variables, avec deux points libres.



Activité 8 : Construction d’un véritable rectangle d’or avec CaRMetal et GeoGebra

Les élèves suivent un protocole de construction.

On construit un carré ABCD, puis le point M, milieu de [AB].
On trace le cercle de centre M et de rayon [MC]. Il coupe [AB) au point E. Il ne reste plus qu’à construire le rectangle AEFD qui est un (véritable) rectangle d’or.

Remarque : la justification de cette construction pourra être faite au cycle 4 à l’aide de la propriété de Pythagore (valeur exacte de φ).


Activité 9 : Construction d’un rectangle d’or (approximation) dynamique en mode tortue

1) Script en pseudo-code

Moyennant deux points libres A et B, le script suivant crée un rectangle d’or dynamique en A et B.

  1. Fixer la tortue en A
  2. Viser B
  3. répéter 2 fois {
  4.    Avancer de AB
  5.    Tourner à gauche de 90°
  6.    Avancer de AB × 1.62
  7.    Tourner à gauche de 90°
  8.    }

Télécharger

2) Construction avec CaRMetal

3) Construction avec DGPad

4) Version Sofus (non dynamique)

Sofus permet de décrire plus concisément que ses concurrents, l’algorithme de tracé d’un rectangle d’Or, avec une variable L qui, du fait même qu’elle est variable, contiendra parfois la longueur et parfois la largeur du rectangle : La distance à parcourir par la tortue sera égale, tantôt à la largeur, tantôt à la longueur du rectangle. C’est pour cela qu’on l’appelle une variable, en effet elle varie selon les moments.

  • Pour passer de la largeur à la longueur, on multiplie L par φ ;
  • Pour revenir à la largeur, on divise L par φ :

5) Tracé avec Python (version non dynamique) 


VII) Activité(s) autour de la spirale d’or

Introduction : distinguer une spirale (d’or) dans une pomme de pin, un tournesol...


Cycle 3

Activité 10 : Construction d’une « spirale carré » (découverte du concept de variable)

L’objectif de l’activité est de construire cette spirale...

… et surtout le concept de variable.

On laissera aux élèves le temps nécessaire pour prendre conscience de la nécessité d’utiliser une variable (ceci ne doit pas être annoncé dans le titre de l’activité).


Activité 11 : Construction de la spirale de Fibonacci par la méthode du puzzle

1) Activité débranchée : à partir de carrés, tracer des quarts de
cercle et reconstituer la spirale.

2) Poursuivre la construction un cran au delà.

3) Calculer le quotient $\dfrac{Longueur}{largeur}$ pour les différents rectangles en commençant par le rectangle de Longueur 2 et de largeur 1 au cœur de la spirale :

(Exemple pour ce rectangle n°1 (2 × 1) : quotient = 2:1 = 2)

4) Que peut-on observer d’intéressant sur les quotients précédents ?

5) Quelles sont les dimension et quel est le quotient pour le rectangle n°15 ? (Nota Bene : on ne demande pas de tracer ce rectangle).


Cycle 4

Activité 12 : Construire la spirale de Fibonacci avec Scratch (mode tortue)

1) En utilisant une instruction de type Avancer d’un quart de cercle de rayon L, écrire un algorithme en pseudo-code qui permet de construire une spirale de Fibonacci (non dynamique) comme celle présentée dans l’activité 10.

L ← 1
ancienL ← 0
répéter 7 fois {
  Avancer d'un quart de cercle de longueur L
  Mettre à jour L et ancienL
  }

L’objectif est maintenant de programmer entièrement cet algorithme avec Scratch.
Pour Avancer d’un quart de cercle de longueur L et Mettre à jour L et ancienL, on créera un bloc personnalisé.

1) Construire un bloc personnalisé qui avance d’un cercle de rayon R.

2) Construire un bloc personnalisé qui avance d’un quart de cercle de rayon R.

3) Construire un bloc personnalisé qui met à jour les variables L et ancienL.

4) Construire la spirale de Fibonacci



Activité 14 : Construire la spirale de Fibonacci avec Sofus et Python (module tortue)

Voici la version Python

Sofus possède des fractions, ce qui permet de calculer les nombres de Fibonacci plus rapidement, à l’aide d’un programme de calcul portant sur des fractions dont seuls les dénominateurs sont intéressants :

La boucle extérieure porte sur le nombre de quarts de cercle ; il y en a donc 8 ici. La boucle intérieure porte sur le tracé des quarts de cercle, ici des approximations polygonales. Pour ne pas trop ralentir la tortue on a choisi ici d’approcher les quarts de cercle par des pentadécagones ouverts.


Activité 15 : calcul exact de φ

(>=4e) Construction d’un véritable rectangle d’or avec CaRMetal et GeoGebra (rappel, voir activité 8) et calcul exact de φ =$\dfrac{1+\sqrt{5}}{2}$


Activité 16 : Construction de la spirale d’or par macro avec CaRMetal

Dans la spirale d’or parfaite, chaque quart de cercle est exactement φ fois plus grand que le précédent.
Pour construire la spirale d’or de l’extérieur vers l’intérieur, on peut partir d’un rectangle d’or, construire un quart de cercle, et recommencer dans un rectangle d’or φ fois plus petit tourné de 90° vers la droite.
Ceci peut être fait en utilisant une macro.
Avec CaRMetal, on a la possibilité de combiner efficacement macro et programmation en gardant le meilleur de l’un et de l’autre (l’atout de la macro est la facilité de la construction via l’interface, l’atout de la programmation est la gestion des structures répétitives).

On construit une macro avec deux points initiaux ( en rouge) et trois finaux (en vert).
La spirale sera dynamique par rapport à deux points de départ (les deux premiers points auquels on appliquera la macro).

La macro peut s’appliquer à deux points quelconques. On l’applique successivement (« à la main »).





Lycée

Activité 17 : Construction de la spirale d’or par macro et programmation avec CaRMetal

On utilise une structure itérative combinée à l’application de la macro.


Activité 18 : Construction de la spirale d’or en mode tortue en utilisant la courbure avec CaRMetal et DGPad

En fait la spirale d’or est très facile à construire dès lors que l’on adopte la géométrie de la tortue : on construit un quart de cercle, puis (dans la foulée) un quart de cercle de rayon de courbure φ fois plus grand ou plus petit, etc.

r ← 1
répéter 9 fois {
  Avancer d'un quart de cercle de longueur r
  r ← r × φ
  }
Version CaRMetal
Version DGPad

Activité 19 : Version Sofus

Puisque, dans l’activité précédente, on multipliait systématiquement le rayon du quart de cercle (ou ce qui revient au même la distance parcourue par la tortue) par φ, le raccourci sofusien « multiplier par » prend tout son intérêt ici. Le tracé de la spirale d’Or par la tortue Sofus peut être fait par ce script :

La boucle extérieure porte sur les arcs de cercle ; on trace donc 8 arcs de cercle. La boucle intérieure est l’approximation d’un quart de cercle par un polygone ouvert à 90 côtés, qui représente un quart de cercle car la tortue tourne 90 fois d’un angle de 1° donc, en tout, de 90°.

En alternant les couleurs des quarts de cercle, on voit bien la différence par rapport à la spirale de Fibonacci, en particulier les deux premiers arcs de cercle ne sont plus égaux :