Chantiers de Pédagogie Mathématique Septembre 2012 n°154

À propos des exercices d’algorithmique du bac S 2012.

Cette année l’algorithmique a fait son apparition dans les sujets du baccalauréat S : sept épreuves sur neuf au total contiennent un exercice d’algorithmique. Le sujet Antilles-Guyane en propose deux (un pour les spécialistes et un pour les non-spécialistes) et il n’y en a pas dans les sujets Nouvelle-Calédonie et Liban. Le groupe algorithmique de l’IREM Paris 7 vous présente quelques commentaires généraux sur ces exercices suivis de réflexions plus particulières sur les épreuves de Métropole.

La présentation d’un algorithme en quatre parties intitulées  « Variables »,  « Entrée », « Traitement », « Sortie » est acceptable au niveau lycée. Mais distinguer la partie « Initialisation » de la partie «Traitement » n'a plus de réalité "technique" dans les langages modernes (ce sont juste des affectations comme les autres). Sa principale raison d’être serait d’aider les élèves à se souvenir d’initialiser les variables quand ils écrivent un algorithme.

 

Les formulations du type « demander à l’utilisateur la valeur de n », ou bien « afficher u », ou bien « saisir un réel  », ou bien encore « donner la valeur exacte affichée par cet algorithme lorsque l’utilisateur entre la valeur n=3 » évoquent une interface « machine » (on ne sait pas très bien d’ailleurs où cette machine se situe).  Or les algorithmes proposés dans les exercices dont nous parlons peuvent tous être vus comme des procédures, ou  «fonctions » au sens informatique du terme, possédant des paramètres (valeurs reçues en entrée) et un résultat dépendant de ces paramètres (valeur produite en sortie). Il n’y a donc pas de raison dans ces cas précis d’introduire dans leur écriture du vocabulaire lié à l’utilisation d’une machine (instructions dites « d’entrées / sorties »), qui peuvent entretenir dans l’esprit des élèves une confusion entre algorithme « idéal » et programme concret (voir les commentaires sur le sujet Métropole). Il suffirait donc d'indiquer les paramètres et le résultat en précisant leur nature (entier, réel...) dans les rubriques correspondantes. Il paraît alors logique d’inverser les rubriques « Entrées » (ou plutôt « Paramètres ») et « Variables ».

 

Les algorithmes proposés sont souvent dissociés du contexte mathématique dans lequel ils sont présentés. C’est notamment le cas pour l’épreuve proposée en Asie. On peut faire l’hypothèse que des allers retours entre l’algorithme et le problème « mathématique » pourraient être bénéfiques aux élèves  pour la compréhension et la résolution de l’exercice.

 

La suite de cet article est consacrée à l’analyse des exercices de Métropole et d’Asie. 

Voici le texte de l’exercice Métropole :

 

 

Deux collègues de l’académie de Versailles nous ont communiqué les résultats suivants qui concernent 99 copies corrigées.

Question B1 : 26 réponses correctes, 40 réponses incorrectes, 33 absences de réponse.

Question B2 : 5 réponses correctes, 50 réponses incorrectes, 44 absences de réponse.

 

Finalement 5 candidats sur 99 ont traité correctement les deux premières questions. Avec toutes les précautions d’usage dues à  la faible représentativité de l’échantillon on peut légitimement s’interroger sur les raisons de ce peu de réponses correctes.

 

À la première question, une majorité de candidats a répondu que l’algorithme donne le terme u3 de la suite. Cela pourrait provenir de deux facteurs :

L’exercice commence par donner l’expression du terme général de la suite , puis la lettre  est utilisée dans l’algorithme. Cette présentation est susceptible d’entraîner un élève  peu sûr de lui vers la faute.

 

La formulation « Donner la valeur exacte affichée par cet algorithme lorsque l’utilisateur entre la valeur  qui fait explicitement référence à une interface homme-machine a dû perturber les candidats un peu chevronnés en informatique.

 

En effet, tel qu’il est écrit, cet algorithme implémenté sur machine ne peut donner que 1,8333333 ou toute autre valeur approchée, mais pas la valeur exacte demandée.

 

Les erreurs à la deuxième question auraient pu être évitées en ajoutant « Fin de Pour » à la fin de l’écriture de la boucle. En effet, les élèves ont souvent introduit une instruction supplémentaire à l’intérieur de la boucle.

 

Quant à la troisième question, en plus de  l’apparition des valeurs approchées (voir remarque ci-dessus), il est troublant de voir apparaître   dans le tableau alors que  cette notation n’est pas utilisée dans l’algorithme. En revanche, la donnée du tableau est intéressante car elle permet au candidat de contrôler sa réponse à la question précédente. Il peut tester l’algorithme qu’il a élaboré en l’implémentant sur sa calculatrice et éventuellement le modifier. Compte tenu du temps que cela prendrait, il faudrait attribuer au moins un point à cette question.

 

On peut enfin signaler  un détail mineur : dans les règles du pseudo-code utilisé il n’y a pas de point à la fin de l’écriture de  l’instruction « Pour i variant de 1 à n ».

 

Pour conclure, voici  une proposition de modification de cet exercice qui tient compte de toutes les remarques qui précèdent :

 

Exercice 4 du sujet de Bac de Terminale S Asie juin 2012 (http://www.apmep.asso.fr/IMG/pdf/AsieS20juin2012-2.pdf )

 


Avant de lire les commentaires sur le sujet Asie juin 2012, nous vous suggérons de télécharger le document ci-dessous contenant le sujet original ainsi que des versions modifiées téléchargeables. Ils tiennent compte des remarques qui suivent et pourront vous servir pour exploiter ce sujet dans vos classes.

 

Sujet Asie Juin 2012
....................................................

Ce fichier comporte l'exercice 4 en version originale
suivi de trois versions modifiées de cet exercice.

...............................................
AsieS20juin2012_ex4_modif.pdf
Document Adobe Acrobat 44.1 KB
Sujet Métropole Juin 2012
Série S enseignement obligatoire
s-mathematique-obligatoire-2012-metropol
Document Adobe Acrobat 57.2 KB

Concernant le fond, le sujet d'Asie présente quelques points positifs. Premièrement, contrairement à l'exercice 3 du sujet de métropole de juin 2012, il commence par l’algorithme, Il présente également un contenu mathématique conséquent avec l'étude de deux suites jumelles adjacentes ce qui fait apparaître du point de vue algorithmique la nécessité d'utiliser une 3ème variable. L'indépendance des différentes questions et en particulier des parties algorithmiques et mathématiques permet de ne pas risquer de pénaliser les élèves. Cependant, malheureusement, aucun lien dans ce sujet n'est fait entre les parties mathématiques et algorithmiques. Aucune question ne permet non plus de montrer si l'élève a compris ou non ce lien … Il aurait été pertinent d'en poser une. Il aurait aussi été intéressant d'ajouter une question sur les conditions d'arrêt de la boucle « tant que ».


En ce qui concerne la forme, comme pour le sujet Métropole de juin 2012, les mots « saisir » et « afficher » bien que couramment utilisés dans les manuels nous semblent malvenus. Il nous paraît effectivement important de dissocier la notion d'algorithme de celle de programmation et d'interface homme-machine... Le choix de u et v comme variables alors que les suites se nomment Un et Vn peut être également critiqué car il apporte une confusion quand à ce nouveau statut de lettre abordé en algorithmique. Pour un travail en classe qui pourrait être prolongé par la programmation de l’algorithme, il serait judicieux de remplacer n par i et N par n pour simplifier l’usage de la calculatrice où le passage du mode majuscule au mode minuscule est moins pratique sur un clavier d’ordinateur. Il est également possible d’effectuer une modification qui ne ferait intervenir que trois variables r, s et w au lieu des quatre r, s, a et b (voir le sujet modifié n°2 ). L’algorithme serait alors plus efficace mais serait à notre avis probablement moins clair pour certains élèves. La symétrie du problème avec une variable supplémentaire rend les choses plus lisibles pour un novice...

 

Dans la partie initialisation de l'algorithme, affecter des valeurs à u et v n'a aucune utilité. En effet, avec n initialisé à 0 et N entier strictement positif, la boucle sera lancée au moins une fois et des valeurs seront alors affectées à u et v. Sa raison d'être est probablement principalement d'aider les élèves à se souvenir d'initialiser les variables quand ils écrivent un algorithme mais distinguer cette partie de la partie traitement n'a plus de réalité "technique" dans les langages modernes (ce sont juste des affectations comme les autres). Le tableau à compléter est quand à lui très ambigu ! Lors de la boucle « tant que », les valeurs de n, a, b, u et v sont modifiées. Quelles sont les valeurs demandées ? Celles de début de boucle ? Celles de fin de boucle ? Il aurait été souhaitable de le préciser dans le tableau pour éviter de perturber les élèves. L'ordre dans lequel les variables apparaissent dans le tableau serait également à modifier pour plus de clarté. L'usage de a et b dans la boucle a été discuté. En effet, dans le sujet original ces valeurs entrées comme des constantes, finissent par servir de paramètre. Vu que a et b ont un sens particulier dans le reste de l'exercice, une solution serait de déclarer deux variables res1 et res2 pour le résultat du calcul, et deux variables temporaires temp1 et temp2 pour le calcul intermédiaire (voir modification n°3).

 

Cette solution est moins efficace que les versions antérieures mais, l'efficacité ne nous semble pas être le problème majeur ici. On a alors l'avantage d'éviter toute ambiguïté sur le nommage des variables, et de ne pas modifier les valeurs de a et b, qui gardent leur rôle de constantes (comme dans le reste du texte). Le choix du type de la boucle est également discutable puisque l’on connaît le nombre d’itérations. On apprend aux élèves que la boucle TANTQUE est intéressante lorsque l'on ne connait pas à l'avance le nombre d'itérations. Ici, une boucle POUR i égal 1 à N aurait été beaucoup plus simple et aurait évité par exemple le problème du test dans le tableau... Cela pourrait donner lieu en classe à une extension de l’exercice avec critique de l’algorithme et réécriture avec une boucle « POUR i=1 à N ».

 

 

Pour aller plus loin, il est aussi possible de proposer, suite à cet exercice, une autre étude de suites jumelles en demandant à la fin aux élèves d'écrire eux même l'algorithme puis de leur faire remarquer qu'il s'agit du même. Une généralisation pourra ensuite être apportée en classe en écrivant un algorithme ayant en entrée les deux fonctions permettant de définir les suites jumelles Un et Vn.

 

Pour les membres du groupe algorithmique, Martine Bühler, Pierre Campet, Françoise Hérault, Jean-Marc Melchiore, Antoine Meyer

 

Dominique Baroux et Cécile Prouteau

 

Concours 2017-2018

Le thème est « Maths et mouvements ».

Nantes 2017

Les inscriptions sont possibles jusqu’au dimanche 15 octobre (tarif préférentiel jusqu'au samedi 16 septembre)

 

Le groupe M.:A.T.H.

Le groupe M.:A.T.H. (Mathématiques : Approche par des Textes Historiques) poursuit ses séances de lecture de textes historiques.

lire la suite

Nouvelle annonce

Des postes pour la formation des professeurs des écoles en mathématiques à l'ESPE de l'académie de Versailles sont à pourvoir au 1er septembre 2017.

Voir l'annonce

Notre bulletin Les Chantiers

Le N°173 des Chantiers pédagogique de mathématique est en ligne

Lire le N°173

juin 2017

Concours 2017

"Maths et langages"

 

Voir les résultats du concours

 

Réunion du comité

Prochaine réunion 

septembre 2017

Le coin des annonces

Vous pouvez déposer vos annonces sur le site.

 

Repères de l'IREM

La revue Repères IREM, l'une des trois revues du réseau des IREM, est disponible en consultation à l'IREM de Paris

Algorithmique au bac S 2012

Dans le n°154 des Chantiers de Pédagogie Mathématique de Septembre 2012 , un article de Dominique Baroux et de Cécile Prouteau à propos des exercices d’algorithmique du bac S 2012

 

Dernière mise à jour

 

dimanche 3 septembre 2017