Depuis la rentrée 2016, la maîtrise des langages informatiques fait partie du nouveau socle commun de connaissances, de compétences et de culture défini par le ministère de l’Éducation nationale ; un « socle commun 2.0 », comme l’ont qualifié certains, qui prend, avec beaucoup de retard par rapport à d’autres pays [1], la mesure des mutations sociales, économiques et culturelles de la révolution numérique et de ses enjeux. Si l’informatique a pu être, par l’intermédiaire des technologies de l’information et de la communication, un medium d’apprentissage et un outil d’enseignement, elle en sera désormais un objet et ce, dès l’école primaire.
Les enfants, « natifs de l’ère numérique », selon la formule de Marc Prensky [2], ont un usage empirique et intuitif des outils numériques mais très peu en comprennent les principes de fonctionnement et en maîtrisent les langages. C’est en effet dans le domaine 1 du socle commun [3] qui concerne « les langages pour penser et communiquer » que sont abordées les connaissances et compétences informatiques que l’on exige désormais des élèves : savoir que « des langages informatiques sont utilisés pour programmer des outils numériques et réaliser des traitements automatiques de données », connaître « les principes de base de l’algorithmique et de la conception des programmes informatiques » et les mettre « en œuvre pour créer des applications simples ». Les langages informatiques sont, avec les langages mathématiques et scientifiques, un des quatre types de langage définis dans le socle commun, aux côtés de la langue française, des langues étrangères ou régionales et des langages des arts et du corps. Les langages informatiques détermineraient une nouvelle sorte de littératie, c’est-à-dire une nouvelle aptitude à comprendre et utiliser des informations codées dans la vie courante, et la non-maîtrise de ces langages représenterait une forme d’illettrisme.
« Programmer ou être programmé »
Pour Alex Hope, PDG de Double Negative, société spécialisée dans les effets spéciaux pour le cinéma, « le code » serait le latin du 21e siècle, autrement dit, pour ce que nous comprenons de cette métaphore, une langue parlée par une élite d’initiés à laquelle les « profanes », qui n’y comprennent rien, sont assujettis. Apprendre le code et savoir coder se présente dès lors comme un enjeu d’émancipation. De la même manière que la maîtrise du latin permettait d’accéder à des savoirs et des modes de pensée qui augmentaient l’effectivité d’un individu dans son environnement, la maîtrise du code permettrait de ne plus subir l’environnement, de plus en plus régi par des algorithmes et des programmes informatiques, propre au monde occidental et occidentalisé du 21e siècle, mais de le créer. La maîtrise du code, c’est ce qui fait d’un « natif numérique », qui baigne dans la technologie numérique, un « lettré numérique », c’est-à-dire quelqu’un qui ne se contente pas d’utiliser les machines (un consommateur d’applications, aussi averti soit-il) mais qui « parle », qui commande aux machines (un concepteur d’applications) [4]. C’est la vision quelque peu binaire qu’exprime Douglas Rushkoff dans son ouvrage Les Dix Commandements de l’ère numérique (Éditions FYP, 2012) : « Program or be programmed », « programmer ou être programmé », est l’alternative sans échappatoire formulée dans le titre original, alternative qui peut se résumer à « créer ou consommer ». Utiliser des outils numériques sans en comprendre a minima les mécanismes équivaudrait à subir un environnement dont les paramètres ont été définis par d’autres. Car les interfaces machine/utilisateur sont des univers conçus par d’autres personnes selon une logique qui nous est étrangère mais qui façonne les modalités de notre rapport au monde. En déterminant nos rapports à notre environnement, les programmes déterminent en nous des façons particulières de penser. En cela, les outils numériques ont le même destin que tous les outils inventés par les humains, et notamment l’écriture et l’imprimerie, comme le souligne Douglas Rushkoff, celui d’agir sur leur environnement en le créant par le texte (les lignes de code) et, ainsi, de modeler leur esprit.
La pensée computationnelle
Selon Steve Jobs, cofondateur de la société Apple, apprendre à programmer permettrait d’apprendre à penser mais nous ajouterons « d’une certaine manière » car, heureusement, la rationalité algorithmique n’épuise pas la rationalité humaine. La programmation informatique est une des nombreuses formes d’expression de la pensée humaine ; elle procède d’une façon (pas si nouvelle, contrairement à ce que l’on prétend) de penser et de raisonner qu’on nomme la « pensée computationnelle ». Selon la définition du mathématicien et informaticien Seymour Papert, la pensée computationnelle est le processus intellectuel impliqué dans la formulation de problèmes dont la résolution peut être effectuée par un agent de traitement de l’information (une machine en l’occurrence). Tous les problèmes qui se posent à un être humain (des plus abstraits comme des conjectures mathématiques aux plus concrets comme les prises de décision politiques) ne peuvent être résolus par une méthode « effective » ou algorithmique. Néanmoins, la programmation est une façon très ludique et stimulante d’exercer sa pensée qu’on ne devrait ni bouder ni imposer [5]. Elle nous permet d’appréhender certains processus cognitifs et de saisir tout l’implicite de nos raisonnements. L’implicite, toléré en mathématiques où les cerveaux humains comblent dans le silence de la pensée les ellipses des implications triviales, est proscrit en informatique. Car si toutes les étapes du processus de production d’un résultat ne sont pas explicites, la machine ne « tournera » pas. La programmation permet aussi d’appréhender des concepts mathématiques de manière très intuitive. Des fonctions aussi simples que les fonctions arithmétiques peuvent apparaître sous un nouveau jour quand on s’essaye à les programmer ; l’algorithme permet de les observer comme « de l’intérieur », dans leur principe même. Par ailleurs, la programmation nous offre une nouvelle perspective sur la question de la syntaxe d’un langage. Si vos enfants aiment déroger aux règles grammaticales du français, ils s’apercevront que les langages informatiques ne sont pas résilients à l’approximation et l’ambiguïté syntaxiques. En informatique, le plus petit écart grammatical vous empêche de vous faire comprendre par la machine. Les langues dites naturelles ne sont pas aussi rigides mais cela permet de réfléchir au lien entre syntaxe et sémantique. Enfin, la programmation est un moyen d’exprimer et de tester ses idées : on peut ainsi s’amuser à coder une idée pour voir où elle peut nous mener, un peu comme un compositeur qui griffonnerait quelques notes sur une partition ou un poète quelques vers sur un cahier pour tester leurs idées de sonorités.
La programmation est une activité instructive et créative à plus d’un égard. Il est évident que les compétences computationnelles sont très recherchées dans l’univers pavé d’algorithmes qui semble être notre horizon ; d’où la mue numérique de bon nombre de systèmes éducatifs dans le monde, toujours prompts à détecter et satisfaire les besoins de l’industrie. Mais de là à être « tous codeurs ! » Sommes-nous réellement réduits à « programmer ou être programmés » ? En sommes-nous vraiment là ? N’y-a-t-il rien au-delà de cette alternative ? Et si nous ne voulions pas de cet univers algorithmique ? Pouvons-nous survivre en tant que « illettré numérique » ? Je l’évoquais dans un autre article à propos de l’écriture (« Faut-il lire (et aimer lire) ? ») : c’est la place démesurée accordée à un outil qui disqualifie celui qui ne le maîtrise pas. Et plutôt que de vouloir façonner tous les enfants dans le même moule, que ce soit celui de la pensée et du langage de l’écrit ou ceux du numérique, ne vaut-il pas mieux favoriser l’expression de la plus grande diversité de modes d’appréhension du réel ? D’autant plus qu’est forte la probabilité que cette injonction au savoir coder, gravée en dur dans les programmes scolaires, génère des « âne-alphabètes [6] » numériques, qui connaissent le code du langage (écrit, mathématique ou informatique), le déchiffrent, l’appliquent mécaniquement mais n’y comprennent rien. Et alors il faudra s’attendre à l’apparition d’un nouveau syndrome, une nouvelle « médicalisation » de l’échec scolaire : la dysnumérie.
1 – L’informatique est étudiée en classe dans la majorité des länder allemands depuis plus de quinze ans.
2 – From digital natives to digital wisdom : Hopeful essays for 21st century learning, Corwin Press Inc (2012).
3 – https://www.education.gouv.fr/pid285/bulletin_officiel.html?cid_bo=87834#socle_commun
4 – On ne peut s’empêcher ici de penser à la trilogie Matrix, films réalisés par les désormais sœurs Wachowski, où les « concepteurs » ne sont même plus des humains mais des machines et où les humains ne sont plus des utilisateurs mais des « utilisés », métaphore cyberpunk de la servitude totale.
5 – Il existe de nombreux langages créés spécialement pour les enfants. Scratch est le plus diffusé mais les 6-10 ans peuvent commencer à bidouiller sur Squeeze, Logo ou Alice, les 10-15 ans sur Phrogram ou GreenFoot, les adolescents peuvent approfondir sur les langages habituellement utilisés par les adultes comme Python, C, C++ ou Java.
6 – L’expression de Gérard Louviot, reprise par Jean-Pierre Lepri dans son Lire se livre (Éditions Myriadis, 2016), est initialement appliquée aux enfants qui lisent sans comprendre.
0 commentaire