Chacun des exemples de cet article pourrait être développé en nouvel article ...
par Olivier Thöni
- Préambule : historique et objectifs
- Le rapport au temps
- Des compétences nouvelles
- Les bases de Python-GeoGebra
- Premiers exemples d’activités : par les failles vient la (...)
- 1. Réécrire les fonctionnalités manquantes de GeoGebra (...)
- revisiter la géométrie à la règle et au compas
- 1ers exemples : géométrie du triangle
- 2es exemples : géométrie des transformations
- 3es exemples : polygones réguliers
- 2. Recréer les primitives de turtle
- les primitives de la tortue
- 3. Montrer et créer de la beauté mathématique
- 1ers exemples : tortue et objets fractals
- 2es exemples : construction récursive de fractales
- 3es exemples : construction de fractales par le jeu du (...)
- Autres idées, pour l’arithmétique, l’analyse ou les (...)
- En conclusion
Préambule : historique et objectifs
Faire des mathématiques requiert (entre autres) deux modes de pensée qui interagissent. Le raisonnement (hypothético-déductif, par exemple) et la démarche algorithmique font partie intégrante de l’activité cérébrale mathématique. Et ce n’est pas nouveau ! Euclide, déjà, joue sur les deux tableaux : d’un côté, ses « Éléments », de l’autre la recherche d’un PGCD.
- Portrait de Euclide Margarean par Thévet, André, 1504-1592
Bibliothèque municipale de Lyon
L’efficacité de l’usage de logiciels pour aider à visualiser, conjecturer, développer la pensée mathématique ne fait plus aucun doute.
Depuis longtemps des logiciels de géométrie dynamique apportent énormément à notre enseignement : pour ne citer qu’eux, Cabri Géomètre, Géoplan, Déclic (Emmanuel Ostenne, 2000) …levez la main si vous connaissez ces noms… Bienvenue chez les plésiosaures ! Ils ont aujourd’hui eu tendance à laisser la place à GeoGebra (Marcus Hohenwarter, 2002), dont une communauté de développeurs s’est emparé pour ajouter, petit à petit, l’analyse, le tableur, le calcul formel, la géométrie dans l’espace, etc.
Cette multiplicité de points de vue et la possibilité de les mêler lui donnent une grande utilité didactique.
On ne peut pas dire non plus que, du côté de la programmation, les lutins de Scratch (MIT-2006) soient une nouveauté, surtout si on évoque leur papa, le Logo, du merveilleux Seymour Papert (1960 !), une fameuse “tortue” (Logo, pas Papert !), virtuelle ou physique, pilotée par des algorithmes. On en trouve aussi une descendance dans le module « turtle » de Python. La longévité de cet animal n’est pas une surprise !
Et cela fait aussi quelques années désormais que les programmes officiels préconisent de travailler en mathématiques les deux aspects raisonnement / algorithmique (Plan Informatique pour Tous, 1985, puis disparition, pour revenir en force en 2009 au lycée, et en 2016, seulement, au collège).
En mathématiques au collège, Scratch, puis au lycée, Python, font office à la fois d’objets d’apprentissage et d’outils pour faire des mathématiques, et c’est très bien.
Mais jusqu’à récemment, il n’y avait pas d’outil simple pour mêler géométrie dynamique et programmation. Heureusement sont arrivés ScratchGGB de Patrick Raffinat (à tester ici), et PythonGgb, développé par les auteurs de GeoGebra, pour combler ce vide.
Pourquoi est-ce important ? Qu’est-ce qu’on peut imaginer avec ? Pour quelle plus-value ? Voici ce à quoi on va essayer de réfléchir ici.
Le rapport au temps
Si la géométrie de GeoGebra est dynamique, pour autant, hormis lorsqu’on anime un curseur ou que l’on consulte l’historique d’une construction, cette dynamique ne concerne que l’espace, en conservant les hypothèses de construction de la figure, même si on la « secoue », et il n’y a pas de dynamique temporelle, de cinématique, pourrait-on dire : on passe d’une statique à une autre statique. On dit que le temps est « réifié ».
C’est la géométrie des figures, avec les caractérisations et propriétés associées à ses objets, celle qui parle de l’état des choses, littéralement, la statique ! On est dans le monde de la démonstration.
A contrario, quand on exécute un programme « séquentiel », par définition, on rétablit la dynamique temporelle, on pourrait presque parler de « cinématique ».
Adapté à la géométrie, cela devient celle des constructions, celle de l’évolution des choses.
Cette fois, on est dans le monde de l’algorithme.
Mais si on essayait de faire cohabiter ces deux mondes ?
On inventerait un truc qu’on appellerait la « géométrie dynamique programmée » !
Eh bien, ce monde existe ! C’est Python-GeoGebra !
Benvenue !
Des compétences nouvelles
Quelles compétences ?
Même si, comme les sept nains, on n’arrive jamais à les redonner toutes, on connaît bien les six compétences mathématiques travaillées du primaire au supérieur :
- chercher,
- modéliser,
- représenter,
- raisonner,
- calculer,
- communiquer.
Côté pensée algorithmique (on dit aussi pensée « computationnelle », pour franciser un anglicisme), on a coutume d’en dégager quatre (source) :
- décomposer,
- reconnaître des motifs ou « schèmes » (Patterns en anglais),
- abstraire,
- trouver des solutions algorithmiques,
auxquelles on pourrait ajouter :
- la capacité à tester un algorithme,
- la capacité à le traduire dans un langage de programmation.
Enfin, il ne faut pas oublier des compétences beaucoup plus transversales, parfaitement décrites par Margarida Romero, qui adjoint à la pensée informatique : ( voir sur le blog Binaire l’article)
- la pensée critique,
- la collaboration,
- la résolution de problème,
- et la créativité.
Choix d’un instrument de mesure de la plus-value pédagogique
Pour quantifier a priori notre estimation de la valeur ajoutée à l’activité pédagogique par l’emploi de Python, d’une part, de GeoGebra, d’autre part, et de la force supplémentaire issue de leur union, nous allons utiliser une échelle classique très simple, le modèle SAMR (Ruben Puentedura - 2006).
On estimera ainsi quatre critères : l’apport de Python seul à l’activité, l’apport de GeoGebra seul à l’activité, la valeur ajoutée par le couple Python-GeoGebra à l’activité
L’état d’esprit sous-jacent est que, quelle que soit la proposition, l’activité mathématique soit présente, le plus possible !
Les bases de Python-GeoGebra
Principe :
On écrit dans l’éditeur un programme Python augmenté de commandes permettant de générer, dans la fenêtre graphique, des objets GeoGebra (points, droites, cercles, intersections, vecteurs, etc.) dynamiques, sur lesquels et avec lesquels le programme agit.
Pour le moment en version bêta, l’interface de Python-Geogebra se trouve ici.
Dans « Open », on trouvera quelques exemples qui permettent de démarrer.
Puis, on lira avec grand profit l’excellent article de Jean-Yves Labouche sur cet outil.
Et si on veut approfondir et décortiquer quelques exemples, repérer des trucs et astuces, se les approprier, les triturer, en inventer d’autres et partager, on pourra aller voir par là (mode d’emploi : voir « Read Me »).
Premiers exemples d’activités : par les failles vient la lumière…
Il se trouve que, pour l’instant, certaines fonctionnalités manquent à PyGgb : le module turtle n’est pas installé, des boutons fonctionnels n’existent pas (perpendiculaire, milieu, etc.).
C’est dans ces failles qu’on va trouver un premier profit…
1. Réécrire les fonctionnalités manquantes de GeoGebra pour dessiner à la règle et au compas
À partir des seules fonctionnalités de GeoGebra disponibles (point, droite, cercle, segment, intersection, vecteur), reconstituer les fonctions médiatrice, milieu, perpendiculaire, hauteur, médiane, bissectrice, etc.
On a alors une jolie trousse à outil de programmation de la géométrie « règle et compas ».
2. Recréer les primitives de turtle
La « tortue » est un objet mobile dans la fenêtre graphique.
Le principe en est simple : à chaque instant, on connaît sa position (abscisse, ordonnée) et son azimut, des commandes simples permettent de la déplacer, en traçant son déplacement ou non :
- avancer : av(nb_pas),
- reculer : re(nb_pas),
- tourner à gauche ou à droite : tg(angle), td(angle),
- aller à une position : gt(position) (gt = GoTo, en hommage aux pionniers, parmi nous, de la programmation, qui ont connu le langage Basic…)
- etc.
3. Montrer et créer de la beauté mathématique
Faire du beau fait du bien. C’est inutile et donc parfaitement indispensable !
Surtout si on peut nourrir au passage quelques compétences mathématiques…
C’est aussi l’occasion de se récompenser des efforts engagés pour réaliser les activités précédentes (« turtle » et « Règle et compas », en les recyclant sur quelque chose de plus créatif…)
Autres idées, pour l’arithmétique, l’analyse ou les probabilités
En conclusion
Explorer ces pistes ouvertes par la venue de cet outil mêlant la puissance de la programmation Python et la pertinence de la dynamique de GeoGebra est très divertissant !
Dans certaines des idées proposées ici, notamment celles tournant autour de la reconstitution et de l’utilisation d’un module turtle de Python, GeoGebra apparaît seulement comme un substitut au module graphique MatPlotlib.PyPlot : on perd l’aspect dynamique des figures, mais la fenêtre GeoGebra permet de ne pas avoir à gérer les contingences graphiques. De plus, comme il s’agit à chaque fois de faire des mathématiques artistiques, on aurait tort de s’en priver !
Ce qui ressort également, comme on s’y attendait, c’est que, en matière de valeur ajoutée à l’activité mathématique, la force du groupe Python + GeoGebra est toujours supérieure ou égale à la somme des forces de ses parties.
Cela crée une compétence nouvelle, plus forte, plus complexe : la capacité à considérer tout objet géométrique à la fois avec ses propriétés caractéristiques et son processus de conception.
L’espace et le temps sont devenus simultanément dynamiques.