Enseignement de la programmation : Une journée au collège avec Arthur…

securite_informatique

Un rapport parlementaire publié hier est particulièrement alarmant sur le retard français dans l’enseignement de la programmation au collège et au lycée.

Par Thierry Berthier.

securite_informatique

Nous sommes en 20xx quelque part en France, Arthur du haut de ses onze ans, nous parle de sa journée d’élève en classe de sixième au collège Alan Turing.

Je vais vous raconter ma journée type en classe de sixième. Je sais que cette journée est bien différente de celle que pouvaient vivre mes parents ou les collégiens et lycéens français jusqu’en 2014 avant que la grande réforme de l’enseignement appelée plus simplement « Rupture » ne soit acceptée et appliquée en urgence par le ministère de l’Éducation nationale.

Il en a fallu du temps pour que les enseignants s’accordent et mesurent à sa juste valeur le poids stratégique du numérique dans notre société et son impact dans la construction de notre avenir !

Il en a fallu du temps pour qu’ils acceptent tous de se former au codage, d’inclure de façon systématique la programmation au cœur de leurs disciplines et de leurs séances d’enseignement !

Aujourd’hui, comme pour la lecture et le calcul, le codage est devenu une composante à part entière de l’enseignement au collège et au lycée, il intervient partout, dans chaque matière et est accepté par chaque enseignant qui a reçu une solide formation en programmation toujours adaptée à sa discipline.

Mes cours de français et de langues étrangères associent les contenus pédagogiques traditionnels à une mise en pratique de l’étude des textes par la programmation. Avec mes camarades, nous avons développé nos propres petites applications qui servent à analyser les textes que nous étudions. Nous utilisons pour cela un langage de programmation qui s’apprend très rapidement et qui a transféré les obstacles de syntaxes vers l’interface graphique. Ainsi, deux heures suffisent à un débutant pour commencer à produire ses premiers programmes (et qui tournent sans erreur).

Ces langages simplifiés existent depuis longtemps, l’un des premiers a été Graphic-Starlogo, développé par une équipe de chercheurs du MIT dans les années 2008-2010. Ce langage, orienté multi-agents, était parvenu à résoudre les soucis de syntaxe pour le jeune débutant en codant chaque instruction algorithmique par une pièce graphique de puzzle. Lorsque vous tentiez d’associer deux pièces de puzzle qui n’allaient pas ensemble, l’erreur était immédiatement visible. Dans ce type de langage, la programmation est graphique et vous « voyez » les erreurs de syntaxe sur la géométrie des pièces. C’est une idée de génie qui n’a pas fait beaucoup de bruit à l’époque car il me semble que l’informatique était presque absente des écoles françaises. Aujourd’hui, ce codage graphique est très utilisé dans les langages de programmation dédiés aux débutants.

Pour revenir à mon cours de français de ce matin, nous allons faire passer une fable de La Fontaine dans notre « moulinette numérique» puis dans celle qui a été développée par le centre de ressources pédagogiques. Nous comparerons ensuite les résultats. Le code que ma classe a développé cette année tente de reconnaître automatiquement un auteur par identification des mots et des phrases qui font son style. Cela a l’air compliqué quand on le raconte, mais en fait c’est assez simple à coder car on commence sur des petites reconnaissances à partir de quelques mots-clés, et les programmes que nous écrivons sont très courts. Notre professeur de français aime nous montrer les limites et les faiblesses des algorithmes par rapport à une bonne analyse humaine. Il maîtrise parfaitement le code utilisé dans les matières littéraires mais reste également attaché à l’enseignement traditionnel et à la maîtrise de l’orthographe (ce n’est pas incompatible nous répète-t-il, car l’orthographe, c’est de la syntaxe, que ce soit pour La Bruyère ou pour mon ami Antoine qui n’a toujours pas corrigé son dernier code).

Certains de mes camarades, qui éprouvent de grandes difficultés en français, en écriture, en dictée préfèrent l’activité de codage car ils réussissent toujours à produire quelque chose de personnel qui finit par fonctionner. La récompense arrive lorsqu’ils appuient sur la touche ENTER pour lancer leur propre code (pas celui du prof !) et que le programme s’exécute correctement.

On a longtemps sous-estimé cette motivation et ce plaisir chez l’élève : créer son propre code et le voir fonctionner pour la première fois. Aujourd’hui, c’est un principe pédagogique majeur qui figure dans tous les programmes officiels.

Nous utilisons aussi des générateurs de textes développés par l’industrie du journalisme (des codes algorédacteurs), nous détectons leurs réussites et ce qu’ils n’arrivent pas encore à restituer ou à capter. Sur des textes anciens, c’est encore plus marrant car le style et les tournures de phrases du XVIIIeme siècle conduisent les algorithmes à de mauvaises interprétations et à des erreurs d’analyse souvent très rigolotes. Pour tout vous dire, on cherche toujours à les piéger et à voir leurs limites.

Notre production de programmes de toute l’année est mise en ligne et permet à des élèves d’autres collèges de les faire progresser ou de les critiquer. On organise des concours entre établissements afin de récompenser le meilleur code appliqué à l’enseignement du français.

Le mode collaboratif agit à toute échelle, les Mooc ludiques complètent les cours du collège et nous guident pour faire les devoirs du soir à la maison. Mes parents ne m’ont jamais payé un seul cours particulier simplement parce que je trouve tout ce qu’il faut dans l’extension numérique disponible sur le web et fournie par mon collège…

Je viens de vous expliquer en détail ma séance de français de 8h30 à 10h30, ensuite, j’ai un cours d’art plastique avec un prof super cool. Lui, son truc c’est l’impression 3D. Il a fait acheter au collège du bon matériel. Nous imaginons et créons tout ce que l’on veut, il n’y a pas de limite à part la durée des séances. On a commencé par sortir des pièces imprimées à partir de codes déjà écrits puis, très rapidement, nous avons créé nos propres codes et donc nos propres pièces. Elles sont toujours inédites. Bien entendu, il y a des productions super moches, cela n’a pas changé en une génération, mes parents étaient capables de produire des trucs super laids en art plastique sans l’aide d’une imprimante 3D mais avec du papier mâché. Aujourd’hui, c’est pareil mais avec le code en plus. Comme dit mon prof, c’est le code qui est moche ou qui engendre le beau…

Heureusement que le coût des résines utilisées dans l’impression 3D a fortement baissé car on gaspille énormément de matière. On code, on teste et on jette l’horrible truc que l’on vient de produire, on corrige ensuite le code et là, le truc devient plus acceptable. On admire tous Monsieur César Arman, notre prof pour sa capacité à produire du beau code rapidement…

On a créé un site web sur lequel on stocke les photos et les codes des objets produits dans l’année et il arrive que l’on vende assez cher certains d’entre eux (à nos parents).

Cette après-midi, je débute par deux heures de logique et programmation. Mes parents appellent cela le cours de mathématiques, mais aujourd’hui, il est interdit d’employer ce terme car trop de collégiens et de lycéens ont souffert et se sont cassé les dents sur les maths avant la réforme de rupture. Pour simplifier, l’ancien cours de mathématiques a été ré-organisé vers des activités d’apprentissages d’algorithmes et des notions mathématiques qui s’y rattachent.

img contrepoints305 programmationAprès des siècles d’absence dans les programmes du collège, le cours de logique a été construit en différenciant la progression des élèves. Ceux qui aiment l’abstraction associée à la programmation progressent selon leur propre rythme et font plus de logique que de code. Ceux au contraire qui éprouvent des difficultés en logique, débutent par le code qui est utilisé ensuite pour mettre en lumière les enchaînements logiques. Chacun y trouve son compte, par contre, les enseignants de cette matière ont été confrontés à une révolution culturelle qui a été difficile à accepter pour certains… Le coût de l’enseignement différencié est élevé mais il est compensé par une baisse de l’échec scolaire et des redoublements fondés sur des lacunes mathématiques.

C’est un cours assez difficile, mais qui sait lutter dans sa forme et dans sa progression différenciée contre l’échec des élèves. Cela n’a rien à voir avec ce qui se passait, parait-il, dans les années 2010, lorsque plus de la moitié des élèves d’une classe de sixième avouaient détester les mathématiques…

Mes parents m’ont expliqué que la majorité des élèves s’étaient détournés peu à peu de cette matière pourtant fondamentale et qu’ils avaient appris à la détester dès le plus jeune âge. Ce désamour était devenu un obstacle majeur au développement technologique de la nation. Les mathématiciens étaient systématiquement recrutés à l’étranger, il n’en existait plus en France !

Aujourd’hui, les choses ont évolué et certains de mes camarades souhaitent approfondir leur premier cours de logique et programmation par le suivi d’un enseignement spécialisé en mathématiques.

À 15h30, je poursuis ma journée par un cours de sciences physiques. Je dois rendre le code développé avec deux de mes camarades réalisant une petite simulation d’une avalanche. Le programme a été écrit sur une plate-forme de développement multi-agents graphique. Il reprend un modèle très simplifié du comportement des flocons de neige (ou de sable).

On programme le comportement d’un petit flocon de neige (un agent), comment il évolue dans le temps et dans l’espace et on fait tourner la simulation. C’est trop marrant quand le tas s’écroule tout seul. On peut augmenter le débit de la chute des flocons, et également préciser si la neige a tendance à fondre ou à geler. On code après avoir réalisé des expériences réelles en salle de TP de physique sur la neige, la glace. Dans ma classe, d’autres groupes d’élèves travaillent sur le sable et les glissements de terrains, cela fonctionne presque comme une avalanche… Les codes des groupes neige et sable sont proches sans être identiques. Le plus dur pour le prof c’est de trouver de la vraie neige pour nos expériences.

Je termine ma journée avec un cours de biologie. Comme pour les autres matières, l’enseignement se termine toujours par la production d’un code de programmation. J’ai choisi un sujet sur la simulation d’un aquarium avec plusieurs niveaux de proies et de prédateurs. La programmation utilise la même plate-forme graphique qu’en physique, c’est facile à écrire et en plus, cela ressemble à un petit jeu vidéo que l’on peut modifier. Si j’ajoute beaucoup de plancton, les poissons de première espèce se développent vite mais les poissons prédateurs plus gros également. Il faut alors trouver des situations d’équilibre afin d’éviter la surpopulation dans l’aquarium. Il existe depuis des années beaucoup de jeux sur smartphone qui simulent ces situations, mais dans ce cas, c’est mon propre code qui produit la simulation et je peux le modifier à tout instant…

Demain mon cours de géographie nous fera utiliser la géolocalisation dans un programme graphique très simple. On a tous un GPS, mais on se demande toujours comment il marche. Mon professeur de géographie va nous parler de cela. En histoire, il nous apprend à gérer les masses de données disponibles sur internet qui concernent un événement historique et à en extraire celles qui sont importantes.

* * *

Revenons maintenant en 2014 et lisons attentivement le rapport présenté ce mercredi 14 mai à l’Assemblée Nationale « Agir pour une France Numérique : de l’audace, encore de l’audace, toujours de l’audace » supervisé par Corine Ehrel, députée socialiste des Côtes d’Armor et Laure de La Raudière, députée UMP d’Eure et Loir. Le rapport passe en revue l’écosystème numérique français et met en lumière ses faiblesses. Il met l’accent en particulier sur l’extrême retard français dans le domaine de l’apprentissage de la programmation à l’école…

Sources :

Sur le rapport parlementaire : frenchweb.fr

Sur Graphic Starlogo – MIT :