L’apprentissage de la programmation obligatoire à l’école, une bonne idée ?

Depuis quelques mois maintenant le débat est (re)lancé : doit-on apprendre à programmer aux enfants à l’école, dès le plus jeune âge ? Si la réponse à cette question est loin d’être évidente, c’est hier que s’est tenu un débat pour tenter d’apporter des éléments de réflexion autour de ce sujet, un débat organisé par Mozilla et Eyrolles et auquel j’ai pu moi-même assister, comme ceux qui me suivent sur Twitter ont pu le constater.

Dans cet article nous allons donc tenter de creuser un peu la question avec ce qu’il s’est dit lors de ce débat.

La programmation pour les enfants

De quoi parle-t-on exactement ?

On parle ici d’un projet de loi qui vise à rendre l’apprentissage de la programmation obligatoire à l’école. Ou plutôt du « code » s’il faut reprendre les termes exacts employés par le gouvernement.

L’ennui avec ce terme, c’est qu’il s’agit d’un anglicisme et qu’il n’est pas forcément très clair pour tout le monde : certains parents ont apparemment cru qu’il s’agissait d’apprendre le code de la route aux enfants, ou ce genre de choses.

Cependant, selon Claude Terosier, fondatrice de Magic Makers, une association qui anime des ateliers d’initiation à la programmation pour les enfants, le terme « coder » n’est pas si inutile que ça puisqu’il est (pour le moment tout du moins) moins « effrayant » que le terme « programmer » qui lui fait référence dans la tête de beaucoup à une pratique complexe et inutile.

À chacun son avis, mais que ce soit donc clair désormais : « coder » ou « programmer », ce n’est rien d’autre que la même chose !

Que vont apprendre les enfants, et à quel âge ?

Ce projet de loi a pour ambition de faire apprendre la programmation aux enfants dès le CE2 et le programme de ce niveau devrait donc être modifié en conséquence pour la rentrée 2016.

Si le jeune âge présente l’avantage d’être beaucoup plus apte à apprendre de nouvelles choses plus facilement, il pose une réelle question : que peut-on attendre d’un enfant quant à son niveau d’abstraction ? Est-il capable d’apprendre la programmation brute, avec sa syntaxe un peu trop rigide par moments ? Plus important : cela peut-il réellement l’intéresser ?

Difficile de se mettre à la place d’un enfant de huit ans, d’autant plus qu’ils sont bien entendu tous différents. Quoiqu’il en soit, les discussions semblent s’accorder sur le point suivant : pour intéresser ces chères têtes blondes, un langage clair et concret doit être utilisé, et c’est Scratch qui semble répondre à cette demande.

Pour ceux qui ne connaissent pas, Scratch est un langage inventé par le MIT. Disponible gratuitement pour tout le monde en ligne à cette adresse, Scratch a le bon goût d’être visuel : les instructions sont remplacées par des blocs que l’utilisateur doit positionner les uns à la suite des autres.

Scratch, ou l'apprentissage ludique de la programmation

Scratch, ou l’apprentissage ludique de la programmation

L’intérêt de Scracth n’est donc pas à proprement parler d’apprendre à programmer, avec les langages utilisés en pratique, mais plutôt d’apprendre la logique d’un programmeur : savoir enchaîner les instructions dans le bon sens, savoir réfléchir à un programme pour en déduire les instructions à implémenter, le tout sans avoir à se prendre la tête avec des oublis de points-virgules frustrants.

Cependant, contrairement à beaucoup d’autres matières comme les maths ou le français, l’apprentissage de la programmation pourrait également être laissé à la libre interprétation de l’enseignant qui pourrait choisir ses propres outils. Là encore, la question est épineuse et déborde principalement sur une autre : les enseignants ont-ils le recul nécessaire pour faire ce choix ?

Tout le monde développeur, est-ce si absurde ?

On entend souvent l’excuse suivante de ceux qui défendent ce projet de loi : il ne s’agit pas de faire de tous les enfants des futurs programmeurs. Et pourtant, l’idée est-elle si absurde que ça ? Une chose est sûre, la question a soulevé une belle discussion lors du débat.

Dans un monde de plus en plus informatisé, les programmes sont partout autour de nous, de l’ordinateur où ils sont le plus évidemment trouvables jusqu’à la machine à laver qui fait du bruit à l’heure où j’écris ces lignes. Aussi, la question à se poser est la suivante : savoir programmer un minimum n’est-il pas devenu nécessaire ?

Que la chose soit claire pour autant : il ne s’agit pas de faire de tout le monde un programmeur professionnel, dans le même esprit qu’apprendre aux enfants à écrire n’a pas pour vocation de faire de tout le monde un auteur de livres. Cependant, dans la société vers laquelle nous nous entraînons de plus en plus, la programmation semble devenir un moyen de s’exprimer comme un autre, alors pourquoi ne pas l’apprendre à tout le monde ?

Si tout le monde était initié à la programmation, ce sont également certaines erreurs du passé qui pourraient ne pas se reproduire, l’exemple d’Apple ayant été cité au cours de la discussion : en soi, les premiers ordinateurs de la marque à la pomme n’avaient rien d’extraterrestre et utilisaient les mêmes composants que les autres, la seule différence se situant au niveau marketing puisque Apple a su les vendre comme de toutes nouvelles machines qui n’avaient rien à voir avec la concurrence.

Si à ce moment-là le public avait une petite idée de ce qu’un ordinateur avait en lui, la réaction aurait-elle été la même ?

Apprendre la programmation aux enfants : une ambition pas si récente que ça

Apprendre la programmation aux enfants : une ambition pas si récente que ça

Dans la même idée, c’est l’analogie avec la voiture qui a été bien évidemment citée : on peut conduire une voiture sans pour autant savoir la réparer, alors à quoi bon savoir programmer pour utiliser un ordinateur ?

Si cette analogie est intéressante pour ceux qui sont contre la loi, elle n’en possède pas moins certaines limites : la comparaison ne tient pas aussi longtemps qu’on aimerait le croire.

En effet, après avoir réparé votre voiture, le mécanicien n’en revendique pas les droits, ce qui peut arriver dans le cas de la programmation. Donné par Gilles Dowek, chercheur à Inria, l’exemple des hôtels est très parlant.

Il consiste en effet à prendre en compte les sites de réservation qui sont arrivés alors que les hôtels eux-mêmes n’avaient pas su prendre les devants. Aujourd’hui, la majorité des gens passent par ces sites de réservation qui réclament alors une commission aux hôtels qui se retrouvent contraints à payer, sans quoi la clientèle viendrait à manquer. L’absurdité, c’est donc que l’hôtel en question dépend d’une application qui ne lui appartient pas, et que ceci ne serait peut-être pas arrivé si l’idée reçue de la programmation compliquée n’existait pas.

Et sans parler des « victimes » de la programmation, on peut également parler du cas des juristes qui eux doivent pondre des lois auxquelles ils ne comprennent rien s’ils ne sont pas initiés à la programmation. En travaillant main dans la main, les juristes et les programmeurs pourraient cependant éviter certaines erreurs, comme la très récente commise par l’application Gossip qui, en soi, n’avait rien d’illégal, mais qui représentait un risque pour son auteur : les ragots étant anonymes, ils tombaient sous sa responsabilité…

Les enfants sont-ils demandeurs ?

Avant même de forcer les enfants à apprendre la programmation, une question se pose : ceux-ci sont-ils demandeurs ? Sont-ils intéressés par ce domaine ?

Toujours selon Claure Terosier, la réponse serait positive, en prenant le bon angle : ces mêmes enfants sont habitués à jouer à des jeux sur ordinateurs et tablettes et se montrent intéressés dès qu’on leur dit qu’ils peuvent eux-mêmes créer ces jeux avec la programmation, de la même façon qu’ils peuvent créer leurs propres jeux avec des Lego par exemple.

Par ailleurs, l’apprentissage de la programmation n’est pas inutile dès qu’on réfléchit à différentes applications, même en dehors de l’informatique elle-même : savoir interpréter rapidement des données numériques obtenues à partir d’expériences physiques est important par exemple.

De même, la programmation peut également faire comprendre aux enfants certaines notions mathématiques très abstraites comme la convergence ou le nombre π. Si ce dernier est en effet difficile à appréhender, il est pourtant incontournable et, en permettant par exemple aux enfants d’en calculer quelques décimales, ils pourraient mieux le comprendre.

La question centrale : qui va enseigner ?

Mais la question principale qui a été plus ou moins évitée lors de ce débat (et c’est plutôt dommage), c’est la suivante : qui est capable d’enseigner la programmation dans le système scolaire actuel ? Le problème, c’est que la réponse semble être : personne.

Ni les profs de maths, ni ceux de technologie ne semblent correspondre au profil. Quant aux instituteurs, beaucoup ne comprennent pas l’intérêt de démarrer aussi tôt. Et pourtant, c’est à eux qu’il faut faire comprendre une chose : ce qu’ils enseignent, c’est ce qu’ils ont eux-mêmes appris étant enfants, et c’est bien pour cela qu’ils ont le recul nécessaire pour en parler aussi facilement.

La solution résiderait donc à créer de nouveaux postes ou à former les enseignants actuels, voire peut-être un mix des deux. Ce qui soulève bien évidemment une autre question : c’est intéressant, ça crée des emplois, mais qui va payer ?

L’idée est-elle si bonne que ça ?

De mon avis personnel, apprendre la programmation aux enfants est une très bonne idée… sous certaines conditions. Il est effectivement important de comprendre comment marche ce qu’on utilise, mais pas essentiel non plus, et des initiatives comme celle de Magic Makers proposant des initiations à plus petite échelle que celle de l’école, et surtout en dehors, me paraît plus raisonnable.

En effet, les enfants qui vont à ces cours sont intéressés, ou tout au moins curieux, et c’est ça qui est important dans la programmation : sans curiosité, ce ne serait qu’un apprentissage comme un autre… qui pourrait donc en dégoûter plus d’un (un peu comme les programmes actuels tendent de plus en plus à dégoûter les enfants des maths, mais c’est un autre sujet).