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.

Une nouvelle version de MathemaBlocs, mariage de Scratch et DGPad

Patrick Raffinat offre ici une version de MathemaBlocs qui associe Scratch et DGPaD.

Voir aussi cet autre article de Patrick Raffinat, dans la même veine

Article mis en ligne le 23 octobre 2023
dernière modification le 22 décembre 2023

par Patrick Raffinat

A) Introduction

Par le passé, j’ai développé plusieurs outils combinant programmation par blocs et logiciels de mathématiques, dont deux de géométrie dynamique :

  • ScratchGGB (voir article), comme son nom le laisse supposer, associe Scratch et Geogebra.
  • MathemaBlocs (voir article) associe Blockly et DGPad.

MathemaBlocs a pour atout d’offrir une plus large palette d’exercices que ScratchGGB, mais a pour inconvénient pédagogique de ne pas proposer des blocs Scratch : en effet, à l’époque où j’avais programmé MathemaBlocs, seul Blockly était disponible pour les développeurs.

Donc, pour rendre MathemaBlocs plus attractif auprès des enseignants de collège et de leurs élèves, j’ai décidé d’en faire une version Scratch, que je présente dans cet article. Par ailleurs, même si je terminerai par un exemple très technique (voir ci-dessous) pour mettre en valeur les fonctionnalités du logiciel, les autres exemples seront orientés enseignement.

B) Exemple 1 : orthocentre

Introduction

J’ai choisi de démarrer l’article par cet exemple, non seulement parce qu’il illustre quelques blocs géométriques de base (point, segment, milieu et perpendiculaire), mais aussi parce qu’il donne lieu à des variantes avec sous-programmes.

Pour commencer, voici une version sans sous-programmes :

Les 3 blocs entourés en rouge, relatifs aux points A et B (segment, milieu, et perpendiculaire), peuvent être copiés-collés deux fois pour gagner du temps dans la réalisation du reste du programme, mais ce n’est pas très élégant. Donc, à condition bien sûr que les élèves aient déjà vu la notion de sous-programme, je suggère de les faire passer ensuite à une version avec procédure.

Version avec procédure

La grande différence avec la version initiale est qu’on ne nomme plus dans le programme les objets créés, mais qu’on laisse DGPad fixer leurs noms, avant de les récupérer dans des variables (ici « seg » et « milieu »).

Contrairement à la version initiale, cette version avec procédure ne matérialise pas l’orthocentre en créant un point d’intersection, ce qui ne me semble pas pénalisant pédagogiquement : en effet, l’objectif mathématique de l’exercice reste atteint, à savoir observer à l’exécution du programme que les 3 médiatrices se coupent en un même point. Toutefois, à titre informatif, je vais montrer que l’orthocentre peut être construit en transformant la procédure « Médiatrice » en fonction.

Complément : version avec fonction

Pour transformer une procédure en fonction, il suffit d’introduire un bloc « sortie » dans sa définition :

C) Exemple 2 : drapeaux

Introduction

Pour utiliser une tortue, il faut l’associer à un point. C’est donc un peu plus compliqué qu’avec Scratch mais, comme nous le verrons un peu plus tard, c’est cette particularité qui va permettre de rendre les drapeaux mobiles sur un segment ou sur un cercle. En attendant, voici un premier drapeau dont on peut faire varier la taille grâce à un curseur :

Drapeaux mobiles

Comme plusieurs drapeaux vont être créés dans l’article, je vais introduire un sous-programme « drapeau ». Voici comment l’utiliser en l’associant à un point mobile sur un segment (bloc « Point sur l’objet »), en veillant auparavant à ce que la tortue du point mobile soit initialement orientée orthogonalement au segment :

A ce stade, le point C n’est pas mobile, comme on peut le constater à l’exécution. Il reste pour cela une petite manipulation à effectuer dans DGPad : effectuer un clic droit sur le point C, ce qui fait apparaître une palette contextuelle dans laquelle il faut choisir l’icône en forme de ressort.

Cet exercice peut donner lieu à diverses variantes, soit en changeant de figure à dessiner (par exemple, j’avais dessiné une fusée dans mon article sur la version Blockly de MathemaBlocs), soit en faisant tourner la figure sur un cercle au lieu d’un segment.

Compléments : enregistreur de macros et blocs réutilisables

Pour des raisons ergonomiques évidentes, je n’ai pas intégré dans le menu « Scratch » toutes les constructions géométriques que permet de créer DGPad : par exemple, il n’y a pas de blocs pour créer un arc de cercle, un point mobile… Néanmoins, il est possible pour des enseignants motivés d’en proposer à leurs élèves, grâce à un mécanisme analogue à celui que j’avais détaillé dans mon article sur la version Blockly de MathemaBlocs.

Je me contenterai donc d’une copie d’écran rappelant qu’il y a 3 étapes principales : créer une figure (par exemple un segment avec point mobile), définir une « macro DGPad » avec l’enregistreur de macros, puis enfin transformer la macro en un bloc réutilisable (ici le bloc « macro_pointSegment » disponible dans le menu « Sous-programmes ») :

Il reste alors à sauver le programme Scratch contenant le(s) bloc(s) réutilisable(s), puis à le diffuser aux élèves afin qu’ils l’ouvrent et le complètent.

Pour finir de façon plus prosaïque, j’ajouterai que dans ce cas précis il n’y a pas besoin de passer par toutes ces manipulations : en effet, je les ai déjà effectuées pour que le bloc « macro_pointSegment » soit disponible dans un des exercices « prêts à l’emploi » de MathemaBlocs.

D) Exemple 3 : hexagones

Introduction

MathémaBlocs propose deux types de tortues :

  • des « tortues DGPad », comme celles utilisées pour dessiner les drapeaux.
  • des « tortues CarMetal » qui, en plus de la figure dessinée, créent un point pour chacune des positions occupées au cours de leurs déplacements successifs.

Par exemple, une « tortue CarMetal » peut être utilisée pour créer les 6 sommets d’un hexagone :

L’objectif de l’exercice est de compléter cet hexagone, par exemple en ajoutant un cercle à chaque sommet. Pour y parvenir, il faut récupérer les noms des sommets, ce qui explique la dernière instruction entourée en rouge.

Découpage en 6 portions

Cet exemple élémentaire permet d’initier les élèves aux indices de liste, sans ajouter l’écueil d’utiliser une boucle et un indice : c’est pourquoi je le traite en premier.

Ajout de cercles aux sommets … puis de drapeaux mobiles sur les cercles !

Je propose deux solutions pour parcourir les 6 sommets à l’aide d’une boucle : une première qui respecte le programme officiel (boucle « répéter »), une seconde plus pratique (boucle « pour »). Je laisse le soin à mes collègues de décider laquelle est le plus adaptée à leurs élèves…

Je prolonge l’exemple en ajoutant des drapeaux mobiles, non pas dans une perspective pédagogique mais pour mettre en lumière les potentialités techniques du logiciel.

Le bloc « macro_pointCercle » permet de créer un point mobile sur chaque cercle. Il a été construit en passant par une macro DGPad, de façon similaire à ce que j’ai exposé à la fin de la section C pour obtenir un bloc « point mobile sur un segment ».

E) Conclusion

En développant une version Scratch de MathemaBlocs, j’espère avoir convaincu de nouveaux collègues d’utiliser le logiciel en classe. Et pour être plus persuasif, j’ai aussi créé une banque d’exercices prêts à l’emploi.

Le logiciel et les exercices sont disponibles à cette adresse [1].

Annexe

Expressions DGPad

Les « expressions DGPad » permettent d’afficher, dans la fenêtre DGPad, le résultat de calculs dépendant de la valeur de curseurs. J’illustre cette notion avec un programme de calcul :

Le résultat du programme de calcul, ici la valeur de la variable « res » [2], est mis dans le champ « valeur » du bloc « Expression ». Les champs « x » et « y » précisent la position où il est affiché, tout comme pour le curseur.

Calcul formel

Je pensais avoir terminé l’article lorsque je me suis fait la réflexion suivante : il manque le calcul formel pour que MathemaBlocs devienne un véritable couteau suisse des « mathématiques par blocs » ! Pour y parvenir, je me suis appuyé sur Algebrite, une bibliothèque de calcul formel programmée en Javascript.

En guise d’illustration, je reprends le programme par blocs introduit précédemment en l’adaptant un peu. Aucun bloc spécifique au calcul formel n’est nécessaire, il suffit d’affecter la valeur « x » à une variable pour placer MathemaBlocs en mode « calcul formel ».

Le mode « calcul formel » se déclenche aussi quand on affecte à une variable une expression contenant un des 4 opérateurs arithmétiques de base (+, -, *, ) : par exemple, si on entre l’expression « 1/5 » [3] à la place de « x » dans le programme précédent, on obtient comme résultat « 28/5 ».