Des trucs qui ne servent à rien
Par David Monniaux le samedi, août 4 2012, 23:03 - Enseignement - Lien permanent
Une récente tribune dans le New York Times propose de réduire, voire supprimer, l'apprentissage de l'« algèbre » dans l'enseignement secondaire et une partie des études universitaires aux États-Unis. Bien entendu, nous ne parlons pas là de théorie des groupes ou de modules sur des anneaux noethériens, mais de manipulations élémentaires, du type résoudre une équation linéaire simple ou développer un polynôme (l'article propose comme exemple d'exercice inutilement difficile la démonstration de l'identité (x² + y²)² = (x² - y²)² + (2xy)²).
L'auteur fait remarquer que l'immense majorité des personnes auxquels on a imposé un enseignement, voire exigé un niveau minimal, en mathématiques, n'utilisent jamais d'algèbre dans leur vie professionnelle. On leur a donc, selon lui, imposé un enseignement et une sélection inutiles, et au passage pris un temps de leur vie qui aurait pu être utilisé pour l'apprentissage d'autres disciplines.
Dans cet article, j'aimerais développer quelques remarques et idées sur l'enseignement des mathématiques. Toutefois, avant de passer au cas de cette discipline, je voudrais d'abord faire remarquer à quel point le raisonnement évoqué ci-dessus (« les mathématiques enseignées servent directement dans très peu de métiers, donc on devrait les retirer du programme ») est dangereux. En effet, selon ce critère, c'est la plus grande partie des enseignements obligatoires de l'enseignement secondaire général qui devrait disparaître !
Les dissertations ? Presque personne n'écrit de dissertations à l'âge adulte (si ce n'est les essayistes, et encore, un essai ou une monographie sont d'un format différent d'une dissertation). La littérature ? Très peu de métiers nécessitent de lire des romans, des poésies ou du théâtre. L'histoire ? Quels métiers en ont besoin, si ce n'est une minorité (professeurs d'histoire, chercheurs en histoire ou en archéologie, archivistes, etc.) ? Le dessin et la musique ? On nous dit toujours qu'on ne vit pas des métiers artistiques ! Le sport ? Soyons sérieux, voit-on par exemple des gens pratiquer le triple saut (à part une ultra-minorité d'athlètes professionnels) ?
Bref, si l'on s'en tient à ce qui sert réellement directement au travail pour la plupart des gens, il y a la grammaire, l'orthographe et le calcul de base (qui, à une époque pas si lointaine, était acquis dans l'enseignement primaire). On peut ajouter l'anglais pour les personnes recevant du public étranger ou ayant une activité internationale. Si l'on est généreux et que l'on étend les connaissances utiles à la vie courante, on peu ajouter un peu de physique (tension, intensité, utiles pour des histoires bassement pratiques de fusibles et de branchements).
Bien entendu, la raison pour laquelle on maintient certains enseignements c'est qu'ils présentent des bénéfices indirects. Par exemple, celui qui a étudié l'histoire, la géographie, ou encore les statistiques pourra relativiser les prétentions politiques de certains. Bien entendu, peu de gens refont des calculs d'énergie comme l'on faisait au lycée, mais il est en revanche utile d'avoir compris le concept de conservation de l'énergie afin de ne pas se laisser avoir par des marchands de solutions miracles. Ainsi, même si les exercices faits au collège ou au lycée sont largement artificiels et sans bénéfices immédiats, on espère qu'ils aient laissé des traces utiles dans l'esprit.
Venons-en au cas des mathématiques. Je dois avouer que, vu ma formation et mon métier, j'ai naturellement une grande indulgence pour cette discipline ; toutefois, j'ai certaines réserves quant à la façon dont elle est enseignée.
À mon avis (et pas seulement au mien, je ne suis évidemment pas le premier à parler de cela), un grand problème dans l'enseignement des mathématiques est que la façon dont on écrit formellement les mathématiques n'est pas la façon dont les mathématiciens les pensent. Quand on écrit des mathématiques, que ce soit dans un article scientifique ou dans la plupart des ouvrages d'enseignement niveau universitaire, on donne d'abord des définitions, puis on en déduit des lemmes et des théorèmes à l'aide de démonstrations. Si l'on est didactique, on inclut quelques exemples.
Ce n'est cependant pas comme cela que raisonnent les mathématiciens, et pas non plus comme cela qu'ils discutent entre eux dans les contextes informels. On fait alors la part belle à l'intuition : un mathématicien (ou apparenté) va souvent d'abord donner les grandes idées (même si certaines sont fausses stricto sensu) sans rentrer dans les détails de la preuve. Il n'est pas rare d'entendre des phrases comme « celui là s'aplatit » ou « tu t'en sors avec un argument diagonal », qu'évidemment on n'écrira pas dans un article ou un manuel.
Qui plus est, le discours mathématique formel fonctionne à l'envers de la conception. On présente les mathématiques comme découlant de définitions fixées à l'avance, or, justement, d'une certaine façon ces définitions ont été choisies de façon à permettre de modéliser un concept intuitif ou de montrer certaines choses. Il n'est d'ailleurs pas anodin qu'historiquement plusieurs définitions aient été proposées pour certains concepts, que certaines aient mené à des paradoxes, ou que plusieurs définitions soient possibles pour le même concept (par exemple, celui d'intégrale).
Lorsque j'enseignais en DEUG, j'ai eu affaire à des étudiants à qui on avait expliqué ce qu'était une matrice et comment on multipliait celles-ci, mais à qui on n'avait pas montré que ce concept était naturel pour représenter les transformations géométriques et leur composition. Évidemment, privé de motivation, l'introduction d'un concept mathématique paraît comme une complication gratuite et abstraite... Ceci est d'ailleurs vrai à tout les niveaux : j'ai ainsi entendu dernièrement un collègue de l'INRIA au dessus de tout soupçon déplorer que tant d'articles et de conférenciers scientifiques ne prennent pas la peine d'expliquer en quoi le problème auxquels ils s'intéressent est important.
Revenons à l'enseignement des mathématiques dans le secondaire. Selon moi, celui-ci a deux retombées utiles. La première est la facilité de calcul symbolique. Certes, comme le rappelle l'auteur, il est rare que des gens aient à développer des polynômes dans le cadre de leur travail (cela m'arrive, mais je n'ai pas un métier courant), et il peut donc paraître abusif d'exiger leur connaissance par des personnels de santé ; il est il me semble cependant courant pour ces personnels de devoir réfléchir à des dosages, conversions d'unités, etc., qui nécessitent une certaine aisance en calcul.
La seconde est celle d'abstraction et de raisonnement déductif. Un raisonnement mathématique part d'hypothèses qui décrivent partiellement la réalité, et parvient à une conclusion qui doit être vraie si les hypothèses le sont et que toutes les étapes de raisonnement ont été bien menées. Notamment, un raisonnement doit pouvoir s'appliquer à tous les objets, toutes les situations qui vérifient les mêmes hypothèses ; si la conclusion est fausse dans certains de ces cas, c'est que le raisonnement est bancal. Cela paraît une évidence, mais combien de « raisonnements » entendons-nous autour de nous qui ne respectent pas cette règle de base ! Quant à l'abstraction, il s'agit de voir les similarités entre deux situations qui présentent certes des différences superficielles, mais, pour certains aspects du moins, obéissent aux mêmes lois. Par exemple, le son, l'électromagnétisme et la propagation de la chaleur sont des phénomènes apparemment très différents, mais on peut (dans une certaine mesure) les décrire avec le même type d'équations et les étudier avec les mêmes outils mathématiques. Ainsi, les mathématiques incitent à « lever le nez du guidon » et à se concentrer sur le cœur du problème et non sur des différences sans importance.
Que seraient les apports d'un enseignement d'informatique (je parle ici bien d'informatique, et non de bureautique ou usage d'Internet) ? Le bénéfice pratique : une certaine familiarité avec la programmation permet une plus grande efficacité dans les utilisations pratiques de l'informatique (par exemple, elle permet d'automatiser certaines tâches pénibles ou de comprendre certaines réactions du système informatique).
Le bénéfice plus théorique ? À mon avis, le plus important est de comprendre la différence qu'il y a entre définir un objet (voire le décrire informellement) et le calculer effectivement. Je suis parfois effaré du « yakafokon » du grand public, voire des universitaires, à propos de l'informatique, certains semblant visiblement croire que la difficulté est d'avoir une vague idée de concept et que la mise en œuvre informatique n'est qu'un problème technique dont la résolution s'ensuivra ; la « pensée magique » semble d'ailleurs assez répandue !
Bien entendu, les bénéfices « théoriques » exigent un peu de recul sur la pratique. Leur évaluation, au sens de « contrôle des connaissances », est difficile. De nombreux étudiants préfèrent en effet des contrôles basés sur des questions de cours et des exercices d'application du cours (aux résultats prévisibles si l'on a bien « bachoté ») à des questions de réflexion ou de commentaire. Les enseignants peuvent également les apprécier pour leur facilité de correction, et, là aussi, la prévisibilité des résultats (il est en fait assez courant qu'une moyenne-cible soit imposée). Je ne me sens toutefois pas le courage et les compétences pour réformer la notation...
PS Mon collègue Pierre Colmez a écrit une tribune sur le même thème dans le magazine en ligne Atlantico.
Commentaires
Je pense qu'il y a un autre aspect important dans ce débat: ce que l'on fait à l'école ne sers pas seulement à apprendre directement des connaissances, mais aussi à développer ses capacités intellectuelles de façon plus générales (pour avoir une tête bien faite, plutôt qu'une tête bien pleine).
Quand on fait de triple-saut, le but est bien sûr de développer son corps, plus que d'apprendre à faire du triple saut en tant que tel. Je pense qu'on peut dire la même chose pour les maths: le but est d'apprendre à faire marcher son cerveau, et le devloppement de polynome est juste un exercie pour le faire tourner...
@Ni: Je soupçonne que l'auteur de l'article en question sous-entend que savoir développer des polynômes ne développe aucune capacité secondaire. Il est vrai que le lien entre tel ou tel sujet, tel ou tel exercice étudié dans le secondaire et une qualité humaine ou professionnelle future n'est pas évident, et même sujet à discussion. (Par exemple, Pierre Assouline prétend que la littérature, par exemple la lecture de la Princesse de Clèves, pourrait donner des fonctionnaires plus « humains », mais il ne donne aucun argument en faveur de cette thèse.)
[Je reprends alors]
L'enseignement des mathématiques au lycée se fait comme celui d'une science autosuffisante (qui a de l’intérêt par elle même). C'est très efficace pour progresser rapidement et tous ceux qui ont poursuivi avec une carrière scientifique en sont reconnaissant mais cela laisse tous les autres sur le bord de la route.
C'est exactement comme le conservatoire de musique dont les enseignements sont conçus pour former des professionnels a coups de gammes, d'exercices de doigté et de solfège. De nombreux élèves en sortent en n'aimant pas la musique et en étant incapables d'appliquer le moindre concept d'analyse musicale a la musique populaire moderne qu'ils écoutent quotidiennement.
Je ne vois aucun inconvénient a ce qu'au lycée on ne se serve des mathématiques que comme d'un outil de modélisation de phénomènes en physique, chimie, biologie ou économie. Pourvu que l'on enseigne en fin de compte les bases indispensables (raisonnement, abstraction, calcul). Si en plus cela peut aider a développer une meilleure culture scientifique, que très souvent ils n'ont pas...
Au demeurant je suis assez inquiet de te voir systématiquement parler de programmation des qu'on aborde le sujet de l'enseignement de l'informatique car j'ai bien peur que cela ne relève du même biais que pour les mathématiques a savoir l'attrait de la discipline en soi. Ce qui compte en informatique c'est sa capacité a automatiser des processus existants (sous-jacente est l’idée d'algorithme et de calcul). Des lors je ne vois aucun problème a ce que les élèves fassent de l'informatique sans programmation pourvu qu'ils apprennent les concepts importants.
De nombreux informaticiens seraient d'ailleurs bien incapables d'imager des façons d'enseigner l'informatique qui ne passent pas par l'enseignement de la programmation "juste pour enseigner la programmation" et ont du mal a même donner des exemples de comment l'informatique peut être un outil de découverte et modélisation pour la physique, chimie, biologie ou économie, au même titre que les mathématiques.
Former des gens qui 20 après n'ont rien retenu d'autre que le fait qu'en classe ils ont vu "les bases de données" ou "la constructions des réels" n'a strictement aucun intérêt. Or c'est ce que nous faisons. Si pour nous l'application de ces outils a la vraie vie est évidente, pour eux ce n'est pas le cas.
@Couard Anonyme: Il faut pardonner une certaine déformation professionnelle au sujet de la programmation. J'ai enseigné la programmation en Java pendant 10 ans, tout simplement parce que les cursus d'informatique (débutant) des établissements où j'enseignais consistent principalement en programmation et algorithmique.
La programmation barbe de nombreux étudiants : il faut dire que quand on est à bac+3 et qu'on a à côté des cours de physique où l'on explique les mystères de la mécanique quantique, courir après des points-virgules et autres problèmes techniques n'est pas forcément passionnant. J'avais donc proposé que l'on opère un changement ambitieux et que l'on commence par un module de calculabilité.
Je ne sais pas s'il y a un lien de cause à effet entre cette réflexion un peu ancienne et le lancement, l'an dernier, d'un cours de calculabilité/logique/complexité en deuxième année à l'X, où j'enseigne d'ailleurs. Notons à son propos que certains élèves regrettent qu'on ne fasse rien sur machine (même si nous essayons d'illustrer certains concepts théoriques par des problèmes très concrets, par exemple la garbage-collection ou encore la simplification des équations dans les logiciels comme Maple).
La discussion initiale portait sur le lycée car une importante partie de ses effectifs ne va justement pas poursuivre une carrière scientifique. Mais l'X en est peut-être l’équivalent dans le supérieur puisque de nombreux élèves finissent dans l'administration.
Globalement la plupart de nos enseignements sont comme ces articles ou l'auteur suppose que notre but c'est de devenir aussi expert que lui. Alors qu'une bonne publication doit pouvoir permettre aux lecteurs de lâcher en cours de route tout en ayant compris jusqu’où on peut aller pour y revenir en temps voulu et en ayant retiré quelque chose d'utile des parties lues.
Je me suis posé la question de savoir ce que ferais si j'avais a enseigner l'informatique sans faire de la "programmation classique" et voici ce qui m'est venu a l'esprit.
1. Analyse graphique de données avec Tableau (vidéo http://www.tableausoftware.com/prod... et exemples http://www.tableausoftware.com/lear...).
Tableau est isomorphe a SQL avec un toolkit graphique configurable en WYSIWYG générant du HTML et SVG (en fait après ils produisent des images statiques a la volée a cause des navigateurs). Ensuite on peut enseigner du traitement de données en Excel et Access pour préparer les entrées de Tableau. Puis du SVG et du HTML pour fignoler les sorties. Et on finit en "reconstruisant" les visualisations programmatiquement avec d3 en javascript (http://d3js.org/) et en manipulant le DOM pour l’interactivité.
2. Modélisation de problèmes de décision en PLNE avec Gurobi et Python.
Il s'agit de transformer des problèmes comme "dans combien d’années peut on sortir du nucléaire" en systèmes d’équations linéaires en nombres entiers. En fait la programmation y joue un rôle seulement parce qu'il est plus facile de manipuler des constantes symboliques, des tableaux et des boucles 'for' que d’écrire des équations a la main dans un fichier texte. On peut finir avec un peu d'algorithme du simplexe, de génération d’inégalités valides et de NP-complétude
3. Plus classiquement traitement du signal avec Matlab / Scilab et résolution numérique d’équations différentielles pour la physique et l’ingénierie.
Dans tous les cas je trouve l'enseignement des universités et des écoles d’ingénieur très peu audacieux. Il semble nous manquer une réflexion sur quoi, comment et pourquoi enseigner l'informatique.
@Couard Anonyme: Le problème de l'enseignement d'informatique à l'X est justement qu'il faut prévoir que les élèves peuvent lâcher à n'importe quel moment après le premier module ; c'est donc très différent d'une école comme l'ENSIMAG, où l'on peut prévoir un cursus structuré sur plusieurs années.
On enseigne la programmation parce qu'un ingénieur généraliste peut être amené à programmer ou à utiliser des outils comprenant une part de programmation (type Matlab), et qu'un gestionnaire doit pouvoir un minimum comprendre les enjeux informatiques et que pour cela il faut qu'il comprenne, d'une façon ou d'une autre, que les étapes de calcul ne sont pas magiques, que développer un logiciel cela prend du temps et qu'il y a de forts effets d'inertie (voir taille des bibliothèques Java). Au passage, on fait un peu d'algorithmique, ce qui permet par exemple de faire passer l'idée qu'un problème a des coûts mémoire et temps, éventuellement incompressibles, et que là encore il n'y a pas de magie.
À mon avis, il est important de contrer une certaine idée, que je constate parfois, qui est que la difficulté consiste à avoir des idées vagues de ce qu'il faudrait faire informatiquement, et qu'ensuite c'est juste un petit problème technique de mise en œuvre. Selon mon expérience, les étudiants ne prennent conscience de la difficulté de développer réellement qu'en projet ou en stage, quand ils voient que ça ne fonctionne pas, qu'il faut refaire des choses, qu'on ne comprend pas pourquoi ça ne va pas, que la programmation prend plus de temps que prévu, qu'il y a peut-être un problème dans l'algorithmique, et que la date limite approche.
Une fois j'ai travaillé avec une polytechnicienne qui avait fait le module de programmation en Java... eh bien elle n'en a clairement rien retenu a part le mot "Java". Cela dit, elle était "décideuse" dans l'administration, ce n'est pas bien grave.
Mais cela illustre le fait que tout ce que l'on apprend sans motivation rentre par une oreille et ressort par l'autre, peu importe qu'entre les deux le chemin ait été difficile. C'est la loi zéro du cerveau.
Je serais bien curieux de voir une vraie étude et pas juste mon "gut feeling" mais a mon avis tu te fais des illusions sur ce que les élèves retiennent de leurs cours aussi difficiles soient ils, et du nombre de polytechniciens qui finissent par faire un travail d’ingénieur (et pas juste chef de service a EADS).
Tiens, j'ai aussi travaillé avec un X dont le seul souvenir du cours de math était "les produits tensoriels c’était vachement dur"... rien de plus. C’était bien la peine de dépenser autant d'argent pour les former !
@Couard Anonyme: C'est un peu normal. Est-ce que je me rappelle de la bio de 1e/terminale? Il y a une substance appelée « adénosine triphosphate » qui a un rapport avec l'énergie des muscles, un truc appelé cycle de Krebs...
"Il y a une substance appelée « adénosine triphosphate » qui a un rapport avec l'énergie des muscles, un truc appelé cycle de Krebs..."
Arghhhh... cough ... cough... Adénosine triphosphate, plus couramment appelé ATP, c'est the molécule qui stocke l'énergie pour tous les processus biologiques, bref l'unité énergétique de base en biologie, comme l'ADN pour l'information génétique. C'est un peu comme si je te disais "en cours d'informatique, je me souviens avoir vu un truc appelé bit, ça servait à décrire des trucs avec des 0 et des 1" :)
PS : le poly de ton cours de calculabilité, il est dispo quelque part ?
Tu ne peux pas en même temps prétendre enseigner la programmation aux futurs décideurs parce qu'ils faut qu'ils essayent eux-mêmes pour "comprendre les enjeux" et simultanément dire que c'est normal que ces décideurs n'aient rien retenu 5 ans après.
Dans ce cas on revient au point de départ a savoir qu'il vaut mieux leur faire comprendre les enjeux mais illustrés sur des sujets qui les intéresseront d'avantage et donc seront plus susceptibles d’être mémorisés et réutilisés (par exemple de l'aide a la décision, de la fouille de données...)
Enseigner aux X la calculabilité et le Java est une façon très inefficace de leur faire "comprendre les enjeux" tout comme enseigner le théorème de Menelaus aux lycéens est une façon très inefficace de leur faire apprendre le raisonnement. Or l’inefficacité tue. Et génère des aversions.
Au sujet de ton exemple sur l'ATP, pour les normaliens tout le programme du bac plus le programme de toutes les disciplines scientifiques jusqu’à la licence est exigible et pourra être testé dans tout évènement mondain ou déjeuner entre collègues. Pour t'en convaincre je propose le test expérimental suivant : demandons a David Madore d'expliquer le cycle de l'ATP, la saponification et le théorème de Ceva.
Comme il m'arrive d'oublier aussi, je révise de temps en temps avec le cartoon guide to genetics (http://www.amazon.com/Cartoon-Guide...) ou le manga guide to molecular biology (http://www.amazon.com/The-Manga-Gui...). C'est quand même plus rigolo que le Lodish (http://www.amazon.com/Molecular-Cel...)
@Couard Anonyme: Halte au pipeau ! Tu as pris un exemple de personne ayant tout oublié de ses cours de Java et tu en déduis que c'est inutile d'enseigner Java. Je pense que, quel que soit ce qu'on enseigne, y compris ce que toi tu souhaiterais voir au programme, il y aura une certaine proportion d'étudiants qui l'auront oublié !
Et ne me lance pas sur la saponification, qui m'est chère. (En revanche, je (ré)apprends l'existence du théorème de Ceva, ce qui est d'autant plus curieux que je suis agrégé de maths...)
La tournure du débat me fait sourire. Il semblerait que vous ayez oublié que vous avez été élèves et étudiants.
Le but des étudiants n'est pas d'acquérir des connaissances, mais d'obtenir des diplômes. Les employeurs ne recrute pas des compétences mais des diplômes (je parle des jeunes diplômés). Tant que la mentalité et la culture française n'évoluerons pas sur ce plan, vous pouvez adapter les cours comme vous le voulez, les élèves n'en n'auront toujours rien à cirer ; ils se contenterons de faire le minimum nécessaire pour obtenir leur diplôme, pas pour s'enrichir intellectuellement.
Si j'osais pousser un peu cette logique, je dirais que le but du chercheur est de publier des tonnes de papiers sans intérêt, plutôt que peu de papiers qui apportent vraiment quelque chose. C'est un effet collatéral de l'élitisme et de la sélection. Pourquoi voulez vous que les étudiants se comportent différemment ?
résumé par xkcd
Mais au contraire de EC patrouveur, je ne généraliserais pas "aux étudiants". Une grosse partie réagit probablement comme décrit, une autre cherche à acquérir des connaissances avant d'acquérir un diplôme. Je ne suis même pas sûr que cette proportion soit en diminution ou due à une spécificité de la mentalité française. Je crains que cela ne dépende beaucoup de l'éducation parentale.
Voici quelques propositions de Bret Victor qui à mon sens montrent que l'on peut faire bien mieux que le 'cours de Java de papa' (le lien te donne le minutage précis dans la video pour sauter le blah blah)
http://www.hteumeuleu.fr/bret-victo...
En particulier tu remarqueras que le 3e exemple (minutes 17 a 23) avec la visualisation de l'algorithme de recherche binaire n'est autre chose que de l'interprétation abstraite avec une visualisation automatique des traces de l'algorithme en cours de construction sur les classes d'équivalence les moins fines pour la sémantique de l'interprète abstrait.