Exemples de dispositifs de classe
L’enseignement de l’algorithmique fournit l’occasion de varier les dispositifs de classe ; par exemple, on peut proposer aux élèves de modéliser d’une manière « semi-formelle » des algorithmes issus de la vie quotidienne et de les faire vivre sous formes d’activités de communication. Dans la progression pédagogique on aura intérêt à passer par des phases de tâtonnement, d’expression orale, d’échanges sans chercher à aborder trop rapidement la formalisation écrite qui peut s’avérer bloquante pour certains. Les exemples suivants ne sont décrits ni dans le détail, ni dans leur contenu ni dans leur mise en œuvre dans la classe. Ils peuvent servir de base à la mise en place d’activités de groupe permettant des premières réflexions autour de la notion d’algorithme dans le cadre de situations axées sur la communication. En ce sens, après un temps d’investigation les élèves seront chargés de produire un « texte » (écrit ou oral) compréhensible et directement utilisable par leurs camarades par exemple. Toutes ces activités ont pour objectif la production ou l’interprétation d’algorithmes et leur vérification obtenue par l’action immédiate et pas nécessairement issue directement du champ mathématique. Dans ces premières activités, la formulation sera probablement lourde en comportant des structures de la forme : « si tu es dans telle situation alors fais cela, sinon » ou « tant que ceci se produit on continue à faire… ». Cette lourdeur pourra alors fournir une motivation pour la mise en place une syntaxe commune sur des éléments d’algorithmique récurrents : boucles, tests… Cette syntaxe commune peut être un premier pas vers de premières rencontres avec des langages dédiés. Au cours de ce processus on pourra mettre en évidence le besoin de formalisation et de rigueur. Lors de ces premières activités on pourra montrer que, consciemment ou non, les élèves ont au cours des années précédentes (au collège) utilisé, voire conçu, des algorithmes en mathématiques. Ils pourront être mis en œuvre de manière naïve sous forme de jeux ; en effet la gestuelle peut beaucoup aider à comprendre certains algorithmes. Leur formulation pourrait alors permettre d’aborder différents aspects de la programmation : tests d’arrêts, boucle conditionnelle, etc. On peut citer par exemple la recherche par dichotomie, l’algorithme d’Euclide … Après une période d’initiation, on peut amener les élèves à lire des algorithmes pré-écrits, à comprendre ce qu’ils font et à poser des questions visant à les modifier.
Quelques jeux
Le « Jeu du cartable »
Pour nombre d’élèves de collège, préparer son cartable du lendemain de manière « optimale » est une activité parfois laborieuse ! Elle peut toutefois être le support d’un travail de découverte de la notion d’algorithme12. Confiée à des élèves disposés en groupes, l’objectif de cette activité est de décrire une méthode permettant de préparer au mieux (pas d’affaires manquantes, mais pas d’affaires superflues non plus) son cartable pour le lendemain. Différentes stratégies peuvent apparaître (en particulier celle de la table rase qui consiste à tout vider…). Chaque groupe a donc en charge la rédaction d’une méthode permettant de « faire son sac ». Par exemple : – préparation du traitement : liste des disciplines du lendemain et liste du matériel déjà présent dans le cartable ; liste du matériel par discipline ; – traitement : comparaison des documents se trouvant dans le cartable et ceux à y mettre ; – édition des résultats : liste des fournitures placées dans le cartable. Une fois réalisée, cette fiche est fournie à un autre groupe qui peut ainsi la tester.
Le « Jeu des multiples »
Ce jeu (parfois utilisé dans les cours de langues vivantes) peut être décliné sous de nombreuses variantes. Description du jeu : les élèves sont placés en rond. L’un après l’autre, les élèves égrènent les entiers naturels . La difficulté réside dans le fait que si l’entier est par exemple un multiple de 3, l’élève annonce « fizz », si c’est un multiple de 5, il annonce « buzz », etc. On peut proposer aux élèves d’écrire une règle du jeu à faire tester à leurs camarades : comment programmer une machine pour qu’elle réponde correctement si on l’incluait dans le jeu ? La question de l’arrêt du jeu se pose : fixer un entier maximal ? Arrêter quand il ne reste plus qu’un seul participant ? On peut bien sûr compliquer les règles du jeu en y introduisant des règles mathématiques plus sophistiquées. En voici quelques exemples, sachant que l’on choisit une onomatopée pour chaque entier à ne pas prononcer (la liste proposée n’est
12 Ce problème n’est pas sans évoquer le « problème du sac à dos » : parmi les objets que je dois emporter dans mon sac à dos, lesquels dois-je choisir pour maximiser la somme emportée tout en ne dépassant pas les 15 kg autorisés ? Des versions simplifiées de ce problèmes pourraient être présentées aux élèves.
pas exhaustive et ne sous-entend pas qu’elle doit être proposée dans cet ordre aux élèves) :
– si le nombre est le énième multiple de 3, l’élève doit répéter n fois l’onomatopée correspondante ;
– si le nombre est multiple de deux entiers choisis, l’élève doit prononcer les deux onomatopées correspondantes ; – si le nombre est multiple de plusieurs entiers choisis, il est prononcé tel quel ;
– si le nombre contient un entier choisi dans son écriture décimale. On voit que ce jeu peut par exemple permettre de déboucher sur la notion de ppcm ou de décomposition en produit de facteurs premiers . Les règles pourront être proposées par les élèves eux mêmes, désireux d’en augmenter la difficulté.
Tous en rang !
Ce jeu consiste en une course effrénée… pour ne pas être le premier ! Le principe : le professeur d’EPS a généreusement prêté son jeu de dossards. Tous les dossards sont différents. Après avoir endossé un dossard, tous les élèves s’alignent les uns à côté des autres sur un carrelage. Au signal donné par le professeur, chacun avance d’un nombre de carreaux égal à son numéro de dossard. À partir du signal suivant, les élèves avancent sur le même principe à la condition d’avoir un élève qui soit plus avancé qu’eux. Outre que les mises en place de ce jeu peuvent être multiples (avancée simultanée de tous les élèves ou avancée un par un, choix des dossards, nombre d’élèves…), cette situation permet d’aborder deux questions intéressantes : celle du ppcm de plus de deux entiers (qu’il conviendrait de faire découvrir par les élèves) et celle de savoir si un algorithme s’arrête. La programmation effective de l’algorithme pourra être envisagée dans un deuxième temps (elle nécessite au moins deux boucles imbriquées puisqu’à chaque « tour de jeu » il faut pour chaque coureur examiner si un autre coureur est devant). Si le temps ne le permet pas, on peut jouer à ce jeu sur un damier traditionnel dont le nombre de cases ne permet pas toujours d’aller jusqu’au bout de la partie. Il faut alors anticiper ce que sera la suite du jeu.
Quelques automates
Comme précisé dans le texte de présentation, nous sommes entourés d’automates dont le fonctionnement dépend d’algorithmes. Tenter de reproduire le fonctionnement de ces automates (dont certains ont été étudiés en cours de technologie au collège) peut être intéressant. En voici trois exemples qui pourront être illustrés dans un second temps à l’aide du logiciel Scratch qui fournit une interface graphique adaptée à ce genre de situation. On peut bien entendu décliner ces activités en fonction des réactions des élèves et de leur propositions. Elles ont l’intérêt de générer des algorithmes susceptibles d’être modifiés en fonction des paramètres d’utilisation qu’ils désireront perfectionner. Chacune ne devrait pas être livrée clé en main à la classe (ou aux groupes dans le cas où l’on envisage de confronter les productions) mais être pensée par les élèves qui en délimiteront le domaine d’application du plus simple au plus complexe.
Comment gérer un distributeur de billets de banque ?
Quelques exemples de traitements possibles : vérification de la date de fin de validité de la carte, du solde du compte, du retrait maximal autorisé (en jours glissés ou sur une période fixe), vérification du code secret (carte avalée au bout de trois essais erronés), choix multiples ou ouverts de la somme à retirer, comment fournir cette somme en fonction du nombre de billets encore disponibles dans le distributeur, impression ou non de la facturette…
Le débit de repas du self par carte
Cette situation vécue au quotidien par les élèves permet là encore d’explorer et de multiplier les contraintes selon les questions posées en classe. Quelques contraintes envisageables au moment où l’élève passe prendre son repas : l’a-t-il réservé dans la matinée ? Lui reste-t-il des crédits repas ? L’établissement propose-t-il des crédits repas ? L’établissement a-t-il besoin de conserver les statistiques de fréquentation de l’élève dans une base de données ?
Le digicode
Il s’agit de modéliser le système de saisie d’un code à 4 chiffres et 1 lettre donnant accès à un immeuble. L’algorithme étant un peu compliqué, il conviendra de commencer par un système simplifié à deux chiffres par exemple.