La logique du feu tricolore : enseigner les automates à états à des enfants de 10 ans

Un feu tricolore est le premier automate à états idéal : chaque couleur est un état, chaque changement une transition, et la temporisation décide du moment de passer à la suite. Construisez le cycle fixe, puis ajoutez un bouton.
Un feu tricolore est le meilleur premier automate à états qu'un enfant puisse construire, parce qu'un enfant de dix ans en connaît déjà toutes les règles par cœur. Chaque couleur est un état, chaque changement est une transition, et la temporisation n'est que le temps d'attente de la machine avant de passer à la suite. Nommez ces trois éléments à voix haute et le code s'écrit presque tout seul.
Les trois mots qui débloquent tout
Un automate à états est une façon de décrire quelque chose qui ne peut se trouver que dans une seule situation à la fois. Un feu tricolore est soit rouge, soit vert, soit orange. Il n'est jamais deux à la fois, et il suit toujours le même chemin. Cette règle unique en fait un outil pédagogique d'une grande netteté.
Dessinez-le au tableau sous forme de trois cercles reliés par des flèches. Les cercles sont les états. Les flèches sont les transitions. Demandez à la classe à quel moment chaque flèche doit se déclencher, et vous avez déjà décrit tout le programme avant d'écrire la moindre ligne.
Construisez d'abord le cycle fixe
Commencez par la version la plus simple : rouge pendant cinq secondes, vert pendant cinq secondes, orange pendant deux, puis retour au rouge, indéfiniment. Un seul feu est allumé à un instant donné. Cette contrainte est la leçon. Si deux feux s'allument ensemble, la machine est dans un état impossible, et les enfants repèrent vite cette erreur.
Vous pouvez réaliser cela avec trois LED sur une plaque d'essai, avec les voyants intégrés de la carte sheenbot∞, ou entièrement dans le navigateur avec l'éditeur de blocs quand il n'y a pas de matériel dans la salle. Le câblage change ; le diagramme d'états, non.
Ajoutez le bouton piéton
Rendons les choses intéressantes. Un bouton piéton est un événement, et les événements sont précisément ce qui donne aux automates à états l'avantage sur une simple boucle temporisée. Quand quelqu'un appuie sur le bouton pendant le vert, le feu ne doit pas basculer d'un coup au rouge. Il doit finir son tour, passer à l'orange, puis au rouge, et y rester un peu plus longtemps pour qu'une personne puisse traverser.
Cela enseigne deux idées à la fois. D'abord, une transition peut être déclenchée par un événement autant que par un minuteur. Ensuite, certaines transitions sont conditionnées : l'appui ne compte que tant que le feu est vert. Un automate à états pour enfants bâti autour d'un feu tricolore est en réalité une leçon sur le moment où une règle s'applique, et pas seulement sur ce que dit la règle.
Pourquoi ce motif est partout
Dès qu'un enfant sait voir les états et les transitions dans un feu tricolore, il commence à en trouver partout. Un four à micro-ondes est à l'arrêt, en cuisson ou en pause. Un personnage de jeu est debout, en course ou en saut, et ne peut pas faire deux choses à la fois. Les distributeurs automatiques, les portes d'ascenseur et les messages que les appareils s'échangent reposent tous sur la même forme. C'est l'une des rares idées de l'informatique qu'un enfant de dix ans et un ingénieur en exercice dessinent exactement de la même manière.
Un plan de séance de 40 minutes
- Dessinez ensemble le diagramme à trois états avant de toucher au moindre code, environ cinq minutes.
- Programmez le cycle fixe rouge-vert-orange et faites-le tourner jusqu'à ce que la temporisation vous convienne.
- Allumez délibérément deux feux à la fois pour que la classe voie un état impossible.
- Ajoutez le bouton piéton et décidez, collectivement, à quel moment exactement l'appui doit compter.
- Terminez en nommant trois machines de la maison qui fonctionnent de la même façon.
Le projet entier tient dans une séance et ne demande presque aucun vocabulaire nouveau. Si vous voulez une version clé en main avec fiches d'exercices, elle figure dans notre programme de robotique, et vous pouvez d'abord tester un cours grâce à une séance d'essai gratuite.



