Pourquoi apprendre à coder tôt à l’école?

Pour stimuler une conversation avec plusieurs amis et professionnels “branchés” que j’admire, j’ai récemment posé cette simple question sur mon compte Facebook.

“Tu commences l’année fort avec ta question!” (Stéphane Hamel) 😉

Alors, pourquoi l’avoir posé? En fait, c’est une combinaison de facteurs. 

Le déclencheur

Bernard Prince me partage souvent avec enthousiasme et fierté comment l’apprentissage du codage avec Scratch transforme ses deux fils en développant de nouvelles compétences et leur esprit de collaboration.  

C’est en clavardant avec lui plus récemment que m’est venu l’idée de comprendre le potentiel et les véritables enjeux liés à l’apprentissage du codage tôt chez les enfants.

La programmation orientée objets favorise l’apprentissage de manière plus visuelle, empirique et intuitive que le Fortran avec ses cartes perforées.  Toutefois, quelles habiletés à court, moyen et long terme les enfants peuvent-ils développer en codant?

Papy branché et soucieux

À ce jour, je suis le fier grand-papa de trois magnifiques petites-filles.  Je suis inquiet de l’écosystème G.P.S. (Gens – Processus – Systèmes) d’enseignement que nos écoles leurs offriront très bientôt.

Je suis inquiet par la lenteur et la façon avec lesquelles la commission scolaire régionale et les directions d’écoles intègrent le numérique au cœur de leur planification stratégique. Je suis surtout inquiet par l’absence de curiosité active à compenser leur analphabétisme numérique et leur ignorance des meilleures pratiques pour les exploiter.

Être confus et ne pas savoir où et comment naviguer est une chose.  Ne pas vouloir le savoir ou intégrer des outils à l’aveugle sans maîtriser leur valeur pédagogique est nettement plus inquiétant.  Je ne suis sûrement pas le seul parent ou grand-parent “branché” inquiet.

Les grands-parents “branchés” ont-ils un rôle à jouer dans notre système d’enseignement?

Afin de savoir si des grands-parents pouvaient apporter une contribution dans son orientation, j’ai récemment été invité à assister à une rencontre de parents de la Commission Scolaire Des Chênes.  Wow, quel bel accueil j’ai eu droit.  Animé par une présidente dynamique et inspirante, j’ai croisé des représentants des comités de parents passionnés de toutes les écoles de la région.  Merci beaucoup Stéphanie Lacoste!

Nous avons eu un échange très intéressant sur l’importance  de la formation professionnelle qui est trop souvent présentée comme une alternative secondaire au programme régulier.  Comme le numérique touche et touchera TOUS les métiers, de l’électricien au notaire, cette question m’est venue : si et comment initier les élèves au codage dans TOUS les programmes sans exception?

En plus de nourrir ma propre curiosité, c’est principalement pour nourrir l’intelligence de cette dynamique présidente et pour lui faire profiter de perspectives différentes de mon réseau que j’ai posé la question.

Word Cloud with Coding related tags

Nuance entre programmer et coder

Renoir Boulanger précise cette subtile distinction entre programmer et coder.  Le premier sert à définir le trajet, l’autre à le réaliser.  Programmer c’est imaginer, c’est définir une recette pour un résultat en interactions avec des machines et des êtres vivants. Coder c’est organiser les “ingrédients” et les faire “cuire” pour «déguster» le résultat.

Même s’il n’est pas parfaitement défini, on ne code pas sans en avoir un plan dans la tête et la maîtrise de certains éléments à intégrer.  Il est toujours possible de construire une maison sans plan, mais quel serait le résultat sans connaissances en fondation, charpenterie, plomberie et électricité?

L’apprentissage de la programmation et du codage contribue à développer plusieurs habiletés intellectuelles tout en donnant du sens et de l’intérêt à acquérir d’autres connaissances.

Donner du sens et de l’intérêt aux matières classiques

À l’instar des meilleurs mécaniciens qui doivent assimiler des principes physiques pour réparer nos voitures ayant de plus en plus de circuits électriques, quels projets de codage pourraient stimuler l’élève à parfaire sa maîtrise de sa langue, d’une autre langue, des principes mathématiques ou d’autres sciences?

Tous les codeurs que je connais sont des curieux actifs toujours en mode auto-apprentissage.  Plusieurs professionnels en éducation cherchent le moyen de stimuler les élèves à être autonomes durant toute leur vie dans leur apprentissage (apprendre à apprendre).  Voilà un outil important à disposer dans leur coffre.

Prototyper pour obtenir du feedback et innover

Dans un processus d’émergence d’innovations qu’est le Design Thinking, il est important de prototyper rapidement pour obtenir du feedback afin de confirmer la valeur du problème identifié et de la solution envisagée.  Il y a plusieurs projets où le prototypage par un programme numérique s’avère approprié.

“Le code c’est une belle balance entre la rigidité et la créativité … apprendre à coder c’est se plier à des règles de base logiques (aide à se structurer dans notre approche face à des défis) tout en laissant la place à avoir potentiellement «plusieurs bonnes réponses» pour un même problème qui apporte un questionnement sur l’optimisation qui est quelque chose d’utile dans tous les autres types de travail…” (Francois Viens)

Développer l’esprit critique

Nous faisons parti d’un écosystème numérique complexe dont l’influence ne cessera de s’accroître avec l’intelligence artificielle.  Comprendre la structure d’un code peut permettre de découvrir la valeur et les intentions du programmeur derrière sa création.  

Toutefois, “avant de se demander si la programmation peut exercer l’esprit critique en examinant le code des autres, il faudrait plutôt se demander comment remettre à l’ordre du jour ce que les grecs de l’Antiquité nous ont enseigné pour exercer son esprit critique, méthodes efficaces et non démodées. L’effet Lindy en quelque sorte !” (Pierre Fraser)

Les compétences classiques ne viennent pas en opposition aux compétences numériques; bien au contraire.  Pour ne pas refaire les mêmes erreurs, “Je me souviens” ne devrait pas être qu’une devise insignifiante sur nos plaques d’immatriculation.

Savoir lire pour être libre.

Pourquoi apprendre à coder si les robots le font déjà?  “Avec le machine learning, pas certain que les jeunes vont vouloir apprendre à coder, sachant qu’un cpu va pouvoir le faire à sa place.” (Pascal Fredette)

Avec l’intelligence artificielle, le codage risque de devenir une commodité.  À l’instar de Bluemix , il existe déjà plusieurs outils permettant de programmer sans véritablement coder.  C’est un peu comme construire avec des blocs Lego™.

Est-ce que le codage d’aujourd’hui est le latin d’hier?  Peut-être, mais la programmation et le codage permettent de développer des habiletés essentielles au 21e siècle.  Ces compétences permettent de “lire” en surface et en profondeur ce qui se trouve devant nos yeux et au bout de nos doigts.

Ces compétences permettent également de mieux comprendre ce qui émergent dans un “langage” numérique de plus en plus complexe.  Par exemple, parmi vous, qui peut imaginer comment la technologie sous-jacente aux blockchains risque d’influencer votre vie professionnelle et personnelle?  Qui s’est même posé la question?

Améliorer l’intelligence, les connaissances et la confiance

Apprendre à programmer et à coder, c’est apprendre à aller au-delà de l’écran en s’interrogeant sur les valeurs et les intentions du développeur.  C’est aussi apprendre à devenir acteur de son environnement numérique et non seulement consommateur des contenus ou produits fabriqués par d’autres.  

Une aspect qui n’a pas été mentionné et qui est important de souligner est qu’apprendre à programmer/coder pour exercer un certain contrôle de son environnement numérique contribue à développer la confiance en ses capacités et l’estime de soi.  La programmation/codage permet aux plus timides de se démarquer dans un environnement invisible pour la majorité. 

Coding Autism: Navigating  Adults with ASD to Tech Employment from Coding Autism on Vimeo.

Une autre question me chicote:  jusqu’à quel point le codage peut permettre à celles et ceux qui ont des difficultés d’apprentissage de s’exprimer et de se démarquer autrement?

Améliorer notre être et notre avoir

«I think the reasons for learning to code are the same as the reasons for learning to write. When we learn to write, we are learning how to organize, express, and share ideas. And when we learn to code, we are learning how to organize, express, and share ideas in new ways, in a new medium.» (Mitch Resnick)

En collaboration et en interactions avec des gens et/ou des systèmes, coder, c’est communiquer autrement pour calculer plus rapidement et capitaliser pleinement.  

Les langages évoluent, mais le besoin de communiquer pour être et avoir sera toujours présent. 

—————————-

Je tiens à remercier chaleureusement Patrick Giroux Jacques Cool Pierre Fraser Mario Asselin Francois Viens Renoir Boulanger Pascal Fredette Bernard Prince et Stéphane Hamel pour leurs contributions ainsi que Roberto Gauvin pour son billet Pourquoi apprendre aux élèves à coder à l’école?