Les attentes
Lors de la mise en pratique de cette tâche, nous nous attendons à ce que les élèves s’approprient, par des essais successifs, le problème d’identification d’un nombre entier inconnu dans un intervalle donné auquel participent deux joueurs. Nous espérons que chaque essai va donner lieu à un diagnostic de comparaison de l’essai et du nombre entier secret, pour découvrir que la méthode de dichotomie peut s’avérer être une solution à ce problème.
Nous nous attendons aussi à ce qu’en mathématique les élèves mobilisent des connaissances anciennes comme le calcul d’une moyenne de deux nombres entiers, et qu’ils acquièrent aussi des connaissances nouvelles sur les concepts de partie entière d’un nombre réel et de nombre entier aléatoire sur un intervalle, ainsi que sur la méthode de dichotomie. L’utilisation de l’algorithmique doit permettre aux élèves : – d’interpréter la partie entière comme une fonction numérique ; – de définir un nombre (pseudo-)aléatoire ; – d’utiliser des variables itératives et de choisir une structure algorithmique pour formaliser en langage algorithmique la méthode d’approximation qu’est la dichotomie.
Les choix
La question posée
Nous décidons de ne pas poser la question de l’optimalité qui ne peut être traitée à ces niveaux scolaires (Seconde à Terminale Scientifique). Nous faisons l’hypothèse que la dichotomie va s’imposer aux élèves comme une stratégie « rapide » et « gagnante ». Nous traduisons cela dans la tâche donnée aux élèves par le fait que le nombre entier « secret », doit être découvert « en faisant le minimum de propositions » et en faisant l’hypothèse que les élèves vont interpréter cette condition comme étant un objectif de performance comparée qui ne sera pas exprimé en termes d’optimalité.
Le mode de travail
Quel que soit le niveau scolaire, les élèves sont en salle informatique et travaillent en binôme, de façon qu’il y ait un ordinateur par binôme équipé de deux logiciels permettant d’exploiter des organigrammes (avec LARP) ou un langage informatique (avec LARP et AlgoBox). Les élèves de chaque binôme sont libres de choisir tel ou tel artefact : « papier-crayon » pour les essais et l’approche ludique du problème, algorithmes écrits en langage naturel, organigrammes permettant une représentation graphique d’un algorithme, langage pseudo-code et langage machine.
De plus, quand la nécessité de passer à l’algorithmique pour modéliser le jeu « recherche d’un nombre entier secret » va apparaitre dans l’esprit de l’élève, afin d’étudier l’optimalité de la stratégie « rapide » conjecturée, la transposition du travail, fait à l’aide du « papier-crayon » un algorithme associé à cette stratégie « rapide » va aussi nous permettre d’observer si la programmation d’un algorithme peut aider les élèves à changer leur conception des variables, ou les aider à améliorer leurs raisonnements mathématiques ou participer à la formation de leur esprit critique.
Les algorithmes en jeu
Quel que soit le niveau scolaire, la règle du jeu proposée aux élèves est la suivante :
Le jeu proposé ci-dessous se joue à deux joueurs A et B.
• Le joueur A choisit « secrètement » et au hasard un nombre entier « secret » compris entre 1 et 1000.
• Le joueur B doit deviner ce nombre entier « secret » en faisant le minimum de propositions.
A chaque proposition du joueur B, le joueur A répond par « le nombre cherché est plus grand », « le nombre cherché est plus petit » ou « bravo, tu as gagné » selon la position de la proposition par rapport au nombre entier « secret » à atteindre.
Lors de cette ingénierie les élèves ont pour objectif final la production d’un algorithme dit du joueur B, c’est-à-dire conçu pour être exécuté par une machine émettant de façon automatique des propositions en fonction des réponses d’un joueur A, sur le principe de la dichotomie.
Nous considérons aussi dans cette section l’algorithme dit du joueur A, c’est-à-dire conçu pour être exécuté par une machine mémorisant un nombre « secret » et émettant de façon automatique des réponses aux propositions d’un joueur B.
En effet, notre hypothèse est qu’un travail sur les deux algorithmes peut permettre de clarifier les positions respectives de la machine (dispositif automatique) et de l’utilisateur, et que leurs similarités et différences peuvent être mises à profit dans la construction de l’ingénierie.
Structures et expressions possibles de l’algorithme du joueur A
Nous présentons ici les différentes expressions possibles de l’algorithme du joueur A.
a) La structure « Boucle… FinBoucle » avec sortie à l’intérieur de la boucle (QuitterBoucle)
• Un peu de théorie
Nous appelons « Boucle…FinBoucle » une structure de contrôle capable d’exécuter un certain nombre de fois une même série d’instructions formant le corps de la boucle, en fonction d’une ou plusieurs conditions à vérifier. L’utilisateur doit toujours vérifier que les conditions deviennent fausses à un moment donné afin de sortir de la boucle. En effet, si ceci n’est pas vérifié la boucle devient infinie et fait « bugger » le programme.
Dans la culture des lycées français, il n’est souvent proposé qu’une seule structure pour les boucles à nombre d’itérations non connu. Comme la structure « TantQue … Faire » est plus générale puisqu’elle n’implique pas au minimum un passage dans la boucle, c’est celle qui est retenue par la quasi-totalité des enseignants et des auteurs de manuels (cf. les analyses des différents manuels faites au Chapitre 3). Ici aussi, nous prenons en compte ce choix, en ce qui concerne l’expression textuelle, sans le discuter puisque ce n’est pas l’objet de cette thèse. Néanmoins, nous pensons intéressant que lors de l’expression sous forme d’une disposition spatiale (organigramme), les élèves puissent avoir le choix des deux structures. Nous pensons que cela leur donne plus de liberté pour passer du traitement manuel à une expression algorithmique, tout en nous conforment aux usages en ce qui concerne l’expression textuelle.
De plus, le choix de proposer aux élèves une disposition spatiale peut permettre de diversifier les possibilités d’expression.
Structures et expressions possibles de l’algorithme du joueur B (celui qui propose des réponses)
Nous souhaitons présenter les expressions de l’algorithme du joueur B pour les structures « Boucle… FinBoucle » et « Répéter … Jusqu’à », ainsi que pour l’« expression textuelle »
• TantQue … Faire ».
a) La structure « Boucle… FinBoucle »
Comme pour l’algorithme du joueur A, cette structure reste isomorphe au traitement
« manuel » tel qu’il est proposé aux élèves. Ainsi, on peut avoir comme expression
• textuelle » de l’algorithme du joueur B, la formulation suivante (fig. 77).
b) La structure « Répéter… Jusqu’à »
La structure globale est la même que pour l’algorithme du joueur A, la boucle Répéter…Jusqu’à » répète le traitement jusqu’à ce que la condition (expression booléenne) choisie soit vraie. Cette condition correspond à la même situation que celle l’algorithme du joueur A. Le corps de boucle contient une seule alternative au lieu de deux imbriquées comme dans l’algorithme du joueur A, la seconde branche de cette alternative pouvant être exécutée dans le cas où la réponse est « égal », alors qu’elle n’a de sens que pour une réponse « trop grand ».
L’algorithme que nous considérons ici, diffère aussi de l’algorithme du joueur A car il implique des variables entières itératives qui évoluent selon une stratégie prédéfinie : les bornes de l’intervalle courant (VP1 et VP2 dans les figures) dans lequel se trouve le nombre secret et une variable VP calculée à partir de VP1 et VP2 en fonction de la stratégie choisie (la partie entière de la moyenne dans les figures). Il est important que VP1 et VP2 soient initialisées avant la boucle. VP peut prendre sa valeur initiale dans le corps de boucle.
c) La structure « TantQue… Faire »
La structure globale est ici aussi la même que pour l’algorithme du joueur A, la boucle TantQue…Faire » répète le traitement tant que la condition (expression booléenne) choisie est fausse. Comme pour le « Répéter… Jusqu’à », le corps de boucle contient une seule alternative au lieu de deux imbriquées comme dans l’algorithme du joueur A.
Ici, aussi l’algorithme implique des variables entières itératives VP1, VP2 et VP qui évoluent selon une stratégie prédéfinie. Comme il est classique dans la structure « TantQue… Faire », une partie du traitement doit être réalisée avant le test d’entrée dans la boucle. Il est donc présent à la fois dans la partie initialisation et à la fin du corps de boucle.
Choix pour l’ingénierie
En fonction des analyses faites sur les algorithmes précédents, nous prévoyons une étape de préparation centrée sur la structure ; pour cette étape nous demandons aux élèves non pas de réaliser l’algorithme gagnant du joueur B, mais l’algorithme réalisant les actions du joueur A : choix du nombre « secret » et réponses aux propositions du joueur B. L’intérêt de ce choix vient du fait que l’algorithme du jouer A possède la même structure que celle du joueur B, mais n’implique pas la gestion de variables de boucle. Ainsi, nous séparons la difficulté pour les élèves.
Les phases
L’ingénierie est prévue pour une durée de deux heures. La première phase concerne l’algorithme du joueur A (celui qui choisit un nombre entier « secret » et qui répond aux réponses proposées par le joueur B), et les deux autres phases l’algorithme du joueur B. Nous concevons la première phase comme une prise de conscience de la structure algorithmique commune aux deux algorithmes, et par conséquent cette phase ne va pas jusqu’à la formulation dans un environnement de programmation. Les phases suivantes concernent l’algorithme du joueur B. nous choisissons de ne pas laisser les élèves d’emblée se confronter à l’ordinateur. En effet, compte-tenu de la complexité de l’algorithme, il ne serait pas aisé pour eux de tirer parti des résultats d’exécution dans le temps limité de la « sous-ingénierie ». Nous prévoyons donc une phase 2 de conception générale au « papier-crayon ». Puis, dans la phase 3, les élèves vont rencontrer les contraintes de l’expression dans un environnement de programmation. Nous choisissons de retarder l’exécution sur ordinateur jusqu’à la fin de cette phase.
Phase 1 (algorithme du joueur A – conception générale)
Dans cette phase, l’objectif consiste à ce que les élèves se familiarisent dans un premier temps avec le jeu en jouant à deux puis conçoivent la structure d’un algorithme écrit au papier-crayon » sous une forme « textuelle » ou « spatiale » représentant le joueur A, c’est-à-dire celui qui choisit « secrètement » et au hasard un nombre entier « secret » compris entre 1 et 1000.
