Traam SVT 2019 : Algorithmique et codage pour l'enseignement des SVT
Categories
mercredi 9 octobre 2019
Notre enseignement scientifique est empreint de code et de logique algorithmique, dans les protocoles expérimentaux que nous mettons en œuvre ou dans les analyses des mécanismes géologiques et biologiques étudiés aussi bien au lycée qu'au collège. De nombreux enseignants de SVT enseignent les bases de cette démarche sans pour autant les identifier en tant que tel.
Comprendre que les outils de modélisation que nous utilisons ont été créés par un humain qui a du créer un algorithme, faire des choix de variables, de constantes, c’est comprendre que ce langage algorithmique traduit les mécanismes biologiques, géologiques, chimiques.
Enseigner ce langage, c’est montrer le lien invisible qui existe entre les mécanismes enseignés en SVT et leur modélisation numérique.
Dès la réflexion préliminaire sur les axes à donner à nos travaux, la dimension de restitution et de réexploitation pour nos collègues a pris la première place. Un Traam sur le codage : oui ! Mais pas pour une approche élitiste que seuls quelques fanatiques des balises pourraient exploiter et reproduire en classe.
Au contraire, mettre en place les bases simples d’une exploitation en classe, dans la continuité des enseignements du code au collège ou directement dans l’optique des nouveaux programmes du lycée nous a semblé bien plus important et a contraint notre approche par les conditions suivantes :
- former une équipe d’enseignants.es motivés.ées, mais sans obligation de savoir coder,
- équilibrer les équipes au niveau collège / lycée,
- avoir une approche suffisamment large pour que les collègues puissent s'approprier nos travaux,
- utiliser les outils utilisés au collège (Scratch) et au lycée (Python),
- se donner toute liberté d’aller explorer toutes les pistes (programmation de sondes, python, etc).
L'équipe se compose donc de la façon suivante :
- Pierre-Etienne COLARD, collège Lucien Herr, Altkirch
- Lorely Decina, lycée Louis Couffignal, Strasbourg
- Sonia Loewert, collège René Cassin, Cernay
- Joelle Pugin, Strasbourg, IA-IPR
- Marion Untereiner, lycée Marc Bloch, Bischheim
Nous avons décidé de travailler selon les axes suivants :
- Utiliser les algorithmes ou l'organigramme de programmation pour mieux comprendre les phénomènes enseignés en classe :
-> transformer des chaines logiques d'actions / réactions en un organigramme de programmation, interpréter sous la forme d'un algorithme les mécanismes biologiques...
- Modéliser un mécanisme, un phénomène sous la forme d'un code, d'un algorithme ou d'un schéma
-> créer un programme permettant de manipuler des données scientifiques
- Mesurer l'impact qu'apporte l'utilisation du codage dans l'acquisition des notions étudiées par les élèves.
-> bénéfices sur la compréhension, l'acquisition des notions disciplinaires et plus-value dans le cadre d'un enseignement transversal du code.
Cet article présente la synthèse de nos travaux. Tout au long de cette présentation, nous ferons référence à d'autres articles qui rentrent bien plus en détails dans l'analyse et la description des séances, ainsi que sur les retours élèves et enseignants. Les articles seront accessibles via des liens dans le texte ou repris à la fin de cet article.
Les fichiers utilisés lors des activités sont proposés par leurs auteurs dans leurs articles. Ils s'ouvrent avec le logiciel Scratch, disponible ici.
Modéliser un mécanisme, un phénomène sous la forme d'un code, d'un algorithme ou d'un schéma
Dès nos réunions préliminaires, nous avons pu imaginer les situations concrètes dans lesquelles nous voudrions engager nos élèves. Au collège, les travaux se concentreraient sur le contrôle du mouvement, sur le contrôle hormonal de la reproduction, sur les besoins des plantes pour leur développement et sur la thématique des énergies. Au lycée, les premières pistes d’exploitation portaient sur les planètes, sur le contrôle hormonal, le contrôle de la glycémie…
Nous avons commencé par un temps de prise en main de scratch pour créer et réaliser de A à Z les activités que nous proposions à nos élèves. C’était à la fois de l’autoformation et aussi une manière de bien appréhender les possibilités des outils et l’occasion de prendre du recul.
Aussi, les mêmes types d’activités ont été réalisés de plusieurs façons avec des codes ou approches différentes en fonction des professeurs et cette différence d’approche se retrouve aussi au niveau des élèves, pour lesquels nos solutions ne sont pas forcément les plus intuitives.
Nous avons aussi rapidement constaté la nécessité de créer différentes approches. Nous avons en général donné deux ou trois niveaux d’accessibilité à nos élèves : facile, intermédiaire ou difficile. C’est une démarche qui a été souvent reprise tout au long de l’année, permettant ainsi à chacun d’aborder l’exercice en fonction de ses compétences.
Concernant les exercices liés à la programmation, nous avons principalement utilisé Scratch. En collège, aux niveaux où nous réalisions les travaux (quatrième et troisième), nous n’avions pas vraiment à former les élèves, bénéficiant ainsi des enseignements de mathématiques et de technologie. Au lycée, les élèves de seconde sont censés maîtriser ces notions et des projets plus ambitieux incluant des langages de programmation comme le python peuvent être envisagés (en première ou terminale, l’hétérogénéité en seconde étant plus difficile à gérer).
Une première approche a consisté à faire faire de l’analyse de code aux élèves. Dans l’exemple sur les réserves de pétrole (version collège ou version lycée), l’élève doit, une fois l’objectif du programme clairement identifié, compléter les blocs manquants du programme.
Dans le niveau facile, il n'y a que deux données à recréer, au niveau intermédiaire, il manque une donnée par blocs et au niveau difficile, il faut en plus réordonner les blocs d’instructions.
Figure 1 : exemple d'un code de niveau intermédiaire avec intégration des consignes pour l'élève.
Dans la seconde approche, comme avec les exercices sur la commande nerveuse du mouvement (article lié), les élèves devaient analyser un bloc d’instruction donné en exemple et ensuite reconstruire totalement les instructions manquantes.
Il fallait créer une animation montrant la commande nerveuse d’un mouvement, après avoir au préalable étudié cette notion entièrement en classe. Cet exercice était donc une approche pour traduire de façon visuelle et animée un modèle étudié de façon figée sur le papier.
Figure 2 : animation que les élèves doivent reproduire.
Après l’étude d’un exemple de code donné par l'enseignant, l’élève devait compléter et repositionner les blocs suivants pour animer ainsi dans le bon ordre la séquence.
Dans cet exercice, des élèves ont cependant supprimé le code initial proposé par le professeur pour déclencher l’animation en introduisant sur chaque image une instruction du type « attendre X secondes puis montrer ». Cela montre qu’il existe bien plusieurs façons d’arriver au même résultat et que les élèves peuvent nous surprendre, mais aussi que ces différentes pistes sont autant de moyen, si on a un peu de recul sur le code utilisé, de travailler sur la construction du modèle (ici par exemple, nous pourrions amener l’élève à se poser la question si cette démarche reproduit fidèlement le mécanisme biologique).
Dans cet exercice, des élèves ont cependant supprimé le code initial proposé par le professeur pour déclencher l’animation en introduisant sur chaque image une instruction du type « attendre X secondes puis montrer ». Cela montre qu’il existe bien plusieurs façons d’arriver au même résultat et que les élèves peuvent nous surprendre, mais aussi que ces différentes pistes sont autant de moyen, si on a un peu de recul sur le code utilisé, de travailler sur la construction du modèle (ici par exemple, nous pourrions amener l’élève à se poser la question si cette démarche reproduit fidèlement le mécanisme biologique).
Dans un second temps, les élèves de quatrième ont fait d’autres travaux sous Scratch. Les bénéfices des séances précédentes sont alors ressentis, les élèves prenant en main plus rapidement les programmes et arrivant à l’objectif de la séance plus rapidement en général. Il a même été possible d’utiliser un mini programme créé par des élèves de quatrième sur les besoins liés à la croissance des plantes pour illustrer avec des sixièmes des analyses d’expérimentations sur le développement des végétaux.
Figure 3 : animation créée par les élèves de quatrième sur les besoins d'une plante.
En classe de seconde, Scratch est resté l'outil incontournable, suscitant l'enthousiasme de ceux qui le connaissaient déjà et permettant d'accrocher plus facilement la plupart de ceux qui n'avaient jamais codé. Au moment de mener ce traam, le python est encore trop peu abordé au lycée : plus de la moitié des élèves ignorent ce dont il s'agit (au 2nd trimestre).
Un premier travail a été mené sur une animation permettant de mettre en relation la fréquence ventilatoire, le volume courant et le débit ventilatoire. Le travail des élèves consistait à replacer les variables et leur a permis de visualiser l'effet de l'augmentation d'un des deux paramètres sur le débit ventilatoire.
Figure 4 : animation sur le débit ventilatoire.
Plus tard dans l'année, il a été possible de leur faire créer un programme dans son intégralité pour modéliser l'évolution des réserves de pétrole.
Toujours avec Scratch, mais intégrant les organigramme de programmation également, il a été proposé aussi une activité sur l'habitabilité d'une planète. L'approche suivi reste globalement la même : à partir de l'organigramme il fallait compléter ou créer un programme simple permettant à l'aide de quelques variables d'établir si une planète était potentiellement habitable ou non. Ici aussi différents niveau de difficultés : facile où seules les variables sont à intégrer, intermédiaire où un bloc concernant une variable est à compléter et sert de modèle pour créer les blocs suivants sur les autres variables à considérer et le niveau difficile où il fallait créer le programme dans son intégralité à partir de l'organigramme proposé.
Les retours des élèves varient en fonction de leur compréhension et de leur appétence pour ce type d’exercice. Il y a ceux qui tentent les versions difficiles sans complexes, alors qu’ils n’ont pas des profils de premier de la classe (et qui réussissent), ceux qui aiment l’aspect nouveau de l’exercice, et bien sûr ceux qui sont en difficulté et qui n’ont pas envie de refaire des maths.
Globalement, les élèves de collège ont du mal à donner du sens à ces exercices, tant ces éléments sont nouveaux. Dans un exercice sur le mouvement, avant de travailler réellement sur le script scratch, l’élève devait reconstituer la suite logique des éléments à mettre en place et, malgré cette étape intermédiaire, le but de l’exercice de modélisation sous scratch n’a pas bien été saisi, même par les bons élèves.
Les résultats sont plus probants au lycée puisque une partie des élèves a réussi à comprendre qu'un modèle peut être incomplet et qu'il est possible de le faire évoluer en y ajoutant de nouveaux paramètres. Le recours à la programmation a amélioré la compréhension de cette idée qui échappe à la majorité des élèves lorsqu'on la traite uniquement par le calcul.
Utiliser les algorithmes ou l'organigramme de programmation pour mieux comprendre les phénomènes enseignés en classe
Dans le même temps, nous avons assez rapidement développé les travaux sur les organigrammes de programmation. Cette logique de raisonnement nous est très familière dès lors que l’on veut structurer un raisonnement et il nous a été bien plus facile de la mettre en œuvre auprès de nos élèves, une fois les conventions d’écriture de base adoptées.
Notre postulat initial était que ces organigrammes pourraient aider les élèves ayant du mal à établir les relations de causes/conséquences en leur donnant une approche visuelle d’un ensemble de réactions et des liens qui les liaient. De plus cela permet de cibler les éventuelles difficultés de compréhension sur l'une ou l'autre étape du phénomène étudié ou de conforter les élèves plus à l'aise dans leur maîtrise de la notion abordée.
Figure 5 : exemple d'un organigramme travaillé en classe de quatrième.
En collège, l’approche s’est faite en deux temps, lors d'un travail sur l'apparition des caractères secondaires. Tout d’abord, nous avons présenté ce qu’est un organigramme avec un exemple très simple, basé sur l’étude d’un cas clinique. Ensuite, les élèves devaient construire des organigrammes simples avec l’étude d’autres cas, puis des organigrammes plus complexes mêlant différentes données. Une fois cette maîtrise acquise, l’organigramme final pouvait être utilisé ou créé, soit pour donner une seconde lecture aux conclusions du chapitre, soit pour découvrir des mécanismes avec la seule lecture de l’organigramme.
Au lycée, en classe de seconde, ce type de représentation a servi de point de départ à une activité de programmation. L'organigramme fut donné en amont comme récapitulatif de ce qui a été vu auparavant et permis de compléter et/ou de créer le programme attendu (cf. partie précédente).
En classe de Terminale cela a été testé notamment dans le cadre de la régulation de la glycémie en spécialité. Il s'agissait ici de faire le bilan de ce qui avait été étudié et compris préalablement chez l'être humain à partir de différents cas cliniques.
Figure 6 : exemple d'un organigramme utilisé dans la séquence sur la glycémie
L'apparente simplicité de représentation et l'efficacité de ce type de schéma est une alternative pour les élèves ayant du mal à synthétiser leur connaissances, même si certains préfèrent rester sur un schéma bilan plus "classique" avec représentation des organes impliqués et une représentation plus distincte des situations d'hyper- ou hypoglycémie.
L’approche par les organigrammes est très intuitive pour les élèves. Il y a un gain rapidement visible à travailler avec cette approche et un nouveau sens donné aux schémas bilans et aux mécanismes. Les élèves se sont même surpris à raisonner en langage algorithmique, à l’écrit ou à l’oral, en proposant des conditions (de type « si …. Ou si….. ») dans l’élaboration d’un protocole expérimental, en créant un algorithme au brouillon pour raisonner, alors même que l’organigramme n’était pas l’objectif du travail demandé et ce, quelque soit le niveau de l’élève.
Certains élèves ont même demandé à pouvoir répondre avec des organigrammes lors des devoirs ou ont d'eux même réalisé des organigrammes pour synthétiser un mécanisme ou un phénomène étudié plus tard dans l'année et l'ont utilisé pour leur révisions.
Analyse et conclusion
Il nous a finalement été difficile de mettre en place des évaluations comparatives pour mesurer les plus-values de nos travaux sur ce Traam. Cependant, nous avons intégré plusieurs exercices dans nos évaluations et ils n’ont pas posé de problèmes particuliers aux élèves. Les conclusions suivantes se basent donc principalement sur l’exploitation des travaux d’élèves en séance et sur notre expérience pédagogique sur l’analyse de ces séances.
Les retours précis sur les séquences sont disponibles dans les articles correspondants.
Traduire un mécanisme à travers un morceau de code, exploiter ou créer un code sous scratch, travailler avec les élèves sous python demande tout de même un certain niveau. S’il est vrai que l’on peut se baser sur les connaissances des élèves pour la lecture d’un programme sous scratch, l’exploitation des pré-acquis des mathématiques et de la technologie s’arrête là pour l’instant. De notre propre constat, les élèves n’ont pas encore assez de recul ni de maîtrise en collège de l’outil ou de la logique algorithmique pour pousser le raisonnement sans l’aide importante de l’enseignant. La maîtrise de la programmation par bloc au collège ou au lycée est encore trop inégale et si les bons élèves peuvent faire de l’autoformation (s’ils sont motivés !), les 2/3 de nos lycéens ne connaissent pas le langage python.
En lycée, tous les élèves ont déjà touché au code et pour autant ils n’ont pas d’appétence spéciale pour cette approche. Nous avons remarqué que les élèves ayant un bon niveau général étaient réceptifs et volontaires. Par contre, les élèves ayant plus de difficultés ou les classes moins dynamiques n’ont pas trouvé de motivation supplémentaire dans ces exercices, avec même parfois des cas d’élèves clairement réfractaires. Il n’y a donc pas d’effort positif systématique : des élèves avec des profils similaires, notamment vis-à-vis de difficultés, obtiennent des résultats très contrastés.
Du côté des enseignants, travailler sur des exercices sur le codage demande un travail réflexif plus ou moins conséquent pour pouvoir présenter à la classe deux ou trois versions différentes. Le travail de programmation en bloc est assez simple et la prise en main de scratch rapide et aisée. Pour autant, si cette approche simple est suffisante en collège, elle montrera assez vite ses limites au lycée et pour aller plus loin avec les élèves, la maîtrise d’un langage plus complexe sera indispensable. Et pour le coup, apprendre un langage de python demande du recul et une sacrée motivation personnelle, d’autant plus que pour exploiter ce type de langage de programmation en classe, il faut parfois s’accrocher tant la logique de certains élèves peut être déroutante.
Ce n’est pas du tout le même constat avec les travaux sur les organigrammes de programmation ou toute construction logique qui s’y apparente.
L’approche est très facile : nul besoin d’avoir des notions de code, cette approche est accessible à tous niveaux car chaque élève peut l’appréhender avec ses connaissances.
Et pour le coup, les bénéfices d’un travail sur les organigrammes sont rapidement visibles. Les effets sont positifs sur la structuration des mécanismes : une meilleure maîtrise des liens causes / conséquences, des effets positifs sur la compréhension et la mémorisation des notions (sur plus de 70 % d’une cohorte) et les élèves adoptent d’eux même ce type de raisonnement pour répondre à des exercices.
Travailler le raisonnement avec des organigrammes rapproche beaucoup de la logique du raisonnement scientifique : émettre des hypothèses, les confronter avec des causes / réactions / conséquences permet de travailler avec l’élève sur les étapes de son raisonnement. On peut utiliser l’organigramme complet pour que l’élève le décrypte : comme les notions d’actions, de conséquences et de conditions y sont décrites visuellement, il est plus facile pour l’élève d’identifier un élément déclencheur par exemple.
Les travaux menés cette année étaient fort intéressants, et la plus-value que nous en tirons est certaine, mais il faut tout de même relativiser la place du code dans notre enseignement de SVT. Nous pouvons montrer à nos élèves que le langage du code permet de programmer des modèles, que ces modèles varient en fonction de nos choix, et qu’il y a un gain à raisonner en conditions logiques (et ce sont des notions essentielles pour bien appréhender le monde de demain), mais nous pensons que ce n’est pas aux enseignants de SVT d’apprendre aux élèves à coder ou programmer ces modèles.
Nous avons essayé de nous former au python, nous avons analysé des séquences (sur la transcription de l’ARN par exemple) dans le but d’en faire des TP avec nos élèves, mais nous n’y avons pas donné suite. Nous n’avions pas le recul de leurs auteurs, nous n’aurions pas eu les capacités techniques de débloquer les élèves en difficultés et surtout nous aurions été dans l’incapacité de faire évoluer quelque soit peu le modèle proposé, sans parler d’en créer un nouveau pour une autre séquence.
Il faut aussi intégrer la dimension du temps dans l’analyse de ces travaux : nous n’avons pu mettre en œuvre toutes nos idées, car si la mise en place d’activités simples peut se révéler une plus-value, d’autres activités plus complexes se sont révélées extrêmement chronophages en raison du manque de maîtrise technique des élèves.
Il nous semble donc indispensable, pour pouvoir élaborer des activités plus complexes, de pouvoir mettre en place des enseignements transdisciplinaires pour profiter des apports des disciplines dont le code est une dominante de l’enseignement.
Liste complète des articles connexes à ce traam.
- Collège : Modéliser des expérimentations sur la nutrition des plantes
- Collège : Modéliser le développement embryonnaire / foetal
- Collège : Modéliser le schéma de la commande du mouvement
- Collège : Modéliser les réserves de pétrole
- Collège : Des organigrammes pour mieux comprendre le contrôle hormonal
- Lycée : Modéliser le débit ventilatoire
- Lycée : Modéliser les réserves de pétrole
- Lycée : Des organigrammes pour mieux comprendre la régulation de la glycémie
- Lycée : Des organigrammes pour mieux comprendre les conditions d'habitabilité d'une planète
Copyright © 2024 SVT - Académie de Strasbourg - Tous droits réservés
Joomla! est un Logiciel Libre diffusé sous licence GNU General Public