Bulletin Vert n°485
novembre — décembre 2011
Algorithmique en Seconde au fil du Net
J’entends d’ici ceux qui maudissent l’arrivée de l’algorithmique dans les programmes de Seconde : une concession de plus à l’informatique, qui grignote année après année les contenus de mathématiques !
À ces collègues, je crois utile de rappeler le livre intitulé « Histoire d’algorithmes [1] », joliment sous titré « Du caillou à la puce ». Il place la démarche algorithmique dans une perspective historique de longue durée et montre qu’elle fait partie intégrante (et fondamentale) des mathématiques dès l’origine. Ce livre, malheureusement épuisé, doit être ressorti d’urgence des bibliothèques (celles des IREM [2] en particulier).
Bien entendu, l’arrivée des « puces électroniques » a donné aux algorithmes une nouvelle actualité et n’est pas étrangère à l’introduction de ces démarches au lycée.
N’oublions pas « l’option informatique des lycées » qui fut une première tentative (trop vite abandonnée) de donner forme à un enseignement dont la nécessité ne fait aujourd’hui plus guère de doute [3].
Encore faut-il que l’on ne confonde pas algorithmique et programmation, et que l’enseignement à venir ne consiste pas à aligner des lignes de programme dans un langage hermétique.
Un algorithme doit être écrit dans un français rigoureux, nécessairement codé (un pseudo-code), mais indépendant de tout langage de programmation et de toute machine. La traduction d’un algorithme en programme informatique est d’autant plus immédiate que le langage informatique choisi est plus structuré. Cette remarque doit présider au choix des langages informatiques à mettre en œuvre dans les classes pour mettre en œuvre et tester les algorithmes.
Bien sûr, l’algorithme et le programme ne sont pas totalement indépendants : un algorithme récursif par exemple nécessite, pour une programmation aisée, l’usage d’un langage qui supporte la récursivité. Cette remarque souligne une fois encore l’importance du choix d’un langage évolué pour une programmation sans contorsionsinutiles.
Parmi tous les cours d’algorithmique en ligne sur Internet, celui de Christophe Darmangeat intitulé Algorithmique et programmation pour non-matheux : cours complet avec exercices, corrigés et citations philosophiques [4] a retenu mon attention. Il permet en effet à des non initiés d’entrer sans grande difficulté dans une pensée et une démarche un peu déroutantes au premier abord. Il y a dans ce cours bien plus qu’il n’en faut pour le programme de Seconde, pour lequel les rubriques suivantes sont bien suffisantes :
Je suggère de commencer la lecture par l’introduction à l’algorithmique, suivie des points 1 à 5, avant de voir les aspects plus spécifiquement informatiques du préambule. À noter la rubrique sur la logique, indispensable pour la maîtrise des tests et des itérations (conditions d’arrêt).
Chaque notion est présentée en français courant et illustrée par des exemples. Puis des exercices sont proposés au lecteur, avec leurs corrigés.
Le cours est agrémenté de citations philosophiques pour détendre le lecteur. En voici deux exemples :
- « Un programme est un sort jeté sur un ordinateur, qui transforme tout texte saisi au clavier en message d’erreur » — Anonyme
- « Un cíavier Azerty en vaut deux » — Anonyme
Dans le même esprit, l’IUT d’Orsay propose sous forme de diaporama, un cours de Cécile Balkanski intitulé Algorithmique : Volume 1 [5] , en 3 parties :
- Introduction
- Instructions de base
- Logique propositionnelle
Il couvre lui aussi le programme de Seconde (y compris la partie de logique). Pour les curieux, ils pourront aussi parcourir les volumes 2 à 5 qui donnent un panorama de l’algorithmique enseignée en IUT.
À noter que les algorithmes proposés dans ces deux cours ne sont pas traduits en langage informatique : c’est un choix judicieux qui permet de s’attacher à l’essentiel et qui évite l’infâme bidouillage qui caractérise trop souvent ceux qui programment plus vite que leur ombre…
L’Irem de Lille permet d’aborder la programmation à partir d’un cours en ligne d’Emmanuel Ostenne [6]. Il présente la traduction d’un algorithme simple dans différents langages/environnements, des calculatrices à Scilab, en passant par Pascal, ainsi que des tutoriels pour y entrer.
Plus approfondi, un article de Jean-Pierre Branchard [7] dans MathemaTICE traduit divers algorithmes mathématiques dans le langage JavaScript : on voit la faible distance entre l’algorithme et le programme associé (le langage est fortement structuré). Les corrigés des nombreux exercices proposés (fichier pdf téléchargeable) permettent au lecteur d’entrer de plain-pied dans la programmation (qui perd son caractère angoissant) : c’est une façon efficace de passer de l’algorithmique à la programmation. L’apprentissage en commun (communauté de pratique) ajoute à l’exercice un caractère plaisant et une efficacité certaine.
Enfin, pour ceux qui souhaitent faire un tour complet de l’algorithmique/ programmation , en Seconde (et au-delà), voici une carte mentale tout à fait exceptionnelle, dans laquelle on peut se promener à loisir : http://dhenin2.free.fr/AlgoSeconde/AlgoSeconde.html (lien inactif au 14/11/2021).
Preuve que cette question intéresse et mobilise beaucoup d’enseignants.