Proposer des activités reposant sur le codage (Python) dans le cadre de l’enseignement des SVT

par Philippe Cosentino

Présentation du contexte

Travaillant dans un lycée où l’enseignement du numérique occupe une place importante, je me retrouve couramment face à des élèves ayant choisi des enseignements d’exploration tels qu’ICN, SI ou CIT.

Ces élèves montrant une appétence particulière pour la programmation, et à l’inverse des a priori plutôt négatifs concernant les SVT (la plupart de ces élèves ne comptent pas poursuivre les SVT en classe de première), je me suis donné pour objectif de leur montrer que ces deux disciplines pouvaient en réalité se combiner de manière heureuse. Je souhaitais également que cette approche n’impacte pas le déroulement des séances de travaux pratiques (centrés sur l’étude du réel, l’expérimentation etc.).

J’ai donc pris la décision de proposer aux élèves volontaires, des activités de programmation (codage) en lien direct avec la séance de TP, à réaliser sur leur temps libre (à la maison, au CDI, en étude …). 

J’ai laissé également le choix entre deux langages de programmation : Scratch et Python.

 

Diffusion des consignes et des sujets

A la fin de chaque séance de TP, le sujet et les consignes associées sont reportées dans Pronote, en tant que devoir maison facultatif.

 

Récupération des travaux

L’élève m’envoie son travail via son ENT (Atrium dans notre lycée). Il lui suffit de “copier/coller” son code source.

J’exécute alors le programme à mon domicile, et je réponds directement à l’élève pour lui donner mes impressions, mes conseils, mes suggestions.

 

Evaluation des travaux

Tout travail remis, même imparfait, est l’objet d’une (modeste) bonification sur la moyenne. Je m’assure par un rapide entretien oral avec l’élève qu’il n’a pas triché (récupéré la solution sur internet, demandé à un camarade ou parent de faire le travail à sa place …) ce qui est relativement aisé (un élève qui triche est incapable de justifier son code).

L’idée est de valoriser l’implication, du coup j’encourage les élèves à essayer, et à me rendre leur travail même s’il ne fonctionne pas.

 

Bilan de cette expérimentation pédagogique

Au départ les élèves étaient très “frileux” à l’idée de réaliser des travaux supplémentaires facultatifs. D’une part, ils ont tendance à surestimer la difficulté de la programmation, et d’autre part ils avaient peur d’être “jugés” négativement. Je n’ai pas eu de mal à les rassurer sur ces deux points, mais pendant 3 semaines seuls 2 ou 3 élèves par classe relevaient le défi. A présent une dizaine d’élèves jouent le jeu dans chaque classe.

Concernant l’impact sur mon enseignement des SVT, j’ai très rapidement remarqué que l’ambiance s’était améliorée, certains élèves, en difficulté avec certaines compétences mises en oeuvre en SVT, se sentent valorisés sur d’autres compétences, voire fiers de me montrer leurs dernières productions numériques (ce qui change également leur rapport à l’enseignant).

Extrait d’une production d’élève

Leur vision de la matière a également changé. J’insiste dès que je le peux sur ce que l’informatique peut apporter à la résolution des problèmes biologiques, et je leur parle de domaines ou la programmation est étroitement imbriquée avec la biologie, notamment en bioinformatique (alignement de séquences de nucléotides) ou avec la géologie (planétologie). Certains envisagent même de prendre des combinaisons de spécialités en classe de première telles que SVT/Maths/Numérique !

 

Perspectives

Avec la réforme des programmes, il est possible que les enseignants de SVT soient davantage sollicités à intégrer des activités de codage ou d’algorithmique dans leur enseignement.

De plus, certains enseignants de SVT se sont portés volontaires pour assurer l’enseignement de SNT (Sciences numériques et technologie) en classe de 2de.

Il me semble donc utile de partager ce type d’expérimentation, ainsi que les exemples de sujets donnés aux élèves) voir à la fin de l’article.

Enfin, je tiens à rappeler qu’il ne s’agit pas de substituer le codage à l’expérimentation sur le réel, mais bien d’utiliser cet outil au même titre que le calcul, la lecture d’une carte ou la schématisation. Il n’est pas plus incongru de demander à un élève d’écrire un programme pour résoudre un problème (par exemple transcrire une séquence d’ADN en ARN) que de lui demander d’utiliser de la trigonométrie pour déterminer un angle en géologie.

 

Annexes : quelques exemples de sujets donnés aux élèves

Activité donnée lors de la séance de TP “La Terre, une planète du système solaire”.

Ecrire en Python ou en Scratch, le programme affichant à l’écran les 8 planètes du système solaire à l’échelle de votre choix.
– L’échelle doit être respectée pour les diamètres, pas pour les distances
– Les cercles seront affichés côte à côte (même disposition qu’en TP)
– Seuls les cercles (ou disques au choix) sont attendus, mais des légendes ou annotations seront les bienvenues .

 

Activité donnée lors de la séance “Les conditions de la vie (la zone d’habitabilité)”.

Ecrire en Python ou en Scratch un programme modélisant l’évolution de la température en fonction de la distance au soleil

L’objectif est d’arriver à

(niveau de difficulté moyen)
– Tracer à l’échelle les orbites (sans les planètes) des planètes jusqu’à Mars
– Colorer chaque orbite de façon à les distinguer :

o En gris Mercure
o En jaune Vénus
o En bleu la Terre
o En rouge Mars

(niveau de difficulté difficile)
– Faire en sorte que lorsqu’on survole, ou lorsqu’on clique sur le modèle, la température théorique (pour une planète d’albédo 0,35) apparaît à l’écran

Vous pourrez vous inspirer de cette page qui donne le même résultat (avec quelques fonctionnalités en plus comme un zoom), ainsi que la formule à utiliser :
https://www.pedagogie.ac-nice.fr/svt/productions/systeme-solaire/comptemper.htm

Aides :

– Vous pouvez vous limiter à la partie “facile”
– Pour déterminer la distance au soleil en pixels, il suffit d’utiliser le théorème de Pythagore. Vous disposez en effet des coordonnées x et y du centre de votre système ainsi que des coordonnées x et y du clic.
– Une fois la distance en pixels obtenue, il suffit de diviser par la distance Terre/Soleil (toujours en pixels) pour avoir la distance en UA (unités astronomiques). 1 UA = la distance Terre/Soleil.
–  Il suffit alors d’appliquer la formule donnée sur le site, avec un albédo de 0,35.

 

Activité donnée lors du TP “métabolisme des levures”.

Ecrire le programme en Python ou en Scratch qui simule la croissance d’une population de levure au cours du temps
– le récipient sera schématisé par un carré
– chaque levure est représentée par un point

– le nombre de cellules est affiché en bas de l’écran
– au départ une seule levure
– chaque seconde le nombre de levures double

Activité donnée lors du TP “structure et composition de l’ADN”.

Ecrire le programme en Python qui demande à l’utilisateur la séquence d’un brin d’ADN et affiche la séquence complémentaire.

Par exemple, si l’utilisateur saisit la séquence suivante :

TATCGATACAAT

le programme doit afficher

ATAGCTATGTTA

Activité donnée lors du TP “mutations”

Ecrire le programme en Python qui :

. génère une séquence aléatoire de 20 nucléotides

. affiche cette séquence (horizontalement)

. modifie aléatoirement un nucléotide

. affiche la séquence modifiée (mutée)