Grandeur et faiblesses de l’enseignement de spécialité informatique en classe de première : une analyse critique

 

Enseignement de l’informatique : plus rien ne sera jamais comme avant

Pour la première fois, et c’est une grande chose, la science informatique, au sens de programmation, rentre au Lycée en tant qu’enseignement de spécialité dans les nouveaux programmes de première.

Elle n’en sortira plus jamais et dans les 50 prochaines années, sa place ne cessera d’augmenter. J’ai expliqué en long et en large les 2 raisons qui font de l’informatique, depuis 2010, une matière fondamentale, raisons qui ont été à la source de notre investissement dans les écoles de robotique Algora et qu’on peut résumer en quelques mots. 1) Une révolution numérique est en cours, dont les effets seront comparables à la révolution industrielle du XIXème siècle. La liberté des citoyens nécessite la maîtrise des nouveaux moyens de production, celle-ci passant par l’apprentissage de la programmation. 2) Cette révolution traverse toutes les sciences, ce qui fait de la science informatique une matière fondamentale au sens où elle devient nécessaire pour la compréhension des autres domaines scientifiques (biologie, médecine, chimie, physique…). En savoir plus.

 

Un objectif non professionnalisant

D’abord, le meilleur. « L’objectif de cet enseignement est non professionnalisant ». Dans les raisons que j’ai données ci-dessus, il y a en effet une raison citoyenne émancipatrice (la maîtrise des moyens de production) et une raison scientifique, mais un choix de première généraliste ne peut pas, ne doit pas être une orientation professionnelle. Il ne s’agit pas de former, dès la classe de première, de futurs informaticiens mais, de façon ambitieuse, de donner aux élèves les fondements de l’informatique pour « les préparer les élèves à une poursuite d’études dans l’enseignement supérieur ».

De façon là aussi très heureuse, le préambule du programme laisse donc toutes les orientations ouvertes. Car faire de l’informatique va profiter à tous les élèves, qu’ils s’orientent vers Sciences Po, une école d’ingénieurs, de médecine ou vers des études plus courtes. J’ai expliqué, dans ce blog, pourquoi le cours d’informatique fondamentale est progressivement devenu le cours le plus suivi dans les universités américaines, toutes filières littéraires et scientifiques confondues.

Un contenu peu réaliste

Le programme d’informatique est très dense, très ambitieux. Ma principale critique sera que je le juge peu réaliste, trop théorique et qu’il faudra en changer la philosophie. Rentrons dans le contenu.

Le langage : Python for ever

“Le langage choisi est Python”. C’est le meilleur choix possible, celui que nous avons fait pour tous nos apprentissages à partir de 14 ans (12 ans pour les enfants suivant un enseignement spécifique en informatique). J’ai expliqué dans cet article récent (“In Python we trust”) les raisons de ce choix.

Le programme : entre Master et doctorat ?

La richesse du programme proposé a un côté ahurissant, gargantuesque. Huit grands thèmes sont définis[1].

Disons-le tout net, ce programme, la plupart des ingénieurs ayant suivi une information Bac + 5 en informatique ne le maîtrisent pas (même si, je sais, ils devraient !). Les élèves sortant des grandes écoles ne le maîtrisent pas non plus. C’est un programme impossible à assimiler en 4h de cours par semaine (sauf si, parallèlement à ces cours, les élèves menaient de leur côté 10 à 20 h de travail personnel, ce qui n’est évidemment pas prévu). Seul un quart du total de temps de classe est consacré à des projets, ce qui est en fait très peu. On pourrait en fait parfaitement proposer ce programme, presque tel quel, dans le cadre d’un master informatique… Premier défaut, donc.

Un programme trop abstrait

Le deuxième problème est que ce programme est extrêmement théorique et abstrait.

J’ai beaucoup critiqué dans ce blog l’évolution de l’enseignement des maths depuis 30 ans. Pour soi-disant préserver les élèves de l’ennui, on a tenté, de façon très artificielle si ce n’est ridicule, de faire résoudre des problèmes « pratiques » ou « concrets » aux élèves, avec pour résultat qu’on n’intéresse plus personne et qu’on ne fait plus vraiment des maths[2].

A l’inverse, l’informatique est une matière concrète où la réalisation pratique (le fonctionnement du programme créé) est toujours très importante. Qui plus est, cette réalisation, nous le voyons tous les jours dans nos écoles Algora, intéresse les élèves de façon tout à fait prodigieuse. En se focalisant largement sur les aspects abstraits et théoriques de la matière, on perd de vue son essence et on prend le risque de dégoûter largement les élèves.

Un programme trop ancien pour “renverser la table”

On a l’impression en fait que les rédacteurs du programme, qui ont évidemment une grande connaissance personnelle de l’informatique, ont hésité à « renverser la table » en tentant d’instaurer un programme réellement innovant. Tous les thèmes du programme abordés pouvaient être enseignés tels quels dès les années 80, à l’exception du Web qui date des années 90 et donc, ce programme informatique rate en quelque sorte l’essentiel de la révolution numérique, qui correspond à des technologies postérieures aux années 2000[3]. Or c’est avant tout cette révolution numérique qui justifie l’enseignement de l’informatique en première[4] – en n’enseignant pas les technologies qui la sous-tendent, on fait en quelque sorte fausse route.

Ainsi l’intelligence artificielle (sous l’angle deep learning), les algorithmes de recommandation ou de classement (du moteur Google à la recommandation commerciale effectuée par des sites comme Amazon ou Adwords), des exemples tirés de la nature (comportements émergents, CRISPR), des exemples d’interaction avec d’autres matières fondamentales (expériences CRISPR, expériences physiques élémentaires) ou même la blockchain ne sont pas abordés[5]. Or il est possible dans tous ces cas, si on renonce au côté purement théorique des choses, de faire réaliser aux élèves des programmes extrêmement intéressants, ayant un intérêt pratique extraordinaire[6] et permettant souvent de faire communiquer différentes matières entre elles[7][8]. De telles réalisations ont en outre l’intérêt de faire manipuler aux élèves des bibliothèques développées par d’autres programmeurs, cette technique de génie logiciel étant une des clés de l’informatique actuelle et de la révolution numérique.

Les professeurs de lycée ne peuvent pas enseigner ce programme.

Rappelons qu’il n’existe à ce jour pour ainsi dire pas de professeurs d’informatique dans les établissements. Le CAPES d’informatique vient tout juste d’être créé  (10 postes !) et il faudrait des milliers de postes pour combler ce manque. Or les professeurs de mathématiques, qui seront le plus souvent en charge de l’enseignement de spécialité, ne comprennent pas de quoi il en retourne, puisque les notions enseignées relèvent typiquement du niveau maîtrise en informatique. Rares, très rares, seront aussi les professeurs de technologie capables d’enseigner ce programme.

Compte tenu de la rareté des ressources humaines, il aurait sans doute fallu pour une fois être très directif et aller même jusqu’à imposer certains TP « types » ou certaines façons de traiter les sujets pour les premières années de mise en route de l’enseignement informatique. Au lieu de ceci, le programme préconise « de laisser le choix du thème du projet aux élèves eux-mêmes », belle idée, certes mais irréaliste dans ce contexte de lancement et qui risque de mener à de grandes déceptions, quel que soit l’immense attrait de la matière

Et après ? La place de l’informatique dans Parcours Sup et les admissions aux filières sélectives

Les élèves voulant s’orienter vers des filières sélectives choisiront presqu’automatiquement aujourd’hui l’enseignement de spécialité en mathématiques (qui remplace donc de fait l’option S). Ceci concerne non seulement les classes préparatoires aux écoles d’ingénieurs mais aussi des concours tels que médecine, par exemple, ou les classes préparatoires commerciales. Ou même, comme nous l’avons vu plus haut des “concours” tels que Sciences Po.

Il faudrait dès aujourd’hui, pour tous ces concours, ajouter des filières spécifiquement informatiques (correspondant au suivi des enseignements de spécialité dans la voie générale) et augmenter de façon significative les places réservées à ces nouvelles filières. Le potentiel d’un enseignement informatique à jour et de qualité pour des étudiants en médecine ou pour des études commerciales, politiques ou juridiques est immense. [9].

 


 

  • [1] Histoire de l’informatique (de l’antiquité à Internet !). [Ce qui exclut, notons le, le deep learning, à la base pourtant de la révolution numérique en cours].
  • Représentation des données (calcul binaire, opérateurs logiques, représentation des entiers, réels, chaines de caractères en machine, ASCII, Unicode…)
  • Types abstraits (p-uplets, tableaux, dictionnaires clés / valeurs)
  • Traitement des données en tables (indexation, recherches, tris)
  • Web (HTML , JavaScript, serveurs d’application, post / get)
  • Architecture des ordinateurs (composants, langage machine, réseaux, modèle en couche, paquets, TCP/IP, systèmes d’exploitation, périphériques d’entrée / sortie)
  • Langages et programmation (y compris test et bibliothèques)
  • Algorithmique (complexité des algorithmes tels que recherche, tri, proches voisins, dichotomie, optimal local)

 

[2] A noter que les nouveaux programmes 2019 de spécialité de première en mathématiques corrigent la plupart des erreurs faites depuis 20 ans et « reviennent », grosso modo, aux contenus de 1995 de première S, ce qui est une excellente chose… sauf peut-être pour les élèves entrant en première en septembre 2019 qui vont avoir l’impression de sauter une ou deux classes !

[3] A noter qu’on peut faire presque le même reproche aux programmes d’informatique générale enseignés dans la première année universitaire de la plupart des universités américaines, dont les auteurs du programme semblent s’être inspirés. Par exemple le cours CS106 à Stanford.

[4] Pour faire une analogie parlante, celle de la révolution industrielle du XIXème siècle, on n’imagine pas l’enseignement de la thermodynamique en classes préparatoires avant l’invention de la machine à vapeur, qui par ses effets change radicalement les moyens de production. Ainsi, pour une matière telle que l’informatique, c’est le changement radical sur la production qui justifie sa mise au programme.

[5] Là aussi, des TP simples matérialisant une blockchain peuvent être simplement proposés et réalisés. Mais il faut alors évidemment renoncer au côté purement théorique de l’algorithme, algorithme qui sera de toutes façons abordé et compris tôt ou tard par tout élève effectuant des études supérieures scientifiques.

[6] Développer un algorithme “deep learning” qui s’améliore en jouant contre lui-même dans le cadre d’un jeu simple est élémentaire

[7] Exemple de CRISPR pour la biologie. On peut aussi logger diverses expériences de physique avec des techniques de robotique élémentaires

[8] Il est à craindre que compte tenu du programme proposé, la seule technologie radicalement nouvelle proposée aux élèves sera celle des objets connectés, qu’on peut aborder via les robots par exemple. C’est trop peu.

[9] Le programme de la spécialité informatique des prépas scientifiques date lui aussi “d’avant la révolution numérique”, fait une trop large part aux “mathématiques appliquées” et doit être renouvelé. Il en est de même – bien que le niveau en soit nettement supérieur – de l’option informatique de l’agrégation de mathématiques.

Laisser un commentaire sur le blog