Utilité de l’algorithmique
Utilité de l’algorithmique
Beaucoup (trop ?) de profs de maths se posent la question de l’utilité de cette nouvelle recrue. Certains ont l’impression de devenir des profs d’informatique…
Je vais répondre avec mon expérience personnelle et professionnelle :
•tout d’abord, j’ai commencé à apprendre ce qu’est la rigueur avec la programmation. La rigueur, c’est un pilier des maths, mais les élèves n’y sont guère sensibles : quand on fait une erreur de raisonnement dans une copie, on retrouve des gribouillis rouges dessus et on perd 1/4 de point ; quand on fait un programme, si on le fait mal, la sanction est immédiate : ça ne marche pas.
•On apprend que l’ordinateur est stupide, et qu’il ne fait QUE ce qu’on lui demande de faire (j’adore voir les élèves faire un programme et ne pas donner un ordre de sortie de résultat : leur tête à l’éxécution, quand rien ne se passe ! Très formateur…)
•Si on ne prévoit pas tous les cas, ça ne marche pas bien : ça apprend aussi à structurer ses démonstrations, à disjoncter les cas, à réfléchir s’il n’y a pas un cas tordu qu’on a oublié…
•Et surtout, ça apprend à analyser un problème «compliqué», et à le décomposer en plusieurs tâches simples, chose qu’on ne voit pas trop à l’école et qui donne du fil à retordre à bien des élèves…
•Et en prime, un bon paramétrage du programme oblige à utiliser beaucoup de variables, et non plus des nombres : c’est du calcul littéral pur, et certains élèves qui n’en avaient pas encore vu l’intérêt peuvent le découvrir ici. Et on peut au passage glisser un mot sur l’efficacité et la productivité, choses dont ils entendront beaucoup parler ultérieurement.
•pour moi, l’algorithmique n’est pas de l’informatique (c’est pourquoi j’ai été sévère avec python). Dans mon passé professionnel, j’ai connu de bons informaticiens, qui maîtrisaient bien leurs machines et leurs programmes, respectaient scrupuleusement les règles de codage, mais qui étaient très mauvais en algorithmique : ils profitaient de la puissance des machines pour écrire des routines de calcul très mal optimisées, voire qui ne faisaient pas bien le travail demandé… Tout ceci demande un certain bagage mathématique, ce n’est pas que de la technique de programmation !
•En clair, on peut écrire un programme très propre du point de vue procédures informatiques, mais nul du point de vue algorithmique, et à contrario, on peut coder «avec les pieds» (structure informatique totalement aberrante, selon l’expression consacrée…) un algorithme absolument génial. Et bien entendu, on peut faire tout bon ou tout faux !
Les deux compétences sont indépendantes.
Bref, l’apprentissage de l’algorithmique est très formateur, ça permet de voir concrètement à quoi sert la rigueur (la sanction est immédiate !), ça permet de structurer la pensée, décomposer un problème, et en prime, ça sert de support concret à des théories abstraites (les probas par exemple) : voir concrètement, avec son propre programme, ce que donne en pratique le phénomène de variabilité d’échantillonnage, c’est mieux qu’une simple définition dans un livre, non ?
D’où pour moi, la pertinence des nouveaux programmes : faire de l’algorithmique au long cours, au fil des chapitres, et pas sur une séance isolée…
Et maintenant, la programmation ?
La réforme du collège de 2017 a introduit la notion de programmation en cours. A ce niveau, il s’agit de fabriquer des petits automates avec le logiciel Scratch. Les élèves se débrouillent plutôt bien.
Clairement, on sort un peu du domaine des maths : ça aurait été plus pertinent en cours de technologie ? Ou alors comme enseignement transversal (le gros pilier de la réforme de 2016) ? Le problème est qu’il a fallu choisir un logiciel de programmation. Visiblement, le choix a été fait par l’institution : Scratch. Il est présent dans tous les manuels, les exos, la formation des enseignants… et au brevet.
Pareil au lycée : en 2nde en 2017-2018, il faut écrire du code. Python a été d’abord préconisé par un document ressource du ministère, pour au final être imposé dans le programme officiel, ce qui est logique, on voit mal chaque prof faire le langage qui lui plaît (on fait quoi au bac ??)
Bref, la programmation au collège/lycée, ok sur le principe, mais la mise en œuvre n’a pas été trop réfléchie…
Et ça brouille l’enseignement de l’algorithmique. Un logiciel comme Algobox est sorti des pratiques, et c’est bien dommage, car il a été très mal remplacé par python.