Avant de plonger tête la première dans la pratique, j’aime prendre le temps avec les élèves de définir ce qu’est la programmation. On se fait parfois des idées, comme pour l’utilisation des téléphones par exemple : on pourrait penser que les élèves ont nativement des aptitudes dans ces domaines. Si certains élèves sont particulièrement bien informés sur le sujet, la plupart ont plutôt des connaissances limitées. En ouvrant la discussion, on se rend bien souvent compte d’ailleurs que certains de leurs concepts sont tronqués ou erronés.

Prendre le temps de découvrir ce qu’est la programmation est donc une étape importante dans le processus d’apprentissage. Pour ma part, j’aime jouer avec un équilibre entre les connaissances et les compétences.

Mise en situation

Pour cette séance, j’ai préparé un diaporama sur lequel je me base pour lancer la réflexion (voir plus bas). Mon idée de départ n’est pas très originale : pour faire comprendre le principe aux élèves, quoi de plus efficace que de les transformer en robot.

Je propose donc aux élèves de prendre deux rôles au choix : celui de robot ou celui de programmeur. Bien sûr, ils peuvent intervertir les rôles à tout moment. La situation est très simple : le robot doit s’emparer d’une balle (représenté par une boulette de feuille récupérée dans la poubelle à papier) et la lancer sur une cible un peu plus loin. J’illustre la chose avec l’image d’un joueur de basket dans mon diaporama. Les élèves comprennent très vite donc qu’ils vont devoir donner des ordres dans un ordre précis (j’aime insister sur la redondance de cette phrase lorsqu’on l’énonce : des ordres dans l’ordre).

La façon de mener cette séquence dépend du temps disponible. Comme je suis référent numérique, je passe dans d’autres classes pour la réaliser et je dois m’adapter au contexte posé par le titulaire. Je n’ai parfois que 50 minutes pour boucler toute la leçon. L’idéal est que les élèves disposent d’un temps de réflexion où ils peuvent indiquer leurs ordres par écrit. L’enseignant jette un oeil attentif à ce que les élèves écrivent : il peut alors stopper la réflexion quelques secondes pour relancer les élèves sur la bonne voie.

À tous les coups, les élèves écrivent ce genre de choses :

  • Prends la balle
  • Lance la balle

Tout le talent de l’enseignant sera de faire comprendre que le robot n’est pas en mesure d’exécuter ces ordres : parce que ces ordres font appel en fait à plusieurs autres actions. Pour cela, il ne faut pas hésiter à prendre un élève volontaire qui jouera le robot. Une fois la réflexion recentrée, les élèves continuent leur travail individuel.

Après le temps de réflexion, on peut faire jouer ces espèces de saynètes par les élèves où chacun prend le rôle de programmeur et de robot. L’enseignant peut relever les écrits et les placer sur la table d’observation. Ensemble, on réfléchi à la meilleure façon de donner des ordres.

Au final, on se rend compte qu’il faut souvent utiliser des termes mathématiques. Dans cette mise en situation l’utilisation des degrés est très importante : tourner de 180° par exemple.

Je dispose d’un bras robotisé imprimé à l’aide d’une imprimante 3D. Ce bras est une excellente représentation de la mise en situation proposée aux élèves. En fin de réflexion, je peux donc présenter ce bras, afficher le code et le mettre en route. Certes, le code n’est pas complètement compréhensible par les élèves, mais il est court est on y voit très facilement les différents angles qui correspondent à chaque mouvement du robot.

Voici une vidéo du bras en question :

Au moment où j’écris l’article, j’ai trouvé une photo peu flatteuse de mon robot. Je vous la partage, pour vous montrer que j’ai placé le robot sur une planche sur laquelle j’ai indiqué les différents angles.

Je possède également une imprimante 3D que je compte un jour placé dans mon local. C’est évidemment une excellente illustration de tout cela…

Définition du concept

Après cette mise en situation, j’invite les élèves à répondre à la question suivante : qu’est-ce que la programmation ? Les interventions de chacun permettent d’arriver à une définition assez fine du concept. Un tableau permet de noter les différentes propositions des élèves. Cette mise en commun finie, je peux alors lancer une vidéo qui fonctionne très bien auprès des élèves : en effet, le langage adopté leur parle bien et les explications sont claires. Je projette la vidéo avec les notes du tableau à côté. Je peux alors facilement montrer certains éléments partagés au moment où il en parle dans la vidéo.

Vocabulaire

La vidéo nous permet d’amener certains mots spécifiques :

  • Programmer
  • Exécuter
  • Algorithme
  • Instructions
  • Opérations

Nou prenons le temps d’associer les mots des élèves avec les notes qui ont été écrites précédemment sur le tableau.

Langage de programmation

Il n’est évidemment pas question ici d’apprendre l’un ou l’autre langage. Cette partie est destinée à mettre en lumière le fait que pour écrire un programme, il faut utiliser un langage de programmation. Nous observons un exemple comme celui-ci :

Ce bout de code en Java permet aux élèves de rapidement comprendre que les langages de programmation ont des codes spécifiques, comme un langage oral :

  • Une grammaire
  • Des ponctuation
  • Une mise en page
  • Et même des couleurs.

Comme évoqué dans la vidéo précédente, je trouve utile d’expliquer aux élèves que le langage de programmation n’est pas le langage que pratique les machines. D’ailleurs, le code binaire est intéressant à aborder également lors d’une séance de math : finalement, ce n’est que la transposition de la base 10 de notre abaque dans une autre base.

Comme une image vaut parfois mille mots, je présente évidemment un exemple de langage machine :

Un peu d’histoire

Ada est une des premières théoriciennes de l’informatique. Une des premières à avoir parlé de programme avant même que l’ordinateur n’existe. Quand on pense informatique et programmation, on s’imagine souvent un homme enfermé dans une chambre avec un écran montrant des messages obscurs et verts. Pourtant, les femmes sont autant capables que les hommes de programmer. J’aime beaucoup aborder cette étape. Les élèves découvrent qu’une femme a été une pionnière de l’informatique :

  • à une époque où les ordinateurs n’existaient pas
  • dans un monde masculin, ce qui lui a valu d’être dénigrée alors qu’elle était tellement en avance sur son temps.

Pour leur permettre de découvrir la vie de cette théoricienne, je me sers d’une vidéo réalisée avec la technique du stop motion. C’est un rappel d’un projet que nous avons réalisé auparavant (lien).

Les étapes d’un projet informatique

Lorsque j’ai imaginé cette séquence, je pensais que cette partie ne serait pas si compliquée à aborder. En effet, les élèves ont finalement l’habitude de travailler en projet. Si la programmation a quelques étapes spécifiques, la plupart du cheminement correspond à toute démarche de construction de projet. Ce ne fut pas si simple. Les élèves se braquaient sur l’écriture du code : ils ne pouvaient concevoir qu’au départ le projet peut se construire uniquement avec l’esprit et pas les machines.

Pour me sortir de ce mauvais pas, un élève m’a proposé de jouer une carte à laquelle je n’avais pas pensé : la réalisation d’un jeu vidéo. Au nom de Minecraft ou Fortnite, les yeux hagards se sont illuminés comme des sapins de Noël. Ce fut tout de suite beaucoup plus simple. Ils se sont mis à la place d’un concepteur de jeux et les idées se sont déversées en flux continu.

Pour la synthèse, voyez plus bas les documents que je partage.

J’ai trouvé intéressant de parler de l’impact des erreurs de programmation. Comme notre société fonctionne de plus en plus grâce aux outils numériques, il me semble que cette réflexion est importante. On peut donc demander quels impacts pourraient avoir une erreur de programmation dans la vie des gens. Il s’agit plus d’une discussion ouverte que d’un objectif précis de la leçon.

Je leur présente deux exemples :

Bien que la grande majorité des bugs soient de nature plutôt bénigne, quelques-uns ont eu des conséquences catastrophiques.

Dans les années 1980, un bug dans le code qui contrôlait les appareils de radiothérapie Therac-25 a ainsi entrainé la mort de plusieurs patients en provoquant une irradiation massive.

Le 4 juin 1996, le vol inaugural du lanceur européen Ariane 5 a explosé en vol seulement 36,7 secondes après son décollage en raison d’une erreur logicielle de son système de guidage embarqué.

Pour finir, ils aiment bien la petite histoire sur l’origine du mot “bug”. Je leur explique évidemment que cette informations n’est pas vérifiée, mais que c’est la légende qui circule :

Les problèmes rencontrés sont appelés des bugs. Bug est un mot anglais qui signifie « insecte ».

Le premier bug est attribué selon la légende à un insecte introduit dans une machine, en l’occurrence un papillon de nuit, dans l’un des relais électromagnétiques du calculateur Mark II de l’université de Harvard. Grace Hopper, un des programmeurs du Mark II, raconte ainsi dans un carnet un incident survenu le 9 septembre 1947, où un papillon de 5 cm aurait été trouvé dans le relai n° 70.

Documents

Comme souvent, je vous partage les documents que j’ai réalisés pour cette leçon. Vous trouvez des feuilles de synthèse de cette présentation et le diaporama que j’utilise pendant l’animation. J’ai commencé la création de ces documents avec mon site Master Robot. Si les documents contiennent du contenu propriétaire que je dois enlever (images), n’hésitez pas à me le signaler.

Pour le diaporama, j’y ai inséré les vidéos en utilisant un module complémentaire. À voir si elles s’afficheront de votre côté.