Jean-Yves Labouche a élaboré des activités débranchées ou branchées pour un meilleur apprentissage de la programmation en Collège et une transition plus aisée vers Python en Lycée.
par Jean-Yves Labouche
Jean-Yves Labouche est professeur au Lycée français de Taipei (Taïwan)
Voir cet autre article de Jean-Yves Labouche dans MathémaTICE
Je voudrais présenter ici des activités d’algorithmique pour tous les niveaux du collège que je partage sur mon site et la réflexion pédagogique à l’arrière-plan de leur élaboration. Qu’il s’agisse de flashcards, d’activités branchées ou débranchées ou de véritables problèmes de programmation, ces activités ont été pensées pour répondre à des besoins et des problèmes que j’ai rencontrés dans mes pratiques.
Alors, évidemment, tout cela est loin d’être parfait : comme beaucoup de collègues, avant la réforme du collège de 2016, je n’avais jamais entendu parler de Scratch et je partais de zéro. Ce que je propose ici, c’est le fruit de mes expériences avec mes élèves et de mes réflexions ; je serais ravi que ce soit l’occasion d’ouvrir des discussions sur ce qui doit ou ne doit pas être fait au collège en termes de programmation et d’algorithmique et du temps qu’il faut y consacrer (c’est vrai, mes élèves y passent du temps, peut-être trop).
Les cartes auto-correctives débranchées (6e et cycle 4)
J’ai commencé par créer un jeu de cartes pour les 6e puis, plus récemment, un nouveau jeu pour le cycle 4. J’ai commencé ce travail après une série de constats que voici :
- Face à un écran d’ordinateur, avec Scratch, les distractions sont nombreuses. Certains élèves préfèrent changer la couleur de l’arrière-plan, dessiner un masque au petit chat ou, carrément, aller lire les dernières infos sportives sur la toile. Bien sûr, cela ne concerne qu’une minorité d’élèves, mais sur une séance de travail de 40 ou 50 minutes, quel est le temps réellement passé à réfléchir au programme à réaliser ? Je voulais trouver des activités durant lesquelles les élèves pourraient se concentrer vraiment sur la structure des programmes en limitant les distractions.
- Nous demandons aux élèves d’écrire des programmes, mais en ont-ils déjà vu ? Si oui, combien ? Nos élèves, au collège, ne sont pas familiarisés avec des programmes. Savoir qu’il y a une initialisation (variables, position), une fin, des structures qui reviennent régulièrement, ça s’apprend en « lisant » de nombreux programmes qui pourront servir de modèles. Je recherchais donc des activités qui permettraient aux élèves d’être en contact avec de nombreux programmes.
- L’abus de la méthode essai/erreur est également un écueil que j’ai souvent observé. Évidemment elle fait partie intégrante des plaisirs de l’algorithmique : constater que le programme ne réalise pas ce que l’on souhaite et pouvoir tester des modifications, en mathématiques cela n’arrive jamais (ou presque) ! Et je ne conteste pas, au contraire, ses bienfaits dans les apprentissages. Mais certains élèves, en difficulté, en arrivent à tester tout et n’importe quoi pour finalement arriver à une solution qu’ils ne comprennent et ne maîtrisent pas. Alors bien sûr, une activité bien préparée et bien guidée devrait permettre d’éviter d’en arriver là, mais le constat est tout de même bien réel.
- Une difficulté également rencontrée lors du travail sur poste informatique est le manque d’autonomie des élèves. Du fait de difficultés avec le langage, de mauvaise compréhension des consignes ou pour d’autres raisons, il n’est pas rare d’avoir plusieurs élèves qui lèvent la main en même temps et qui s’impatientent, car « dépanner » un élève peut parfois prendre du temps.
- Un autre constat est la difficulté de faire travailler en groupe les élèves lors de séances informatiques. On peut envisager de mettre deux élèves par poste, pas plus, mais dans ce cas, il y a souvent des groupes dans lesquels un élève monopolise la souris.
- Certains collègues pourraient certainement ajouter la difficulté d’accéder au matériel informatique qui oblige de travailler en mode « débranché ». J’ai la chance de ne pas avoir ce problème dans mon établissement actuel : tous les élèves sont équipés d’un Chromebook.
Pour répondre à ces constats, j’ai commencé par créer un premier jeu de cartes auto-correctives (3 séries de 10 cartes chacune). Le principe est simple : au recto, un programme qui permet de dessiner une figure géométrique. Les élèves, en groupe de deux ou seuls, doivent tracer cette figure sur le document réponse et vérifient leur travail avec la correction qui est au verso.
Je l’ai créé pour mes élèves de 6e et les thèmes abordés sont les déplacements, les boucles (« Répéter ») et les variables. Trouvant le principe efficace en classe (des élèves actifs et des apprentissages effectifs), je me suis lancé dans un projet plus ambitieux pour le cycle 4, sur le même principe de flashcards.
Cette fois, ce sont 6 séries de 20 cartes chacune avec plus de thèmes abordés (les tests conditionnels, les boucles « répéter jusqu’à », les fonctions - en plus des thèmes déjà abordés avec le premier jeu). L’idée est de pouvoir l’utiliser pendant tout le cycle 4 : deux séries par niveaux me semble être un bon dosage. Là encore le principe est simple : les programmes donnés codent les déplacements sur un « plateau » constitué de cases colorées dont il faut noter la couleur à des moments précis du déplacement.
La prise en main rapide de ces activités par les élèves et les résultats obtenus en termes d’apprentissages, la différenciation qu’elles permettent (tous les élèves ne travaillent pas sur le même nombre de cartes) m’encouragent à continuer à les utiliser de façon régulière.
Les cartes « Challenge de dessin » (branchées)
Dans le même temps, il était également important de faire programmer les élèves sur ordinateur. Mais là encore, je souhaitais réellement favoriser le travail en autonomie afin d’être plus disponible pour les élèves en difficulté. Pour cela, j’ai réalisé une nouvelle série de 24 cartes auto-correctives : cette fois, c’est le dessin à obtenir qui est donné et les élèves doivent réaliser un programme sur Scratch qui permettra d’obtenir exactement le même dessin. Le recto de la carte donne le dessin et des blocs à utiliser et, sur le verso, une correction est proposée. Les dessins à réaliser figurent également sur l’arrière-plan des fichiers Scratch sur lesquels les élèves travaillent : les tracés de leurs programmes doivent se superposer exactement à ces modèles donnés. Ce qui fait que les cartes ne sont pas indispensables pour les élèves suffisamment à l’aise : ils ont à l’écran le travail à réaliser.
Là encore, les résultats sont positifs et, en 6e et 5e, je fais travailler la moitié des élèves sur ces exercices pendant que l’autre moitié travaille en débranché sur les premières séries de cartes. On permute à mi-séance.
Vers une algorithmique plus élaborée
Bien évidemment, on ne peut pas limiter la programmation au collège à la réalisation de figures géométriques. Les exercices répétitifs que sont les flashcards présentées ci-dessus ont leurs avantages pour acquérir des automatismes et intégrer quelques schémas de programmes, mais ne peuvent suffire à l’enseignement de la programmation au collège. Commencer à résoudre des problèmes grâce à un programme informatique peut se faire, de façon guidée, au cycle 4.
C’est dans cette optique que j’ai conçu une série d’activités variées (25 pour le moment) : déterminer si un nombre est un palindrome, déterminer si un nombre est premier et retrouver la liste de ses diviseurs, déterminer une valeur approchée de π par la méthode de Monte-Carlo ou avec la formule de Wallis, ranger des nombres dans l’ordre croissant…
Les premières activités de cette série portent sur les programmes de calculs et sur l’utilisation de nouveaux blocs (« modulo », « plancher », « plafond », « longueur de », « lettre de » …). Viennent ensuite ces activités plus complexes, mais aussi bien plus passionnantes d’un point de vue de la programmation et des raisonnements qu’elles nécessitent. Chaque fiche d’activité suit le même plan : présentation du problème, structure du programme à réaliser, tous les blocs à utiliser et un approfondissement pour les plus rapides. Il s’agit ici de travaux guidés et très encadrés, certains programmes étant complexes pour des collégiens, bien au-delà de ce qu’on leur demandera lors de l’épreuve de DNB, mais assez proches de ce qu’ils auront à réaliser au lycée avec Python.
Ce dernier point me parait capital : enseignant également en classe de seconde, il me parait évident que la difficulté du passage de Scratch à Python n’est pas dans le langage, mais dans la maîtrise de certaines structures. Les élèves qui ont parfaitement compris les notions de boucles ou de répétitions au collège n’ont que très peu de difficultés à basculer en Python. D’un autre côté, ceux qui ont des problèmes de compréhension de ces structures avec Scratch n’arriveront qu’après beaucoup d’efforts à les utiliser sur Python. Il me semble donc indispensable de « pousser » les élèves dans le domaine de la programmation au collège, comme il nous revient de le faire dans les autres domaines de notre enseignement, pour les préparer au lycée. Ce panel d’outils que je viens de présenter et que je mets à disposition de tous sur mon site, même s’il est loin d’être parfait et même s’il est à compléter par d’autres activités, est un bon moyen, il me semble, d’y parvenir.
Les liens vers les activités présentées :