Témoignage : À quoi bon programmer

Bonjour David : quelle est ton histoire de professeur d’informatique ?

© wikicommons

Bonjour Cindy, mon histoire avec l’informatique a commencé au début des années 80 quand mon père a ramené à la maison un ZX80 de Sinclair. Cet ordinateur, aux caractéristiques relativement limitées ( 1 ko de RAM, processeur Z80 cadencé à 3,25 MHz), permettait uniquement d’apprendre à programmer (en BASIC). En 2008, les ordinateurs personnels étaient devenus tellement puissants qu’ils permettaient de jouer, de surfer sur le web… C’est donc en partant du constat que les adolescents n’étaient plus du tout incités à apprendre à programmer, que nous avons eu l’idée, avec mon collègue Nicolas Bechet, d’initier les élèves de seconde à la programmation. Les premières années nous avons utilisé le logiciel Alice1 (programmation avec des blocs, un peu comme Scratch, mais plus complexe à prendre en main) pour initier les élèves. J’ai donc commencé à écrire des activités destinées aux élèves.

Des activités tu veux dire … pas de cours magistraux 🙂 ?

© alice.org

Certes, ce choix d’écrire des activités pour les élèves a orienté la pédagogie utilisée : bannir les cours magistraux (nous avons bien essayé une ou deux séances, mais nous nous sommes vite rendu compte que les élèves s’endormaient !) et mettre les élèves en activités : apprendre une nouvelle notion en autonomie (lire un texte ou regarder une vidéo) puis la mettre immédiatement en pratique en essayant de résoudre un problème. En classe, l’enseignant est uniquement là pour aider les élèves en cas de difficultés. Cette autonomie dans l’apprentissage permet aux élèves d’avancer à leur rythme, cela permet aussi de favoriser la collaboration entre les élèves : un élève ayant réussi à résoudre un des problèmes proposés peut aider ses camarades. On voit aussi des élèves se mettre à plusieurs pour essayer de résoudre un problème. Je dois dire que l’enseignement de la programmation se prête particulièrement bien à cette pédagogie, je ne suis pas du tout convaincu que ce genre de pratique peut être généralisée à toutes les disciplines, dans certaines situations le bon vieux cours magistral reste, selon moi, indispensable.

Et en matière de choix d’outils de programmation quelle est ton expérience ?

© processing.org

Nous nous sommes rapidement rendu compte qu’Alice avait de gros défauts (notamment le temps qu’il fallait consacrer à la maitrise de l’environnement) et de plus nous avons constaté que les élèves de seconde étaient capables de programmer en utilisant un « vrai » langage de programmation. Pour des raisons aussi bien techniques que pédagogiques, notre choix s’est porté sur le JavaScript. Là aussi, j’ai donc commencé à écrire des activités, tout d’abord sur l’apprentissage des bases de la programmation puis rapidement sur la conception de jeux vidéos. D’autres langages (Python, Processing) ont aussi été utilisés dans de nombreuses activités. Toutes ces activités sont désormais regroupées sur un site académique2 accessible à tous (toutes les activités sont sous licence Creative Commons BY SA).

Mais cela s’était avant que l’informatique entre enfin dans le secondaire !

Oui, et en 2012, l’arrivée de la spécialité ISN (Informatique et Création Numérique) a été un premier grand tournant pour l’enseignement de l’informatique au lycée. Deuxième grand tournant, l’intervention de François Hollande qui lors d’un voyage dans la Silicon Valley en février 2014 a déclaré «Tout doit commencer par le codage à l’école, et nous allons donner cette impulsion».

MOOC ICN (image libre)

À partir de ce moment-là, tout s’est accéléré : introduction de la programmation au collège dans les programmes de mathématiques, création des enseignements ICN (Informatique et Création Numérique) en seconde puis en première…

Au début j’étais très heureux de la tournure prise par les événements, l’intérêt pédagogique de la pratique de la programmation était enfin reconnu !

Oui tu dis souvent que nous ne sommes qu’au début du chemin, pourquoi ?

Commençons par le terme «codage», ce terme est selon moi inapproprié, il faut parler de programmation, en informatique le codage fait souvent référence au codage de l’information, ce qui n’est pas la même chose, donc, s’il vous plait, employons le terme programmation à la place de « codage » ou « code ». Vous allez me dire que cela relève vraiment du détail, je suis d’accord avec vous, mais ce terme est tellement devenu à la mode (repris en permanence dans les médias) que cela ne relève pas seulement de l’anecdote !

Autre point qui me gène énormément (bien plus que l’utilisation du terme « codage ») depuis quelques mois, c’est cette tendance à croire que l’enseignement de la programmation dans le secondaire a pour but de préparer les élèves d’aujourd’hui à devenir les programmeurs de demain ! Je suis totalement et farouchement opposé à cette vision des choses.

Alors que faut il expliquer à qui pense qu’il suffit d’apprendre à programmer?

La programmation n’est qu’un aspect des choses, il est aussi important, pour comprendre ce monde devenu numérique de s’intéresser aux autres aspects de la science informatique (codage de l’information, algorithmique, machine, réseau…). En effet, comment comprendre ce qui se passe quand on poste une photo sur Instagram si l’on a pas un minimum de connaissance en matière de réseau et de codage de l’information, comme cela est enseigné avec Class´Code.

Certains me répondront que ces connaissances ne sont pas nécessaires pour utiliser l’outil (un argument que l’on entend souvent : « il n’y a pas besoin d’être garagiste pour conduire une voiture »), c’est qui est vrai à condition de rester simple consommateur. Cependant un usage raisonné de ces outils est plus que nécessaire et au lieu de faire peur à nos enfants (comme j’ai eu l’occasion de le constater lors de certaines « formations au numérique » dans le lycée où j’enseigne), autant leur expliquer comment tout cela fonctionne afin qu’ils agissent en toute connaissance de cause, comme des citoyens responsables. Inutile d’avoir un niveau master en informatique, une simple initiation suffit.

Pour les élèves qui se destinent à devenir informaticiens, le lycée général n’a pas pour but de « pré-professionnaliser », cela est et doit rester l’apanage de l’enseignement supérieur. Je n’ai pas, comme la plupart de mes collègues, les compétences pour former des informaticiens.

Alors, pourquoi enseigner la programmation à toutes et tous, alors ?

Parce que la programmation est une activité riche intellectuellement et pédagogiquement parlant. Pour programmer, il faut faire preuve de concentration, de rigueur (l’ordinateur ne « pardonne » aucune erreur), mais aussi de logique. Programmer c’est aussi faire appel à sa créativité et à son imagination. D’un point de vue pédagogique, la programmation se prête très bien aux activités de type « essai-erreur » et là, ce n’est pas l’enseignante ou l’enseignant qui dit qu’il y a une erreur quelque part, c’est l’ordinateur et ça, pour l’élève, cela change pas mal de choses.

Les raisons exposées ci-dessus, selon moi, se suffisent à elles même.

David Roche @davR74130, professeur de physique-chimie puis d’informatique, auteur du site informatiqueaulycée.fr et co-auteur du MOOC-ICN.

1https://www.alice.org/about/

2http://www.ac-grenoble.fr/disciplines/informatiquelycee/