Première programmation

Petit réseau de train automatisé

Je vois régulièrement passer diverses initiatives pour apprendre aux enfants à programmer, s’il est un peu tôt pour que je m’y intéresse sérieusement, cela me force à me poser la question comment est-ce que j’ai appris moi même. Force est de constater que je n’ai pas appris les bases sur un ordinateur, mais avec des relais électro-mécaniques, sur le chemin de fer miniature. Ce n’était pas de la programmation per se, mais de l’automatisation…

L’exemple le plus simple d’une telle automatisation est une boucle avec une voie d’évitement, avec deux cantons de voie isolée, deux trains et deux senseurs. Un relais bistable bascule le courant d’un canton isolé sur l’autre. Un train roule dans une direction, entre dans un canton isolé, touche le contact qui active le relais, et bascule l’alimentation sur l’autre canton, l’autre train part en sens inverse, fait un tour, revient sur son canton, touche le contact qui active le relais dans l’autre sens, et ainsi de suite.

Présenté de manière informelle¹, voici les états (j’ai omis les transitions que sont les passages d’aiguillages). Rien de complexe, mais il y a là une petit logique implémentée avec un relais, et un petit réseau de train miniature, le genre de chose qu’un enfant peut appréhender.

Les machines à état sont limitées, mais c’est un modèle qui suffisait à implémenter bien des automates à l’époque. Je me demande parfois si un des problèmes de l’enseignement informatique vient du fait qu’on veuille passer à la machine de Turing trop rapidement…

¹J’utilise dans ce billet le formalisme dit du «faites pas chier c’est samedi soir».

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.