Les nouvelles technologies pour l’enseignement des mathématiques
Intégration des TICE dans l’enseignement des mathématiques

MathémaTICE, première revue en ligne destinée à promouvoir les TICE à travers l’enseignement des mathématiques.

Comment rationaliser l’enseignement de l’algorithmique au lycée
Article mis en ligne le 9 octobre 2015
dernière modification le 11 novembre 2015

par Patrick Raffinat

Cet article peut être librement diffusé à l’identique dans la limite d’une utilisation non commerciale suivant la license CC-by-nc-nd http://creativecommons.org/licenses/by-nc-nd/3.0/fr/legalcode

A) Introduction

Suite à mon dernier article [1] dans MathemaTICE, le comité de rédaction m’a sollicité pour que j’en rédige un nouveau sur ma vision de l’algorithmique au lycée. Son thème aurait été de faire des propositions sur un enseignement autonome de l’algorithmique (donc en dehors des heures de mathématiques comme c’est le cas actuellement), d’argumenter sur les outils à mettre en oeuvre dans cette perspective...

J’ai répondu que j’étais flatté, mais que je ne voyais pas l’utilité de le faire puisque divers organismes ou associations ont déjà élaboré des propositions cohérentes sans qu’elles n’aboutissent. Mais j’ai ajouté que j’étais intéressé par une thématique voisine, plus utile à court terme : écrire un article en vue de simplifier concrètement le travail des enseignants de lycée (hors ISN), en interprétant judicieusement les nombreux flous des programmes officiels.

Je vais essayer de relever le défi, avec ma vision d’enseignant d’informatique (que je suis actuellement) et celle d’enseignant de mathématiques (que j’ai été), tout en tirant profit de l’expérience supplémentaire que m’apporte le fait d’exercer dans un DUT « Statistiques et Informatique Décisionnelle ».

Cela me conduira notamment à proposer un socle algorithmique en seconde, à enseigner avant de passer à des algorithmes mathématiques. Il sera illustré avec des exemples disponibles sur un cours en ligne.

Je proposerai également en épilogue deux sketches (!) dont le but est non seulement de faire sourire mes lecteurs, mais aussi de souligner quelques tares d’un enseignement de l’algorithmique au lycée qu’il est indispensable de réformer. La caricature peut-elle y contribuer ?

B) Module d’initiation en IUT

Introduction

Avant d’aborder les contenus du programme de lycée, il me semble pertinent de faire un parallèle avec un module d’initiation que j’ai enseigné il y quelques années, époque où mes étudiants n’avaient pas encore suivi d’enseignements d’algorithmique au lycée.

Ce module s’étalait sur 8 semaines, avec chaque semaine une heure de cours magistral en amphithéâtre, 1 heure 30 de travaux dirigés (par groupes d’au plus 28 étudiants, dans une salle sans ordinateur) et 1 heure 30 de travaux pratiques (demi-groupes d’au plus 14 étudiants, dans une salle avec ordinateurs). Pour fixer les idées, je suivais la progression pédagogique suivante :

  • semaine 1 : affectations et entrées-sorties
  • semaines 2 à 3 : instructions conditionnelles
  • semaines 4 à 5 : boucle Pour
  • semaine 6 : boucle Tantque
  • semaines 7 à 8 : sous-programmes

C’est bien sûr approximatif, d’autant plus qu’il y a évidemment interpénétration entre ces divers thèmes. Je vais éliminer de mon analyse les semaines 7 à 8, puisqu’en seconde on n’étudie que des fonctions mathématiques. Il reste donc 6 semaines dont le contenu ressemble étrangement à celui du programme officiel de seconde...

Cours en ligne

Pour accompagner la documentation du logiciel PluriAlgo, j’ai ajouté un cours d’algorithmique qui peut être lu de manière indépendante. Si vous accédez à la version en ligne du logiciel, ce mini-cours apparaîtra dans la moitié gauche de la fenêtre de votre navigateur, mais vous pouvez aussi le voir sur la totalité de la fenêtre [2] .

Les rubriques du cours en ligne

Si je parle de ce cours en ligne, c’est parce qu’il correspond grosso-modo à ce que j’enseigne dans mes cours magistraux. Il faut occulter les rubriques « Travaux pratiques », dont le rôle est d’illustrer les fonctionnalités de PluriAlgo. Les rubriques « Travaux dirigés » correspondent ici à des exercices d’illustration présentés pendant les cours magistraux. Les véritables exercices de travaux dirigés, traités en groupes d’au plus 28 étudiants, n’apparaissent pas dans mon cours en ligne.

Transposable au lycée ?

Dans l’absolu, ces 6 premières semaines du module devraient pouvoir être facilement transposées au lycée. Mais les rédacteurs du programme officiel ont malheureusement multiplié les obstacles en proposant un contenu vague, sans volume horaire, sans progression pédagogique entre les diverses années...

J’ai donc interrogé le comité de rédaction de MathémaTICE pour savoir s’il n’y avait pas au minimum un chiffrage officieux du volume horaire (y compris sur ordinateur) dont je n’aurais pas connaissance.

J’ai constaté que malgré une volonté indéniable de satisfaire ma demande, il a été impossible d’obtenir les chiffres espérés, 6 ans après l’instauration de ces « nouveaux » programmes qui ne cessent de me surprendre désagréablement.

Cela me conduira donc à compacter au maximum mon module d’IUT, afin de réduire le risque de faire une proposition trop coûteuse en temps.

C) Interprétation du programme de seconde

Introduction

La seconde est l’année stratégique de la formation algorithmique des lycéens. C’est là qu’ils peuvent acquérir les bases qui leur serviront dans les classes suivantes.

C’est aussi là, hélas, qu’ils peuvent être irrémédiablement dégoûtés de la programmation : même si la plupart n’ont pas vocation à programmer dans leur future vie professionnelle, il est cependant important de leur donner une bonne culture algorithmique dans un monde de plus en plus numérique. C’est visiblement loin d’être le cas, comme en témoignent certains enseignants de l’option ISN [3] :

C’est pourquoi je recommande de ne pas aborder les algorithmes mathématiques du programme de seconde avant d’avoir effectué une formation algorithmique minimale (7 heures) au préalable. Son contenu est décrit dans les sous-sections « Socle algorithmique 1 » et « Socle algorithmique 2 ».

Socle algorithmique 1

Le chapitre du cours en ligne intitulé « Premiers pas en algorithmique » porte sur les variables, les affectations et les entrées-sorties. J’y passe 4 heures, et je vous conseille de ne pas en faire moins : en effet, si les élèves n’assimilent pas parfaitement ces concepts, ils ne comprendront pas grand chose aux activités que vous traiterez le reste de l’année. Il faut donc insister sur les affectations, en proposant des exercices sur papier où l’on demande d’indiquer la valeur des variables après chaque affectation. Vous en trouverez des exemples dans la rubrique « Travaux dirigés » du cours en ligne (exercices 2 et 3), mais vous pouvez évidemment en proposer d’autres.

Comme algorithme introductif, je trouve celui du cours en ligne (achat) pertinent en seconde. Il faut y ajouter d’autres exemples permettant d’assimiler l’écriture de petits algorithmes : surface et périmètre d’un champ rectangulaire, location de voitures (exercice 1 du cours en ligne)... Pour chacun d’eux, il faut insister sur un point : exiger que les élèves précisent les entrées et les sorties avant d’écrire la moindre instruction.

De plus, je vous conseille d’utiliser les notations de votre manuel de seconde plutôt que celles de mon cours en ligne. Dans ce chapitre fondamental, une séance sur ordinateur [4] s’impose : elle permettra notamment de mieux appréhender le concept d’entrée et fera découvrir l’environnement de programmation utilisé par la suite, ce qui est plus motivant que le pourtant indispensable pseudo-code sur papier.

Socle algorithmique 2

Ce socle porte sur les instructions conditionnelles et les boucles. Je propose d’y passer 3 heures (dont une séance sur ordinateur), ce qui est évidemment trop peu pour que les élèves puissent maîtriser des notions auxquelles je consacre 20 heures dans mon module d’IUT !

L’objectif du socle 2 est plus modeste : donner quelques rudiments permettant d’aborder par la suite les algorithmes mathématiques du programme de seconde, en évitant d’introduire des notions qui demandent longtemps à être acquises (sauf pour des élèves brillants), voire qui ne seront jamais acquises pour certains. Si j’enseignais en seconde, je tiendrais à préciser aux élèves que c’est comme savoir lire, donc qu’ils peuvent et doivent maîtriser ce socle. Et, comme pour mes étudiants d’IUT, je leur demanderais de mémoriser les deux exemples introductifs qui suivent.

Pour les instructions conditionnelles, l’exemple du cours en ligne (achat avec remise conditionnelle) convient tout à fait en seconde. Il faut toutefois limiter le nombre de remises conditionnelles à 1 ou 2, le programme officiel ne s’intéressant qu’aux alternatives simples ou doubles et l’imbrication d’instructions conditionnelles étant trop compliquée à ce stade.

Pour les boucles, je pourrais être tenté de proposer aux lycéens le premier exemple sur les boucles du cours en ligne (entiers impairs de 1 à 99). Mais je ne le ferai pas car aucune des deux versions proposées pour cet exemple ne me paraît pertinente :

  • le Pour avec incrément 2, bien que simple à comprendre, ne figure pas au programme.
  • j’exclus le Tantque à ce stade car l’instruction d’affectation (k reçoit k+2) complique une assimilation beaucoup moins naturelle [5] qu’il n’y paraît.

Je suggère donc de prendre comme exemple de référence non pas l’affichage des nombres impairs, mais celui des nombres pairs de 2 à 100 car il peut être naturellement écrit avec le pas d’incrémentation implicite de 1. Au passage, je ferai remarquer que c’est voisin de l’affichage de la table de 2, donc voisin de l’affichage de la table de 7 qui n’a pas été l’évidence qu’elle aurait dû être à l’entrée de l’option ISN...

Algorithmes mathématiques

Je ne peux pas en dire beaucoup sur le choix des algorithmes mathématiques que je préconiserais, puisque nul ne semble savoir combien d’heures il faut consacrer en tout à l’algorithmique ! La seule obligation mathématique est de faire des simulations dans la partie probabilités-statistiques. Mais, bien que de nombreux exercices algorithmico-statistiques aient vu le jour à l’occasion de la réforme, je ne les utiliserais pas si j’enseignais en lycée : je choisirais un tableur, comme le permet le programme officiel et surtout comme le font mes collègues qui enseignent les statistiques en DUT « Statistique et Informatique Décisionnelle ».

Je crois en effet qu’il est préférable de se focaliser sur l’observation et l’interprétation des résultats, afin de privilégier la formation des élèves aux subtilités [6] de la culture statistique. De plus, si je reprends ma casquette d’enseignant d’informatique, ces exercices me paraissent trop abstraits pour que les élèves puissent en tirer un bénéfice d’un point de vue algorithmique. Pire, certains peuvent être dégoûtés de l’algorithmique ... et des statistiques !

Il reste de nombreuses autres possibilités d’exercices dans les deux autres thématiques (fonctions et géométrie) : « c’est vous qui voyez », en fonction de vos préférences et du temps disponible. Si je reprends ma casquette d’enseignant de mathématiques, j’ai un faible pour les algorithmes (pré-)historiques qu’on enseignait informellement avant l’apparition des calculatrices programmables. Je pense notamment à la résolution par dichotomie d’une équation f(x)=0, qu’on mettait d’ailleurs en pratique avec une calculatrice non programmable.

Concrètement, je donnerais aux élèves le pseudo-code [7] et reviendrais aux fondamentaux en leur demandant de résoudre numériquement un exemple grâce à leur calculatrice ... mais en leur interdisant de la programmer ! Ensuite, quitte à être plus moderne, je leur suggèrerais de vérifier (hors cours) les résultats en exécutant la version AlgoBox de l’algorithme qu’on trouve dans les exemples fournis avec le logiciel.

Accès ordinateur

Le socle algorithmique comporte 2 séances sur ordinateur. Je conseille d’y faire uniquement des manipulations, pour que les élèves s’approprient leur environnement de programmation et y prennent goût, et donc d’éviter des questions de réflexion algorithmique.

Pendant ces 2 séances, les élèves constateront que l’écriture préalable d’algorithmes en pseudo-code a grandement facilité le codage des programmes finaux dans un langage de programmation. C’est le moment d’en profiter pour les convaincre que l’écriture de pseudo-code (en salle traditionnelle sans ordinateur) n’est pas du tout une perte de temps, contrairement à ce que beaucoup de gens (y compris des enseignants) pensent. Et, s’il reste des élèves dubitatifs, recourez à un argument « pédagogique » imparable : le pseudo-code sert au bac !

D) Les autres classes du lycée

Première

Le programme officiel de première est un copier-coller de celui de seconde, ce qu’on précise en indiquant que « les élèves ont conçu et mis en oeuvre quelques algorithmes » en seconde et « que cette formation se poursuit tout au long du cycle terminal ». Cela montre avec quelle désinvolture on introduit la culture algorithmique au lycée...

Puisqu’on rappelle fort opportunément aux étourdis qui l’auraient oublié que la première est une poursuite de la seconde, il aurait été bienvenu qu’on en profite pour préciser pédagogiquement comment la mettre en oeuvre. Pour ma part, je propose 2 compléments au socle 2 de seconde :

  • traiter l’affichage des nombres impairs avec un Tantque.
  • illustrer de façon ludique la technique de sommation avec un problème d’escalier [8].

Mon ironie serait peut-être déplacée si l’algorithmique avait été introduite dans les enseignements de mathématiques à la demande insistante des enseignants de mathématiques, parce qu’ils en auraient eu un grand besoin : dans ce cas, il suffirait en effet de piocher dans un vaste catalogue d’activités faciles à trouver sur Internet. Si tel était le cas, tant pis pour la diffusion de la culture algorithmique hélas, mais ça serait cohérent pédagogiquement.

Ce qui l’est moins, c’est de n’avoir fixé aucun langage de programmation en seconde. Supposons en effet qu’un enseignant de première ait dans sa classe des élèves provenant de plusieurs secondes : la seconde A a utilisé AlgoBox, la seconde B a utilisé Python et la seconde C a utilisé une calculatrice programmable. L’enseignant de première doit-il, au non de l’équité, privilégier un nouveau langage ? Certes, l’apprentissage d’un pseudo-code facilite celui d’un nouveau langage, mais c’est plus difficile qu’on le croît pour des élèves moyens de changer de langage et, de toute façon, cela fera perdre du temps.

Terminale

Fatigué de chercher à donner des conseils avisés dans un contexte ubuesque, lassé de voir les mêmes instructions qu’en seconde dans le programme officiel, je jette l’éponge pour la terminale.

Le seul conseil avisé que je peux donner est de ne pas oublier de traiter les suites récurrentes : ça pourrait tomber au bac ! Mais ça, tout le monde le savait déjà, mille fois hélas...

Je rappelle que j’avais « interdit » l’utilisation de la calculatrice programmable en seconde, mais que j’avais par exemple souligné la pertinence d’utiliser (sans programmer) une calculatrice pour résoudre numériquement par dichotomie une équation f(x)=0. Cependant, si certains enseignants estiment qu’il est nécessaire de savoir programmer une calculatrice au bac, je ferai une concession exceptionnelle pour ne pas risquer de faire chuter les statistiques de réussite au bac !

En plus, deux années sans programmer avec une calculatrice auront permis d’éviter aux élèves déjà dans le rouge des difficultés d’apprentissage occasionnées par l’usage de la calculatrice.

Pour conclure sur un sujet que j’ai développé parce que mon rejet des calculatrices programmables n’est pas partagé par tous, j’ajouterai que c’est un outil qui a eu un intérêt pédagogique à une époque révolue. Il y a maintenant beaucoup mieux comme outil pédagogique et, dans le monde professionnel, je serais très surpris d’apprendre qu’on y programme encore avec une calculatrice.

E) Conclusion

La réforme est partie d’une louable intention (donner une culture algorithmique aux lycéens) pour dériver vers un excès d’activités mathématiques censées être profitables à l’enseignement des mathématiques, afin de « surjustifier » l’intégration de l’algorithmique dans des enseignements de mathématiques : or, même s’il y a des liens indéniables entre les deux matières, il est malgré tout patent que le choix a été plus économique que pédagogique.

En outre, plusieurs erreurs majeures ont été commises : ne pas chiffrer au moins approximativement le temps à consacrer à l’algorithmique, ne pas imposer (au moins en seconde [9] ) un langage de programmation contrairement aux classes préparatoires...

J’en rirais si c’était un sketch, mais c’est une triste réalité qu’il faut changer. Faut-il tout casser pour repartir sur de meilleures bases ? Je me méfie de ce genre de solution à l’emporte-pièces, dont le remède peut être pire que le mal. Alors, quoi changer ?

Tout d’abord j’ai montré qu’on pouvait améliorer certaines choses en restant dans le cadre actuel du programme officiel, objectif annoncé de cet article : proposition d’un socle algorithmique en seconde, recommandation d’un langage unique (au moins en seconde)... Ce sont des mesures faciles à mettre en œuvre, pour peu que mon point de vue soit partagé, et qui ne coûtent rien.

En attendant que la réforme des collèges soit mise en place et se répercute dans les lycées, il me semblerait judicieux (et pas trop compliqué) de modifier les programmes officiels de lycée sur au moins deux points :

  • généraliser l’option ISN à toutes les terminales [10], en tenant compte des spécificités de chaque filière.
  • supprimer les questions d’algorithmique dans les épreuves de mathématiques au bac.

La première mesure permettrait d’offrir enfin une culture informatique (et pas seulement algorithmique) au lycée. La seconde mesure simplifierait la tâche des enseignants de mathématiques, en évitant certaines séances d’algorithmique dont le seul but pédagogique est de préparer aux questions algorithmiques du bac !

La mise en place de ces mesures dépendant de trop de paramètres que je ne maîtrise pas, il est inutile que je cherche à préciser si je ferais disparaître ou non tout enseignement d’algorithmique en mathématiques, d’autant que la donne sera changée en 2020 avec la réforme des collèges en 2016.

Epilogue

A force de jongler entre mes casquettes d’enseignant d’informatique et d’enseignant de mathématiques, celles-ci ont fini par avoir leur existence autonome et se sont mises à débattre du volume horaire d’algorithmique en seconde, chiffre crucial qui n’a jamais pu être établi je vous le rappelle ! Voici comment mes deux casquettes ont obtenu la réponse tant attendue :

Partie 1 : le volume horaire...

J’espère que ce dialogue surréaliste vous fera sourire, mais aussi réfléchir sur certains points évoqués plus sérieusement dans l’article. Et si ce dialogue vous a plu, je vous invite à découvrir comment s’est déroulé trois mois plus tard le stage que redoutait tant la casquette de mathématiques :

Partie 2 : le stage...

Et si ce second dialogue vous a encore plu, aucune suite n’est malheureusement prévue car les casquettes vont prendre un repos bien mérité en attendant … qu’on les appelle pour rédiger les futurs programmes officiels du collège, de l’école primaire [11] ou, mieux, de la maternelle !