Étiquettes

, , ,

Code à l’école… Y’aura ?

Y’aura ? Y’aura pas ?

Y’aura ? Y’aura pas ?

Suite à l’annonce de la ministre de l’Education, Najat Vallaud-Belkacem, et de la secrétaire d’Etat chargée du numérique, Axelle Lemaire, lors de la Code Week, y’aura !

Le débat a fait rage. Tant de questions se posant en effet. D’ailleurs, qu’est-ce que le code ? De quel code parle-t-on ? Le flou artistique dans lequel on se trouve ne pouvait qu’alimenter le débat et échauffer les esprits. J’avoue que je suis sciemment resté loin de toutes ces questions mais le Do It Yourself Day à Châlon sur Saone m’a permis lors de l’échange avec le public de poser le cadre dans lequel je me situe (ce pourquoi je tiens à remercier Monsieur Christian de Thy et Nicéphore Cité). La question posée était en effet pourquoi apprendre à programmer ?

Pourquoi apprendre à programmer ??? On pourrait se contenter de répondre de manière logique : « pour savoir programmer ». Certes… C’est une chose. Mais C’est en fait tout ce qui gravite autour qui pose véritablement l’intérêt du code.

Tentez d’inscrire un enfant à un sport de combat (judo, karaté, lutte, boxe…) et aucun entraîneur ne vous dira que l’objectif est de permettre d’exploser tout agresseur potentiel. On vous parlera confiance en soi, maîtrise de soi, respect, connaissance de son corps… À la fin de la formation, l’enfant sera en effet en mesure de se défendre mais il aura appris bien plus que cela. C’est exactement la même chose pour le code.

Julien Dorra évoquait à table lors du Do It Yourself Day un nouveau langage, un nouveau mode d’expression et je le rejoins tout à fait sur ce point.

Apprendre à programmer, à coder, c’est bel et bien apprendre un outil, un langage. D’ailleurs, le premier exercice que l’on fait dans n’importe quel langage de programmation, tout comme pour une langue, n’est-il pas d’apprendre à dire bonjour ? Une page Wikipedia recense d’ailleurs toutes les manières de dire « Hello World » dans plusieurs dizaines de langages informatiques.

C’est là où l’on voit bien toute la difficulté de définir ce qu’est le code. De quel code parle-t-on ? Scratch, PHP, Python, Processing, Perl, Ruby, Cobol, Rebol, Pascal, Basic, Brainfuck…? Le choix du langage est extrêmement varié et je l’ai avoué sincèrement lorsqu’une personne du public m’a posé la question : effectivement, lorsque l’on me dit « code », j’ai plus en tête l’image de mon terminal, d’un éditeur de texte et de lignes de commandes que toute autre chose. Je pense sincèrement que dans la tête d’une grande majorité de personnes c’est la même chose. Le terme « code » est austère et cache trop bien sa magie. Cette image n’a été que trop alimentée par des films prétendant mettre en scène des « hackers » ou par des reporters en mal de sensations fortes pour le journal de 13h ou les grandes enquêtes « inédites » du soir.

C’est cette même image qui trop souvent fait dire que Scratch c’est pour les enfants et uniquement pour les enfants. Ok… Je mets au défi n’importe quel adulte ayant un niveau de débutant de faire un programme comme celui-ci ou celui-là en quelques heures d’apprentissage. Non, Scratch n’est pas que pour les enfants car, s’il simplifie énormément la phase de conception, il n’en rend pas moins bien réelle la phase de conceptualisation et l’algorithmie.

Premier point positif donc de l’apprentissage du code : savoir conceptualiser, réfléchir à un ensemble d’actions qui, mises bout à bout, vont devenir un réel programme. Ce n’est pas rien et il ne s’agit pas d’apprendre pour apprendre. Hier, nous dessinions des rosaces en utilisant un peu de maths, un peu de géométrie, un peu de mouvement et un soupçon de hasard au collège Albert Samain de Roubaix. Je vous laisse imaginer mon sourire quand j’entends « M’sieur ! Venez voir ! C’est trop bien ce que j’ai fait ». « C’est trop bien »… Apprendre en s’amusant. Apprendre sans se rendre compte que l’on apprend.

Bruno Rives me déclarait récemment sur Facebook que l’Apple II l’avait sauvé lorsque je faisais moi-même mon « coming-out numérique » en avouant que l’Amstrad CPC 6128, sa communauté et plus tard le réseau m’avaient sauvé. J’apprenais sans apprendre. Ce que l’on m’apprenait, je le faisais vivre à l’écran. J’écrivais à l’aide mon clavier, je dialoguais en anglais avec mon ordinateur (print, gosub, goto…), je réalisais les notions les plus diverses sous forme de petits programmes, j’avais un objectif… Je me souviens de ce dialogue épique entre mon professeur de mathématiques et moi-même en première littéraire à propos des suites. Au bout de la quatrième explication sans compréhension, j’osais poser la question : « est-ce que cela va me servir à quelque chose dans la vie ? » – « Non, pas vraiment. » – « Ok, désolé. je préfère qu’on s’arrête là. » Je ne comprenais rien de rien au niveau 0 des suites et pourtant je me suis rendu compte quelques années plus tard que je faisais des suites sans le savoir en niveau 10 environ en réalisant de petits programmes de cryptographie.

Je pourrais en raconter plein des anecdotes de ce type, ne serait-ce qu’avec les enfants, les collégiens avec lesquels je collabore tout au long de l’année mais c’est cela que je voudrais mettre en avant. Programmer pour apprendre à programmer, NON ! Programmer pour apprendre à programmer, comprendre la transversalité, se réapproprier la technologie, gagner en confiance, développer de nouvelles capacités, apprendre à vivre ensemble, à partager ses connaissances… OUI !

J’espère, je croise fortement les doigts pour que l’on n’enferme pas le code dans un programme classique genre leçon 1, leçon 2… Ce n’est pas du code cela. Je ne pense pas élaborer un cliché en déclarant que la plupart de ceux qui ont appris à coder, quel que soit le langage, sont partis d’un besoin, d’une envie et ont appris les petits bouts qui leur étaient nécessaires, un peu comme si l’on apprenait dans un dictionnaire le vocabulaire de base, puis que l’on étendait au reste des mots en fonction de nos besoins. Imaginez vous commencer le dictionnaire à la lettre A et ne pouvoir découvrir qui se cache derrière Zarathoustra, où se trouve Zanzibar ou ce qu’est un zèbre qu’une fois après avoir avalé l’ensemble des autres lettres. Il y a de quoi avoir peur. Ne transformons pas le code en cela.

De même, souvenons-nous des origines, ce ne sont que des 0 et des 1, On – Off, des interrupteurs qui nous renvoient à l’électronique. N’enfermons pas le code dans le code. Entourons-le de cartes Makey Makey, de Littlebits en mode Do It Yourself (j’y reviendrai), de cartes Arduino. Ne résumons pas le code à un écran. La diversité de ce Do It Yourself Day à Chalon sur Saone en atteste…