Faut-il enseigner « le code » à l’école ?

En octobre 2014, le Conseil National du Numérique a publié un rapport sur le numérique et l’éducation dont la traduction médiatique et politique a principalement tourné autour de la proposition d’enseigner la programmation à l’école, sujet qui m’a évidemment intéressé, étant fils de professeurs, formateur à mes heures, et professionnel de l’informatique. Ma première réaction, épidermique, a été de rejeter l’idée d’emblée, surtout en écoutant les débats médiatiques menés par des ignorants à la fois des questions éducatives et de la discipline informatique, qui en général considéraient qu’il était nécessaire de connaître la programmation pour évoluer dans la société de l’information. Comme si il fallait savoir construire une centrale nucléaire pour utiliser le courant électrique… Après réflexion, et documentation sur la façon dont cette idée était présentée dans le rapport – toujours lire les rapports ! – mon avis a évolué tel que je vais vous le présenter ici.

Le contenu du rapport

Je ne vais pas résumer tout le rapport ; je me limiterai à décrire succinctement ses différentes parties et préciser ce qui tourne autour de l’enseignement de l’informatique per se.

Loin de se limiter à l’apprentissage de la programmation, ce rapport analyse tous les aspects de la relation qu’entretiennent le système éducatif et les outils et disciplines informatiques : non seulement l’utilisation du numérique à l’école pour lui-même et l’apprentissage de la discipline informatique, mais aussi l’utilisation du numérique pour les autres matières, ainsi qu’une éducation plus générale aux outils numériques que pourront rencontrer les élèves dans leur vie, les transformations que ces outils amènent dans la vie de tous les jours et la citoyenneté. Il fait un plaidoyer assez convaincant pour une intégration en profondeur du mode de pensée informatique dans le processus d’apprentissage des élèves, en précisant les prérequis et le chemin d’une telle transformation réussie.

A propos de la discipline informatique elle-même, j’ai été très heureux de lire que la proposition n’était pas de l’introduire par le petit bout de la programmation, mais par l’initiation à la pensée informatique, en primaire et – comble de joie – en mode connecté ou non (cf recommendation 1, page 29 du rapport).

La suite des opérations se passe au collège où le cours de technologie serait consacré une année à l’informatique, a priori en troisième, où l’on enseignerait des rudiments d’algorithmique et, en tant qu’application, de la programmation.

Enfin, l’informatique serait reprise au lycée dans toutes les sections, avec un approfondissement des notions déjà abordées au collège, en fonction des spécificités de la filière choisie par l’élève.

On est loin du simple « enseigner le code » relayé publiquement ; je reviendrai sur les raisons qui à mon avis ont amené à cette simplification, mais continuons par un retour dans les années 80.

La tortue et l’enfant

Je me souviens avec acuité qu’en CE2 nous étions partis par petits groupes dans une autre école afin d’y utiliser des ordinateurs. Nous avions déjà à la maison un TI99/4A que nous avions principalement utilisé avec mes frères pour jouer, même si nous étions parfois tombés sur le prompt Basic – sans trop savoir au premier abord à quoi il pouvait bien servir. Les ordinateurs de l’école étaient des Thomson MO5 et TO7 à claviers à gomme – quelle plaie ! – mis en réseau avec un Bull Micral 30 – que contrôlait la maîtresse – muni d’une imprimante à aiguille.

La principale utilisation de ces ordinateurs qui nous fut proposée – en dehors de programmation Basic extrêmement guidée, nous n’avions que 8 ans quand même – était de piloter la tortue ; le principe était de dessiner à l’aide d’une bestiole virtuelle à qui nous donnions des ordres simples comme avancer de x pixels, tourner de y degrés, changer la couleur etc. Ces ordres étaient exprimés en français courant, voici un exemple pour réaliser un carré :

POUR CARRE
REPETE 4 [AVANCE 100 TOURNEDROITE 90]
FIN

J’étais assez frustré de découvrir un outil que je connaissais pas, alors que j’avais annoncé avec fierté avoir un ordinateur à la maison et donc de bien savoir comment ça marchait, mais je me suis vite pris au jeu, réalisant plusieurs polygones réguliers et des rosaces, que j’avais déjà l’habitude de dessiner avec mon compas quand je finissais en classe mes exercices de mathématiques en avance. Et me voilà 30 ans plus tard directeur technique d’un éditeur de logiciels…

Au delà de l’aspect nostalgique, l’intérêt de cette expérience est de mettre en exergue ce que peut être une initiation réussie à la programmation : programmer, ce n’est que donner des ordres à un ordinateur ; en choisissant un domaine qui plait naturellement aux enfants, dessiner, et en limitant les ordres possibles à des primitives simples, l’enfant comprend très rapidement ce qu’est ordinateur – un esclave numérique, ce qu’il sait faire – répéter sans se fatiguer ni se lasser et à grande vitesse des listes d’instruction, et comment le faire – en parlant avec lui dans son langage.

Pour ceux que ça intéresse, la tortue est toujours disponible sur des plateformes récentes : http://www.yann.com/fr/apprendre-la-programmation-aux-enfants-avec-le-langage-logo-17/09/2010.html

Objectifs pédagogiques

Grosso modo, une matière peut s’enseigner pour deux raisons : soit elle dispense des savoirs immédiatement opérationnels, soit elle aide à la construction de l’esprit, les deux pouvant se combiner. Certains savoirs sont tellement fondamentaux que tous doivent les apprendre, comme la lecture, l’écriture, les 4 opérations et la règle de trois ; certains restent du domaine de la professionnalisation, comme de savoir faire correctement une piqûre pour un infirmier ou de dupliquer une clé pour un serrurier. Le latin est très peu opérationnel dans le monde moderne, mais sa capacité à structurer l’esprit et à aider à l’apprentissage du français ne sont plus à prouver. Dans quelles catégories tombe l’informatique ?

Si on se limite à la programmation, il est très tentant de ranger l’informatique dans les savoirs professionnels ; c’est à de très rares exceptions près le cas aujourd’hui, avec le très dommageable effet secondaire que même dans les études professionnelles, son enseignement est exclusivement utilitariste – un très bon sujet pour un futur article. Mais comme vous le savez si vous avez lu mes articles précédents, l’informatique est une science, avec un objet et des méthodes définies qui lui sont uniques ; sans même plonger dans une analyse poussée de la question, il est donc certain que son enseignement aide l’esprit à se structurer comme tout autre champ de la connaissance, si tant est qu’on l’enseigne comme une science et pas comme une technique. C’est ce dont parle le rapport du Conseil National du Numérique sous le vocable de « pensée informatique ».

Une des caractéristiques fondamentales de cette pensée informatique est la numérisation du réel afin de le rendre intelligible et exploitable par les ordinateurs ; cette numérisation a pour corollaire une très forte pression à la désambiguïsation qui peut aboutir à une standardisation de la pensée. Par exemple, quand vous commencez à saisir une requête dans un moteur de recherche, un système de suggestion va vous indiquer des compléments possibles ; vous fait-il gagner du temps, ou oriente-t-il votre pensée et votre désir ? Sachant que ces compléments proviennent d’études statistiques sur les requêtes les plus souvent lancées, je tendrais plutôt vers la deuxième option ; or, quoi de plus important dans la formation d’un futur citoyen que l’apprentissage de l’esprit critique et du libre-arbitre ?

Dans le même ordre d’idées, afin de réaliser ses traitements, l’ordinateur a besoin de données normalisées, et c’est à l’être humain qui l’alimente d’effectuer cette normalisation ; il est alors lui-même un objet informatique, puisqu’il fait partie de facto de la chaîne de traitement de l’information. Nos enfants peuvent rester des Monsieur Jourdain de l’informatique, mais étant donnée son ubiquité aujourd’hui, ce savoir ne peut qu’apparaître fondamental.

Voilà le genre de méthodes propres à la pensée informatique que les enfants doivent maîtriser pour se mouvoir dans la société numérique. Et ce n’est pas en programmant qu’ils l’apprendront – la plupart des programmeurs professionnels que je rencontre ne sont pas eux-mêmes conscients de ces questions !

Conclusion

Ma réponse courte à la question initiale est non ; si c’est pour retrouver à l’école la même approche utilitariste que je constate dans les formations professionnelles, mieux vaut ne pas perdre le temps de tout le système éducatif. Il est d’ailleurs tout à fait éclairant sur l’état de la réflexion sur l’école en France aujourd’hui que la réponse politique à ce rapport brillant et complet ait été d’en extraire le seul aspect purement utilitariste en oubliant tous les aspects pédagogiques et émancipateurs ; pour résumer ce que j’ai entendu, et j’ai bien tendu l’oreille, la petite musique était « apprenons le code le plus tôt possible à nos enfants, et nous damerons le pion aux américains et aux indiens dans la compétition numérique ». Si seulement.

Ma réponse longue, développée ci-dessus, est oui, si on applique scrupuleusement ce qui est développé dans le rapport : une initiation à la pensée informatique à l’école, sur le modèle de la tortue par exemple, mais d’autres initiatives très intéressantes existent comme « Computer science unplugged » (l’informatique débranchée), un approfondissement au collège avec de l’algorithmique simple et de la programmation en application, et une version plus avancée au lycée. Les professeurs suivront-ils, comme ma maîtresse avait su le faire à l’époque ? Les parents, ignorants de ces sujets, en comprendront-ils l’intérêt ? Les politiques, qui paraissent aujourd’hui mépriser ce qui construit l’esprit pour y préférer un utilitarisme de court terme, auront-ils la présence d’esprit de suivre le rapport à la lettre ?

3 réflexions au sujet de « Faut-il enseigner « le code » à l’école ? »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *