TraAM 2017-18 : La boule du Futuroscope publié le 24/05/2018  - mis à jour le 05/06/2018

Caractéristiques du scénario

Thématique

Construire la notion de fonction en programmation Python.

Niveau concerné

Créée pour une classe de seconde, cette activité est adaptable pour le cycle 4 notamment autour de l’introduction du théorème de Pythagore.

Compétences mobilisées

Raisonner (Démontrer), Calculer (appliquer des techniques et mettre en œuvre des algorithmes)

Problématique

Comment à partir de la programmation sur Scratch, effectuer une première approche du langage Python ?
La volonté de cette activité est d’intégrer l’algorithmique et la programmation dans les contenus mathématiques proposés. Ici, le programme proposé sur scratch et sur Python s’articule autour de la construction de la boule du Futuroscope.
Par ailleurs, ce travail s’inscrit dans l’objectif d’amener les élèves à la notion de “fonction” sous Python. L’objectif est de commencer à construire ou reconstruire la notion de variable.

Nombre d’heures envisagées

Une heure pour la partie C liée à l’algorithmique.

Outils et ressources

Il semble préférable de travailler dans une salle informatique et de mettre à disposition le fichier avec le lien vers le fichier scratch pour que les élèves puissent le voir fonctionner : https://scratch.mit.edu/projects/172172756/#editor
Il semble d’ailleurs important de créer un compte scratch enseignant : https://scratch.mit.edu/educators#teacher-accounts
L’objectif est de proposer le même type de lien pour le langage Python. Dans cette activité, j’ai proposé un lien avec Pythonfiddles qui pose d’ailleurs plusieurs problématiques : http://pythonfiddle.com/fr1-etude-1/

Cependant, l’intérêt de cette activité est qu’elle propose une première approche du langage Python en “débranché”.

Déroulement du scénario

Description des séances, organisation pédagogique… [les documents profs (didactique+pédagogique) et élèves sont partagés au fil de la narration]

La structure de l’intersection d’une droite et d’une sphère déjà rencontrée au collège constitue un bon point d’ancrage pour amener les élèves à la bonne compréhension des élèves dans cette étude.
Lors de la première séance, les élèves travaillent sur la situation du Futuroscope qui permet de donner du sens à cet apprentissage. Les élèves font une recherche à l’aide de l’application PADLET : https://fr.padlet.com/ , et ce travail contribue à motiver les élèves dans la tâche demandée. En effet, pour les élèves, la construction de cette boule constituera l’objectif à atteindre.

Voici la production des élèves : https://padlet.com/chapellier/iyuy7l60pxd6 . On peut constater que ce travail collaboratif manque de diversité, les élèves ont du mal à apporter des éléments supplémentaires. Cependant, il permet à chacun de s’impliquer dans la situation proposée et de mettre en scène le sujet.

Cette recherche et les premiers calculs invitent les élèves à revoir certaines connaissances du collège : la géométrie, les configurations de l’espace et le théorème de Pythagore.
Avec les longueurs proposées aux élèves, ils modélisent et calculent assez vite la diagonale du prisme.

Production élève boule du futuroscope

Un élève calcule les dimensions du batiment de la boule du futuroscope en utilisant le théorème de Pythagore.

La construction sur le logiciel Geogebra peut constituer une vraie difficulté en particulier si l’on veut réaliser avec exactitude l’emplacement de la boule sur le prisme. Personnellement, la construction du prisme m’a suffit.

Une fois le cadre posé, les élèves sont guidés vers la construction : http://www.partenaires-futuroscope.fr/le-parc/statut-et-histoire
On peut d’ailleurs critiquer cette approche puisque l’on ne sait pas si les constructeurs ont vraiment eu besoin de déterminer les rayons des sections mais cela n’a pas posé de problème chez les élèves. Ils abordent alors l’algorithme proposé dur scratch. Premier doute, sur l’effectif de la classe seul 20% d’entre eux avaient connaissance du logiciel Scratch.
J’ai donc préféré leur faire d’abord calculer le rayon d’une section. Les élèves n’ont pas rencontré de difficulté à réinvestir le théorème de Pythagore afin d’y arriver :

Calcul du rayon d'une section de la boule

Production d’un élève. Il calcule le rayon d’une section de la boule du futuroscope (construction)en utilisant le théorème de Pythagore.

Voici en vidéo les échanges d’un groupe d’élèves :

modélisation boule du futuroscope (MPEG4 de 9.6 Mo)

Echange entre élèves sur la modélisation de la boule du futuroscope

Fort de ce travail, ils ont expliqué assez rapidement le programme proposé sur scratch. Ensuite dans la comparaison entre scratch et Python, les premières préoccupations des élèves se sont centrées sur le texte “from math import *”. Sans rentrer dans les détails des bibliothèques, j’ai expliqué que cela s’écrivaient systématiquement et permettaient pour le langage de comprendre la commande “sqrt”. Cette première approche des variables permet de découvrir comment les déclarer avec en particulier la nécessité de déclarer leur nature sous Python avec “float”. Même si des remarques décalées telles que “Ca existe des nombres pas réels” sont apparues, les élèves ont assez bien réagi et ont compris l’avantage du langage Python pour réaliser cet algorithme. En effet, on constate assez rapidement l’avantage du langage Python pour programmer un calcul, “d=sqrt(R**2 - h**2)” comparé à Scratch. Plus largement, la situation montre bien l’intérêt de la modélisation car il permet de calculer directement la longueur de la section voulue.

Ce travail peut se compléter avec Geogebra sur la construction d’une simulation qui réalise la figure en 3D avec le nombre de sections souhaitées : https://www.geogebra.org/m/npkCsXHc

Au delà de la première approche du langage, Il m’a permis d’institutionnaliser la notion d’algorithme et d’aborder les capacités attendues des programmes telles que “choisir ou déterminer le type d’une variable”, “écrire une formule permettant un calcul combinant des variables”. Personnellement, j’ai fait une partie cours généralisant cette notion avec pour illustration cette situation.

Proposition de cours sur l'algorithmique

Proposition de cours sur l’algorithmique

Cependant, le document d’accompagnement ( http://revue.sesamath.net/IMG/pdf/170516-algorithmique-lycee.pdf ) n’invite pas à faire cela :
On notera que les notions d’entrées-sorties (fonctions "input" et "print") ne sont pas développées dans ce document : elles ne relèvent pas de la pensée algorithmique et l’accent mis par le programme sur la notion de fonction permet de s’en libérer largement.

Globalement, l’objectif a été atteint. Les élèves ont bien compris l’algorithme dans les deux langages proposés. Cette première approche en “douceur” du langage Python assure une bonne compréhension et évite un sentiment de rejet que l’on peut avoir en observant la syntaxe.
D’autres approches sont possibles, on peut tout à fait laisser libre les élèves sur le choix du logiciel, en les laissant programmer eux-mêmes l’algorithme une fois mis en évidence. Il faut alors avoir une bonne connaissance des élèves quand à leurs capacités en programmation afin de proposer une mise en œuvre différente en adéquation avec leur niveau.
L’enseignement de l’algèbre et de la géométrie constitue un terreau fertile pour y plonger des activités autour de l’algorithmique. La difficulté réside alors dans le temps que l’on peut réserver à la part de recherche chez les élèves.

Prolongements et évaluation :

Ce contexte m’a permis de faire naître des exercices d’algorithmique et donc de programmation sur le langage Python ou scratch autour de la même problématique.
Voici un exemple :

Carré inscrit dans un cercle

Exercice permettant d’amener à la mise en fonction autour d’un carré inscrit dans un cercle.

Les élèves doivent construire eux-mêmes l’algorithme. Le langage est alors choisi par l’élève.

production élève algorithme

Construction d’un algorithme autour du calcul de la longueur d’un carré inscrit dans un demi cercle.

production 2 élève algorithme

Construction d’un algorithme autour du calcul de la longueur d’un carré inscrit dans un demi cercle.

Ils ont préféré l’écrire sous forme d’un algorithme et ont peu utilisé le logiciel, même si la syntaxe de la première production ressemble beaucoup à celle de scratch.

Voici un autre exemple qui peut compléter :

Exemple évaluation programmation (PDF de 90.1 ko)

Suite à des approches de la programmation en langage Python, un exemple d’évaluation sur le sujet

Documents de référence :

boule du futuroscope version élève (PDF de 246.1 ko)

Document élève sur l’approche en langage Python autour de la situation de la boule du futuroscope.

boule du futuroscope version professeur (PDF de 563.2 ko)

Document professeur sur l’approche en langage Python autour de la situation de la boule du futuroscope.