Exécution d’algorithmes pas à pas au cycle 4

Avec les nouveaux programmes du collège, l’enseignement de l’algorithmique est en plein essor, mais le recul sur la manière de l’enseigner est faible. « La recherche en didactique sur l’enseignement de l’algorithmique et de la programmation reste encore très peu développée ; en effet, de tels enseignements ont existé depuis plus de trente ans dans différents pays et ont donné lieu à diverses recherches, mais leur caractère sporadique n’a pas permis de capitaliser des acquis (…) » expliquent ainsi Jean-Baptiste Lagrange et Janine Rogalski . À l’heure actuelle, dans les programmes du cycle 3, les références à l’algorithmique sont légères (voir annexe 1). Au cycle 4, le sujet semble considéré comme plus important (voir annexe 2), mais il est plutôt question de programmation que d’algorithmie. Or « un programme n’est pas exactement un algorithme. Plus précisément un programme est la mise en œuvre d’un ou plusieurs algorithmes dans un langage de programmation donné, et cela fait intervenir beaucoup de notions sans rapport avec  l’algorithmique (syntaxe du langage, techniques de programmation, etc.) » comme le précisent les membres du Groupe informatique de la CII Lycée de l’IREM de Paris 7. Il me semble, cependant, que pour le collège, les élèves sont incités à travailler avec des outils, et que le terme « programme » est utilisé, au moins en partie, correctement, car la démarche d’essai-erreur face à l’ordinateur et les tests avec la machine sont privilégiés. Ceci dit, si les élèves doivent être confrontés à l’ordinateur et à l’activité de programmation, il paraît difficile de les laisser se débrouiller seuls sans leur enseigner un minimum les notions d’algorithmie telles que les boucles, les instructions conditionnelles ou les variables informatiques.

Cette année, j’ai enseigné à deux classes de niveaux différents au collège Pierre Alviset à Paris Ve : une classe de 6eme et une classe de 4eme. Les compétences demandées en algorithmie au cycle 4 étant plus intéressantes que celle du cycle 3, mon mémoire ne portera que sur les élèves de 4eme. Lors des séances en classe entière, mes élèves sont régulièrement invités à manipuler l’ordinateur de la salle que ce soit pour utiliser un tableur ou le logiciel de géométrie dynamique GeoGebra, et j’organise autant que possible des séances en salle informatique. Mes élèves sont donc habitués à utiliser les ordinateurs comme outils. De plus, au contraire de mes élèves de 6eme, mes 4eme s’étaient déjà servis de Scratch , logiciel conçu pour apprendre à programmer, mais avec des professeurs de technologie plutôt qu’avec des professeurs de mathématiques. Et ils n’avaient jamais eu de cours formalisés d’algorithmie. Pour répondre aux attendus du programme du cycle 4, j’ai choisi de réaliser une séquence sur deux semaines plutôt que de disséminer les séances face à l’ordinateur tout au long de l’année. J’ai aussi choisi d’alterner les activités en débranché (sur papier) et les travaux pratiques, sans privilégier l’un des types d’activité par rapport à l’autre. J’ai fait ces choix pour plusieurs raisons. D’abord, il me semblait préférable de ne pas trop étaler les séances dans le temps pour aider les élèves à assimiler les notions. Ensuite, j’ai choisi de réaliser une séquence relativement similaire à une séquence de mathématiques (avec du cours et des exercices d’entraînement), pour mettre les notions d’algorithmie et de mathématiques au même niveau. Enfin, et ce sera le sujet de mon mémoire, pour comprendre certains algorithmes, il est indispensable de savoir les lire et les faire tourner à la main. Or mes élèves avaient visiblement du mal à comprendre les algorithmes proposés dès que leur structure était un peu complexe, notamment lorsqu’ils mettaient en jeu des variables. Il m’a donc paru pertinent de ne pas toujours les placer devant un écran allumé. « En pratique, certains élèves ont (…) des difficultés à écouter les consignes ou à interagir entre eux quand ils travaillent sur ordinateur, tant l’écran focalise leur attention » constatent les auteurs de l’ouvrage 1,2,3… Codez !  Mon problème était de les obliger à lire pas à pas des algorithmes et de réussir à les faire « manipuler » pour les aider à comprendre.

Dans la suite du mémoire, j’utiliserai indifféremment les expressions « Faire tourner à la main » ou « exécuter à la main » ou « exécuter pas à pas » un algorithme. Concrètement, cela signifie que l’on lit instruction par instruction l’algorithme en se demandant ce que fait l’ordinateur à chaque ligne et quelles sont les valeurs des variables avant et après l’exécution de la ligne. Exécuter un algorithme est « une étape essentielle dans l’appropriation d’un algorithme. Pour s’assurer d’une lecture correcte d’un algorithme, l’exécution « à la main » de celui-ci est un indicateur pertinent. Devant un algorithme difficile à appréhender, nous avons tous ressenti le besoin de le « faire tourner à la main » (…) Ce point va s’imposer beaucoup moins naturellement aux élèves, c’est pourquoi il apparaît indispensable de renforcer cette pratique, » comme le précisent Philippe LAC et Malika MORE dans leur article L’évaluation de l’algorithmique dans l’enseignement des mathématiques au lycée .

La séquence d’algorithmique

L’évaluation diagnostique

Pour préparer ma séquence d’algorithmie, j’ai commencé par réaliser une courte évaluation diagnostique sous la forme d’un diaporama couleur chronométré (voir annexe 3). Au vu des réponses, il m’a semblé que les élèves avaient une certaine connaissance de Scratch, mais que très peu d’entre eux avaient acquis le vocabulaire lié à l’algorithmie. Ainsi, l’élève 1 ci-dessous ne désigne pas l’instruction « Si … Alors … Sinon… » par le terme « instruction conditionnelle » mais met d’abord en avant le nom du menu qui propose cette instruction dans Scratch (« rubrique : contrôle »), avant de parler de « Condition ». Certains élèves se sont d’ailleurs contentés du mot « contrôle » voire « événement » sans mentionner l’idée de « condition ».

D’autres étaient capables de comprendre les deux programmes de tracé d’un carré, mais avaient du mal à comprendre les deux autres programmes proposés (diapositive 6 et 7). Seuls 8 élèves sur 28 ont ainsi donné la bonne réponse à la diapositive 6, et 11 à la diapositive 7 (voir le détail des résultats en annexe 4). Ces difficultés s’expliquent peut-être, car ces élèves ont été habitués en cours de technologie à être face à un ordinateur et à pouvoir tester les programmes proposés. Ils n’ont pris l’habitude ni de construire mentalement une image de ce que fait un programme ni d’essayer de comprendre un algorithme avec un papier et un crayon. Pour changer leurs habitudes, j’ai décidé de réaliser un cours formalisé d’algorithmie avec des exercices en débranché en plus de séances de programmation.

Organisation de la séquence d’algorithmie

J’ai donc préparé une séquence abordant différentes notions importantes du programme : « instructions conditionnelles », « boucles », « variables » avec des définitions, des exemples et des feuilles d’exercices « papier-crayon » en parallèle d’un projet sur ordinateur de construction d’un jeu de Pong, projet inspiré d’Éduscol (voir la progression de la séquence en annexe 6). J’ai aussi proposé deux activités introductives. La première servait à travailler la lecture pas à pas d’un programme en guidant les élèves (voir annexe 6 bis) et à réactiver leurs connaissances sur l’abscisse et l’ordonnée d’un lutin. La deuxième a servi à mettre en place le projet Pong, en définissant avec les élèves les spécifications du jeu à coder. Aucune autre activité introductive n’a été proposée aux élèves pour les différentes notions. J’ai pensé que cela n’était pas utile, car ils avaient tous déjà rencontré des boucles, des instructions conditionnelles et des variables dans leur maniement de Scratch. Rétrospectivement, faire des activités introductives aurait sans doute été une bonne idée, a minima pour remobiliser les connaissances des élèves, voire pour corriger certaines conceptions erronées. Lors des corrections des exercices papier-crayon au tableau, les algorithmes ont été déroulés à la main pas à pas avec utilisation de couleurs différentes pour distinguer les valeurs successives des variables ou les différents blocs d’instructions. Les séances ont eu lieu en général en salle informatique en classe entière, mais les élèves devaient éteindre les écrans des ordinateur lors des activités débranchées. Malgré cela, l’attention des élèves m’a semblé plus limité que dans une salle de classe classique. Il aurait sans doute été préférable d’alterner les séances en salle informatique dédiées au projet Pong et les séances sans ordinateur pour le cours et les exercices papier-crayon.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela rapport-gratuit.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

1) Introduction
2) La séquence d’algorithmique
2.1) L’évaluation diagnostique
2.2) Organisation de la séquence d’algorithmie
2.3) Bilan de la séquence d’algorithmie
3) La séance de remédiation
3.1) Organisation de la séance
3.2) Exercice 1 : boîtes, boutons et boucles
3.3) Exercice 2 : instructions conditionnelles imbriquées
3.4) Exercice 3 : boucles, puissances et programme Scratch
3.5) Bilan de la séance de remédiation
4) Conclusion
BIBLIOGRAPHIE
Annexe 1 : programme du cycle 3
Annexe 2 : programme du cycle 4
Annexe 3 : évaluation diagnostique
Annexe 4 : analyse évaluation diagnostique
Annexe 5 : progression séquence algorithmique
Annexe 5 bis : activité 1 séquence algorithmique
Annexe 6 : évaluation sommative
Annexe 7 : analyse évaluation sommative
Annexe 8 : questionnaire diagnostique
Annexe 9 : analyse questionnaire pré-remédiation
Annexe 10 : énoncé 1 séance remédiation
Annexe 11 : énoncé 2 séance remédiation

Lire le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *