Bandeau
APMEP Île-de-France
de la maternelle à l’université

Site de la Régionale APMEP Île-de-France

Initiation au langage Python en classe de 4e
Article mis en ligne le 19 mars 2018
dernière modification le 13 mars 2018

par Germain Roussas

Avant l’expérience Python

Je suis en charge de deux classes de 4e, plutôt enthousiastes à l’idée d’utiliser l’outil informatique, le niveau général est très hétérogène. Quelques séances ont été faites pour introduire l’algorithmique dont une activité d’introduction composée de jeux de rôle permettant de comprendre l’importance de l’ordre et de la précision lors de la production d’une séquence d’instructions permettant de résoudre un problème, ainsi que l’importance d’organiser ses notes sur sa feuille pour que ça puisse fonctionner.

Modifier un bout de code pour en saisir l’intérêt

La salle informatique étant libre, je prends la décision de “soulager” la permanence de mon établissement en initiant quelques élèves de 4e au “code” . Trois élèves sont volontaires.

Un d’entre-eux a déjà une expérience en html, les deux autres découvrent le code bien qu’ils soient déjà familiers avec code.org. Ils s’installent sur un poste informatique, je leur propose une activité publiée par l’académie de Poitiers où on trouve quelques idées pour apprendre le langage Python aux élève de collège. Cette première activité est un bout de code permettant d’afficher une boule rouge et de la déplacer à l’aide des touches du clavier.

La première consigne qui leur est donnée est de copier le code permettant l’affichage de la boule rouge. Les élèves le font et remarquent assez rapidement que les touches ne leur permettent pas de la déplacer convenablement.

Je leur donne ensuite les deux autres consignes :

  • Modifier le code pour qu’un utilisateur puisse déplacer facilement le disque rouge
  • Agrandir, réduire et déformer le disque rouge
  • Expliquer comment l’agrandissement ou la réduction de la portion de plan contenant l’ellipse rouge fonctionne.

L’étape d’interprétation de l’erreur du code prend entre cinq et dix minutes, ils se rendent compte qu’ils reconnaissent certains mots anglais et n’osent dans un premier temps pas modifier puis recompiler.

Après quelques incitations, les élèves modifient et compilent le code à plusieurs reprises jusqu’à la correction complète du bug (une quinzaine de minutes a été nécessaire pour venir à bout du problème).

Le reste de la séance, les élèves modifient la taille, la couleur de la balle puis utilisent le navigateur pour chercher comment nommer les couleurs et comment fonctionne la partie du code qui les intéresse pour répondre à la consigne.

J’ai trouvé cette expérience intéressante en ce qui concerne la gestion de l’erreur. Les élèves sont obligés d’accepter de se tromper pour résoudre le problème et comprendre ce qui ne fonctionne pas dans le programme, ils doivent extraire l’information qui peut les intéresser et admettre qu’ils ne comprendront pas tout de suite certaines parties du code.

L’erreur du professeur

Lors de la première séance, le logiciel Pyzo (Environnement de Développement Intégré EDI ou IDE) n’étant pas installé sur la plupart des postes, on se connecte sur un interpréteur en ligne tel que repl.it pour présenter à l’ensemble de la classe cet IDE en ligne que nous allons utiliser en classe puis j’en profite pour écrire devant eux un premier programme incluant la fonction print() permettant d’afficher du texte et un calcul avec la variable a et son stockage dans une autre autre appelée b.

Leur premier programme doit utiliser ce modèle :

a=0
b=a*2-7
print(b)

J’effectue un autre essai et demande aux élèves, pourquoi le résultat stocké dans a s’affiche alors que j’ai demandé d’afficher b.

a=728+9
b=a
print(b)

Je leur demande d’écrire un autre programme utilisant le fait de stocker le calcul effectué avec une variable dans une autre.

En essayant de leur donner une correction, une message d’erreur s’affiche (b n’étant pas défini), on essaie d’en trouver la cause, les élèves doivent corriger le programme pour qu’il puisse fonctionner.

a=728+9
a=b
print(b)

La suite de cette première séance consiste en l’inscription sur le site de l’association France-IOI ; pour ceux qui ne le connaissent pas, il a été créé par l’association France-IOI il permet d’inscrire nos élèves à plusieurs concours d’informatique et comporte des énigmes et exercices permettant de s’entraîner.

France-IOI, des énoncés et des énigmes

Les élèves s’inscrivent, ce qui est un peu laborieux mais formateur pour eux, en effet ils deviennent familiers du smartphone mais pas toujours du clavier PC : écrire les majuscules, caractères spéciaux et nombres est souvent une étape difficile. De plus, la notion “d’identité numérique” est encore floue pour beaucoup et noter convenablement ses identifiants et mots de passe et les conserver est aussi une étape à franchir.

1re séance : rigueur de la syntaxe et recherche des erreurs

Lors de la 1ere séance, nous sommes en co-animation (deux enseignants pour une classe entière). On s’intéresse plus particulièrement à la section “cours et problèmes” du site.

Une fois inscrits, les élèves doivent écrire le traditionnel premier programme qui se contente d’afficher la phrase “Hello Word !” : ils ont une histoire à lire avec une consigne et une explication amenant à l’écriture d’un programme résolvant un problème. Lorsque leur programme est écrit, ils le soumettent à la validation (ce qui peut être parfois long selon la qualité de la connexion) puis le corrigent ou passent à la suite s’ils ont terminé.

L’outil est intéressant pour les élèves car ils sont formés au respect d’une syntaxe, ainsi, la première séance est difficile car cette seule ligne de code est difficile à valider si les élèves ne prêtent pas attention aux guillemets permettant d’afficher une chaîne de caractères et aux parenthèses de la fonction print().

Les élèves s’initient à la lecture d’un message d’erreur, ce qui constitue un feedback supplémentaire une fois qu’ils réussissent à l’interpréter. Lorsqu’ils sont bloqués, nous passons les aider ; ces aides sont de moins en moins demandées au fur et à mesure qu’ils avancent dans l’écriture des programmes car les élèves acquièrent au fur et à mesure certains réflexes leur permettant de gagner en autonomie : maîtrise du clavier, vérification de la syntaxe, relecture de l’énoncé, aller chercher les autres camarades pour demander une aide.

Étant donné qu’ils sont en binômes, nous revenons avec eux sur l’importance de la lecture de la consigne de départ, en général, il y en a un sur les deux qui persiste. Les élèves peuvent difficilement avancer s’ils ne font pas cet effort. De plus mes classes sont en général mises en difficulté par la lecture et l’interprétation du texte. Les mettre face à cette situation a été très intéressant et formateur pour eux comme pour nous.

Les séances suivantes : diverses énigmes

Lors des séances suivantes, l’avancée des élèves est plus fluide et les énigmes deviennent ludiques, ils doivent toujours coder mais, cette fois-ci, pour déplacer un robot (pour aller chercher une clé sans qu’il tombe), résoudre le problème des Tours de Hanoï, résoudre un problème de transvasement de tonneaux…

Certains élèves se sont même posés la question de l’optimalité pour l’énigme des Tours de Hanoï et ce ne sont pas toujours les plus brillants en mathématiques.

Ces problèmes sont assez jubilatoires, et les élèves, une fois qu’ils en ont compris l’enjeu, restent littéralement “accros ” et osent effectuer des tentatives, en abandonnant parfois l’écran pour découper des feuilles de papier ou écrire pour résoudre, en aidant, ou parfois, en narguant les groupes plus lents.

Le site propose une interface de suivi des élèves, ce qui nous permet de voir à quel rythme les élèves travaillent au fur et à mesure des séances et d’en garder une trace.

Conclusion

L’expérience sur le site France-IOI n’est pas encore terminée pour nous, mais les séances étaient très riches et ont permis de proposer une autre approche de l’algorithmique. Les élèves connaissent déjà le site code.org et la programmation visuelle avec Scratch, nous avons donc souhaité leur proposer autre chose. Nous sommes convaincus de l’alternative et avons décidé d’abandonner nos polycopiés d’introduction au profit de cette expérience en ligne.

Le fait d’écrire du code les motive car ils ont aussi l’impression d’imiter certains adultes ; certains voient leur parents, des techniciens extérieurs ou des personnages dans des séries télévisées coder et la maîtrise d’un outil utilisé par les “grands” est stimulant.

Pour nous, c’était formateur car nous nous posons de nouvelles questions sur les problèmes techniques ou didactiques liés à l’introduction de l’enseignement d’un langage de programmation dans le cadre d’un cours de mathématiques au collège.

 

article suivant



retour au sommaire

Les Chantiers de Pédagogie Mathématique n°176 mars 2018
La Régionale Île-de-France APMEP, 26 rue Duméril, 75013 PARIS