par Franck Chevrier
Naissance du « Python au lycée »
Considérant le renforcement de l’algorithmique ainsi que l’arrivée de la programmation en langage Python et la culture du numérique dans les programmes du lycée comme une opportunité d’enrichir et de faire évoluer mes pratiques d’enseignement, j’avais naturellement décidé de me former dans ce domaine dans lequel j’étais alors complètement néophyte : suivant une formation universitaire, couplée à un développement autodidacte de mes connaissances, je m’appropriais donc les rudiments des langages informatiques les plus courants, dont – évidemment – Python, pour lequel je me passionnais.
Intégrant ces éléments à ma pratique d’enseignement, en mathématiques ainsi qu’en sciences du numérique et technologie, j’ai ensuite entrepris de former mes pairs, dans le cadre de formations académiques et de formations pour l’agence pour l’enseignement français à l’étranger (AEFE). C’est ainsi que j’ai produit mes premières activités mathématiques ancrées sur l’algorithmique et la programmation Python, appuyées directement sur les programmes officiels. C’est suite à ces formations, souhaitant diffuser plus largement ces travaux, que j’ai créé un espace de partage en ligne qui s’est rapidement mué en véritable site, avec la volonté d’une plus large diffusion… le nom et le logo ayant alors été choisis, le « Python au lycée » était né.
- Logo du site « Python au Lycée »
L’algorithmique et la programmation : un levier pour l’apprentissage des mathématiques
Convaincu que les structures informatiques constituent un levier puissant pour favoriser la compréhension des notions et objets mathématiques, mon idée directrice était de mettre l’algorithmique et la programmation en langage Python au service des mathématiques. La syntaxe Python apporte une plus-value intéressante au vu de la proximité des syntaxes et des structures avec leurs équivalents mathématiques (définition d’une fonction, similitude de la structure de création d’une liste par compréhension avec la définition d’un ensemble mathématique …).
Aspects techniques – Mode d’emploi
Je souhaitais rendre autant que possible le code facilement accessible et modulable pour les élèves, et la structure des Jupyter Notebook m’est apparu la solution la plus adaptée à mes besoins, pour la possibilité qu’elle offre en termes de partage d’activités complètes (énoncé et zone de codage en Python) dans un environnement unique et interactif.
- Utilisation d’un Jupyter Notebook :
Dans un Notebook, énoncé et zone de codage en langage Python se côtoient dans un fichier unique. Les zones Python sont exécutables (Boîte « Exécuter » ou SHIFT+Entrée en séléectionnant la cellule souhaitée). Les fonctions et variables définies dans les zones exécutées restent en mémoire et peuvent donc être réutilisées ultérieurement pour la suite de l’activité.
Pour permettre aux élèves d’accéder facilement aux ressources en ligne, directement via un navigateur, mon premier choix s’était porté sur un accès via un serveur binder, qui avait le désavantage de manquer de stabilité. L’excellente plateforme Basthon a ensuite permis d’améliorer grandement l’ergonomie d’utilisation des activités en proposant une exécution locale et fiable, toujours sans installation préalable. Cette solution a ensuite été intégrée au projet Capytale, très performante plateforme institutionnelle qui offre aux enseignants la possibilité de partager entre eux des activités et de les proposer aux élèves, avec un suivi en direct leurs travaux.
Profitant des possibilités d’insertions offertes par les Jupyter Notebook, j’ai entrepris de construire des animations gif, des vidéos, des figures dynamiques et des applets GeoGebra. Outre l’esthétique apportée, ces éléments font souvent partie intégrante du processus pédagogique visant à la compréhension et à l’assimilation des notions visées.
- Illustrations en géométrie dynamique :
Des insertions de figures en géométrie dynamique permettent d’illustrer les notions ou les résultats mathématiques.
Ici, une illustration du calcul de la somme des carrés des nombres entiers naturels, issue de l’activité sur les sommes d’entiers.
Des activités en appui sur les programmes parus au BO
Pour la construction des activités, le point de vigilance principal était d’éviter que l’activité mathématique de l’élève se mue en activité purement informatique ou se limite à un exercice de maîtrise des syntaxes au détriment de la compréhension des concepts mathématiques sous-jacents aux algorithmes mis en œuvre. Il s’agissait bien de viser l’acquisition de compétences mathématiques, mais tout en prenant soin également de rendre l’élève acteur et pas seulement contemplateur du code utilisé, sauf pour quelques éléments illustratifs ou de prolongement.
C’est en effet davantage la compréhension des algorithmes mis en œuvre plutôt que leur transcription en langage de programmation qui est recherchée. Autant que possible, plutôt que de proposer des algorithmes à trous, j’ai opté pour l’appui sur une pédagogie par l’exemple, en fournissant des fonctions détaillées et/ou commentées et en amenant les élèves à modifier la valeur d’une variable, à écrire une fonction similaire ou à généraliser son fonctionnement. Parallèlement, l’insertion de syntaxes plus complexes, parfois simplement fournies et à exécuter, permet de sensibiliser les élèves aguerris à des syntaxes plus expertes (en particulier ceux suivant par ailleurs la spécialité NSI).
Autre ligne directrice qui a évidemment guidé mes choix : l’adéquation des thématiques traitées avec les programmes. Ainsi le site propose-t-il une entrée vers les activités depuis les programmes officiels du lycée. Les nouveaux programmes encouragent à éclairer les notions par des éléments de contextualisation historique, et j’ai tenu à inclure cette dimension dans mes travaux en proposant notamment une frise chronologique et des références historiques : certaines activités prennent directement appui sur des ouvrages et travaux des mathématiciens, par exemple pour l’étude du triangle de Pascal ou l’étude du problème des ponts de Königsberg, proposé par Leonhard Euler et repris dans l’activité sur les graphes et trajets eulériens).
En tout, c’est une quarantaine d’activités mathématiques qui ont ainsi vu le jour sur le site, auxquelles se sont ajoutées des activités en lien avec d’autres disciplines scientifiques…
- Appui sur le contexte historique :
À partir du traité de Pascal sur le « triangle arithmétique », paru au XVIIème siècle, on propose d’implémenter en langage Python la construction du triangle de Pascal.
Python dans les sciences : pluridisciplinarité
Il n’y a pas que les mathématiques qui ont été concernées par le renforcement de l’algorithmique et de la programmation en langage Python dans les programmes, mais bien l’ensemble des disciplines scientifiques enseignées au lycée, dont certaines ont d’ailleurs vu le jour à cette occasion : SNT et NSI.
Enseignant également la discipline Sciences Numériques et Technologies (SNT), j’avais entrepris de monter des activités accessibles, alliant autant que possible un travail en débranché, favorisant la compréhension des algorithmes, et des mises en application en langage Python axées sur la compréhension des structures : ainsi sont nées notamment les activités liées à l’algorithme du surfeur aléatoire, aux réseaux sociaux et graphes et à l’algorithme de Dijkstra. Diverses activités, et en particulier sur le traitement d’image, proposant d’appliquer des filtres sur une image, sont venues compléter l’offre.
- Traitement d’image en SNT :
Dans l’activité de traitement d’image, partant d’une fonction -détaillée- qui permet d’éclaircir une image, les élèves sont amenés à l’adapter pour réaliser divers types de filtres : assombrissement, extraction de composante couleur, conversion en niveaux de gris ou en noir et blanc, et passage au négatif. Dans l’activité de composition d’images, des prolongements sont proposés pour réaliser des superpositions d’images, des anaglyphes ou des incrustations sur fond vert.
Associé avec des collègues enseignant en Sciences de la Vie et de la Terre (SVT) et en Sciences Physiques et Chimie (SPC), nous avions joint nos expertises pour construire des activités permettant par exemple d’appréhender le codage d’une protéine à partir d’une séquence ADN, ou de réaliser des études de trajectoires. Notamment, des insertions d’applets GeoGebra permettent aux élèves de réaliser des pointages directement au cœur des activités : c’est le cas pour l’étude de la trajectoire d’une balle de Base-ball, de la chute d’une pierre, ou pour la mise en évidence du principe d’inertie.
- Réalisation d’un pointage en Sciences Physiques :
Au sein de l’activité « chute d’une pierre » qui s’appuie sur une étude de documents, les élèves sont amenés à réaliser un pointage dans une applet Geogebra puis d’exploiter les résultats en programmation Python, pour étudier la trajectoire d’une balle dans différents référentiels.
Intentions
J’ai souhaité construire ce site et ses contenus pour les enseignants, dans un souci d’accessibilité et autant que possible d’exhaustivité, et surtout dans un esprit de large partage de ressources et de pratiques, au profit des élèves. J’espère que les enseignants prendront plaisir à s’en emparer, et que ces contenus participeront à rendre les sciences attrayantes et surtout accessibles.