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.

Un exemple de liaison 3ème - TS autour des fractales.
Article mis en ligne le 5 octobre 2018
dernière modification le 15 novembre 2018

par Alexis Lecomte

Cet article peut être librement diffusé et son contenu réutilisé suivant la licence CC-by-sa

Il témoigne d’une expérimentation de liaison entre une classe de Terminale S du Lycée André Maurois d’Elbeuf et une classe de troisième du collège Jacques-Emile Blanche de Saint-Pierre-lès-Elbeuf sur le thème de l’algorithmique et de la programmation lors de l’année scolaire 2017/2018.

L’auteur de l’article, Alexis Lecomte, est professeur de mathématiques au Lycée André Maurois d’Elbeuf

Toutes les contributions d’Alexis Lecomte à MathémaTICE

Contexte

Au bulletin officiel du 2 mai 2017 est paru l’aménagement du programme de la classe de seconde avec l’introduction de la programmation à l’aide d’un langage textuel, comme Python.

Au sein de l’Académie de Rouen, des pôles de compétences disciplinaires sur l’usage des Tice existent depuis de nombreuses années. Le pôle Mathématiques dont je fais partie a été chargé de s’occuper des formations des enseignants pour le début de l’année scolaire 2017/2018.

Nous avons notamment étudié la ressource sur l’algorithmique-programmation parue sur Eduscol lors de l’été et la logique d’usage de la notion de fonction préconisée.

N’ayant pas en charge de classe de seconde cette année, j’envisageais alors des expérimentations avec ma classe de Terminale S, je pratiquais jusqu’alors la programmation à l’aide de la calculatrice avec mes élèves mais l’arrivée du mode examen (à ce moment là programmée au bac 2018...) rendait d’autant plus cohérent l’usage de la programmation à l’aide de Python. Je me suis alors remémoré un stage du plan académique de formation auquel j’avais assisté en 2006... Animé par Jean-Luc De Seegner, ce stage présentait une liaison entre une classe de quatrième et une classe de Terminale sur le thème des fractales. Les élèves de 4ème venaient présenter au lycée le thème et leurs travaux géométriques aux élèves de Terminale, qui programmaient ensuite la création récursive des fractales (sous Scilab) avant de faire une présentation de leurs travaux au collège.

Fin août je contactais un de mes collègues du collège de Saint-Pierre-lès-Elbeuf, Arnaud Lefebvre, afin de savoir si le thème l’intéressait, en utilisant la programmation dès le collège avec Scratch. Nous nous sommes rapidement entendus, et rencontrés début septembre pour finaliser le projet : sa classe de troisième allait travailler sur les premières étapes de plusieurs fractales (le flocon de Von Koch, l’arbre de Pythagore, le triangle et le tapis de Sierpinski) d’abord sur papier puis à l’aide Scratch avant de venir présenter aux lycéens leurs travaux et de les mettre au défi de poursuivre les étapes à l’aide de la tortue sous Python.

Travaux des élèves - Première partie (collégiens)

En début d’année nous avons présenté le projet à nos classes respectives.
Dans l’ensemble les élèves étaient intéressés, certains collégiens un peu impressionnés (comme l’a relevé mon collègue avec cette réaction : ”On va devoir leur parler aux TS ?” ”Ils sont grands, on a peur nous” ...)

Les collégiens commençaient très tôt à travailler sur les fractales, en constituant des groupes de 4 élèves qui allaient être repris par la suite. Lors de séances en demi classe, chaque élève de chaque groupe a construit sur feuille une fractale différente. Mon collègue s’apercevant que ses élèves avaient des niveaux de connaissance différents sur Scratch (certains d’entre eux découvraient), il a d’abord fait une séance de prise en main du logiciel sous forme de petits défis (phase d’initiation sans aller jusqu’à la notion de boucle ni de bloc). Ils sont ensuite passés à la programmation sous Scratch des premières étapes de leur fractale. De leur côté, les élèves de Terminale étaient initiés à la programmation en Python, en se servant notamment des suites comme support, afin de maîtriser la notion de programmation utilisant des fonctions avec paramètre(s).

Voici un exemple de consigne que les collégiens ont eu lors de la réalisation de leur
fractale à l’aide de Scratch (le triangle de Sierpinski) :

  • Etape 0 : Construire un triangle équilatéral de 18 cm de côté.
  • Etape 1 :
    • Placer le milieu de chacun des côtés du triangle.
    • Tracer et colorier le triangle obtenu en reliant les trois milieux.
  • Etape 2 : Recommencer l’étape 1 pour chacun des 3 triangles non coloriés de la figure précédente.

Fin Novembre, les élèves de collège sont venus sur un créneau de 2h au lycée, la première heure afin de présenter leurs travaux aux élèves de Terminale, la seconde pour effectuer une visite du lycée.

Nous avons constitué 6 groupes de 9 élèves (4 collégiens et 5 lycéens) disposés en îlots dans la salle polyvalente du lycée. Les collégiens disposaient de leurs travaux papier ainsi que de leurs fichiers Scratch. Chaque groupe de collégiens faisait alors découvrir aux élèves de Terminale la notion de fractale (via un des quatre exemples) :

Explication des fractales par les collégiens

exemple de fichier élève pour le triangle de Sierpinski

On observe l’absence de boucle et de bloc, méconnus à ce stade par ces élèves.
Avec des élèves initiés à Scratch il est préférable de programmer un bloc Triangle(longueur) que le programme appelle plusieurs fois pour construire une première figure.
Les multiples appels de ce bloc constituent un premier pas vers une première compréhension de la récursivité qui sera présentée par les élèves de Terminale.

Une fois les explications données et après s’être assuré que les élèves de Terminale avaient compris ce qu’ils avaient à faire de leur côté (même s’ils ne savaient pas comment y arriver à ce moment là) certains groupes ont terminé la première heure à prolonger l’utilisation de Scratch que les élèves de Terminale venaient de découvrir, certains d’entre eux se sont amusés à pousser l’usage de Scratch en utilisant la notion de boucle, ce qui a permis à certains collégiens de découvrir ces concepts algorithmiques :

Prise en main de Scratch par les lycéens afin d’optimiser le code des collégiens en utilisant une boucle

Lors de la seconde heure, les élèves de Terminale ont fait visiter le lycée aux collégiens de leur groupe. Pour cela nous avions disposé des défis de logique et de Mathématiques à divers endroits du lycée.

Exemple de défi : DEFI NUMERO 1
Thaïs et Mathis jouent aux petits chevaux avec un dé (un cheval chacun).
Thaïs a mis le sien à l’abri (sur la case 1) quelle est la probabilité qu’elle soit sur la case 2 au tour suivant ? (sachant que tant que l’on obtient 6, on rejoue)


Un retour en salle polyvalente en fin d’heure a permis de faire un bilan des réponses aux différents défis.

Travaux des élèves - Seconde partie (lycéens)

Durant le courant du mois de décembre, les élèves de Terminale ont travaillé en salle informatique sur la programmation en Python des différentes fractales (une par groupe, chaque élève travaillant en tout durant deux séances d’une heure).

Il était évident que les élèves ne réussiraient pas la programmation récursive des fractales sans aide...

Afin de découper le problème, je leur proposais des étapes intermédiaires, en leur conseillant de retenir les explications, qu’ils devront reproduire auprès des collégiens.

Voici comment on pourrait résumer les échanges autour du triangle de Sierpinski :

  • Construction d’un triangle équilatéral de 180 pixels de côté.
  • Discussion sur la nécessité d’introduire un paramètre (la longueur du côté) en étudiant la figure finale
  • Construction de la seconde étape de la fractale (en faisant plusieurs fois appel à la fonction ‘triangle’ )
  • Echanges sur le caractère fractal de la figure avec répétition du zoom jusqu’à atteindre une certaine profondeur.

Voici le code conçu par un groupe à l’issue de la seconde séance :

  1. from turtle import*
  2. title ("triangle de sierpinski")
  3. reset()
  4. speed (0)
  5.  
  6. pencolor ("pink")
  7. shape ("turtle")
  8.  
  9. def triangle(longueur):
  10.    for k in range (3):
  11.       forward(longueur)
  12.       left(120)
  13.  
  14. def triangle_de_siep(longueur,n):
  15.    if n==0:
  16.       triangle(longueur)
  17.    else:
  18.       triangle_de_siep(longueur/2,n-1)
  19.       forward(longueur/2)
  20.       triangle_de_siep(longueur/2,n-1)
  21.       left(120)
  22.       forward(longueur/2)
  23.       right(120)
  24.       triangle_de_siep(longueur/2,n-1)
  25.       right(120)
  26.       forward(longueur/2)
  27.       left(120)
  28.  
  29. #triangle(180)
  30. triangle_de_siep(180,4)
  31.  
  32. done()

Télécharger

Voici le résultat consciencieusement effectué par la tortue :

Dernière rencontre au collège

Début février, l’échange s’est terminé au CDI du collège. Les élèves de Terminale ont pu présenter pendant une heure leur code Python, en programmant les différentes étapes leur ayant permis d’obtenir le résultat final (programmation de la construction du triangle principal, puis usage d’une fonction pour en construire trois, utilisation d’un paramètre et enfin modification du code pour obtenir la version récursive). Les collégiens ont ainsi pu découvrir le langage qui les attendait au lycée.

En parallèle des recherches des lycéens, les élèves de troisième n’avaient pas arrêté le travail sur les fractales puisqu’ils avaient réalisé une pyramide de Sierpinski lors de deux séances d’AP :

Les lycéens ont pu la découvrir lors de leur venue puisqu’elle était exposée au CDI du collège.

Très satisfaits du déroulement de cette liaison, mon collègue et moi allons poursuivre cet échange l’an prochain. Nous profitons de cette période où des collégiens peuvent faire découvrir un logiciel à leurs ainés...
En observant les différents groupes (il n’y a quasiment pas eu d’intervention des adultes lors de leurs échanges), nous avons pu avoir la bonne surprise de voir certains élèves (pas forcément à l’aise d’habitude) prendre la parole pour les explications, certains avaient également réfléchi à se répartir le temps de parole et les différentes étapes de présentation. La compétence « communiquer à l’oral », pas toujours simple à travailler d’habitude, a pris ici tout son sens et trouvé une motivation naturelle.
Nous avons évoqué une amélioration possible pour la prochaine fois : faire en sorte que les collégiens programment leur fractale sur Scratch devant les lycéens plutôt que de leur montrer un programme terminé.

Remarques :

  • Cette liaison a fait l’objet d’une présentation lors du séminaire de l’inspection générale du 20 Novembre 2017 à Paris
  • On peut trouver en page 7 du document d’accompagnement un exemple de passage de Scratch à Python via la bibliothèque Turtle