# Une séquence d'algorithmique au collège pour introduire les variables.

Cyrille Guieu

► To cite this version:

Cyrille Guieu. Une séquence d’algorithmique au collège pour introduire les variables.. Repères IREM, 2023. hal-04912982

HAL Id: hal-04912982

https://hal.science/hal-04912982v1

Submitted on 26 Jan 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# UNE SEQUENCE D'ALGORITHMIQUE AU COLLEGE POUR INTRODUIRE LES VARIABLES

Cyrille GUIEU
Université des Antilles
Inspé de la Martinique
Irem des Antilles

## 1. — Introduction

Ce texte présente un compte-rendu d'observation et l'analyse d'une situation de classe ordinaire dans un collège classé REP+. L'observation s'est déroulée dans une classe de troisième à la demande de l'enseignante car elle souhaitait être conseillée sur ses méthodes de travail concernant l'algorithmique et la programmation. L'idée de l'article a émergé à la suite de la deuxième observation.

## 2. — Une forme d'observation participante

Au cours de ce travail les éléments principaux ont été notés afin de satisfaire la demande de l'enseignante. Ces éléments concernent à la fois les échanges avec l'enseignante, son activité en classe et l'activité des élèves. Il ne s'agit pas d'une observation sys-

tématique avec grille ou verbatim mais bien de prises de notes destinées à aider l'enseignante. Finalement, la relecture de ces notes a révélé des éléments susceptibles d'aider d'autres enseignants. C'est l'objet de cet article.

Du point de vue des élèves, nous avons mis en évidence des obstacles d'apprentissage qui correspondent aux principales régulations qui ont été effectuées auprès d'eux pendant ces deux séances. Une attention particulière a également été portée aux moments de réorientation du cours par des passages collectifs de consignes. Nous les avons nommés « ajustements didactiques » dans la suite du texte. Cette attention se justifie par le fait que ces « ajustements didactiques » renseignent sur les enjeux d'enseignement de la situation. Nous considérons *a priori* que ces réorientations
sont cohérentes avec les besoins des élèves à ce moment du travail. Cette démarche est inspirée des méthodes de formation et d'accompagnement des enseignants développées par le centre Alain Savary (IFÉ., 2019).

## 3. — Observations

### 3.1 Contexte des observations

La classe a déjà travaillé avec Scratch pour réaliser des figures, notamment en uti-

lisant des boucles. Les travaux s'effectuent en demi-groupe. La première observation a lieu alors que le groupe 1 a déjà effectué les activités prévues pour la séance 1.

### 3.2 Observation 1 (Séance 1, groupe 2)

Le cours a pour support un document distribué aux élèves. Le document utilisé avec le groupe 1 commençait par une activité consistant à tracer un rectangle dont les dimensions étaient saisies par l'utilisateur. Il était

<figure><img src="image_2.png" /><figcaption>Figure 1: Le document donné au groupe 2 lors de la première séance.</figcaption></figure>
donc nécessaire d'utiliser au moins deux variables.

L'enseignante m'indique en début d'heure qu'elle a modifié l'activité donnée au groupe 1 en commençant par demander le tracé d'un carré (ajustement didactique n°1). Cet ajustement est motivé par le travail avec le premier groupe.

Le début de la séance est difficile car l'utilisation de la classe mobile nécessite des manipulations. Le vidéoprojecteur disposé dans la salle de ne semble pas fonctionner, ce sera aussi le cas pour la deuxième observation.

Les élèves commencent à travailler, certains reproduisent spontanément le script de l'exercice 1 (obstacle d'apprentissage n°1) alors qu'à aucun moment l'enseignante n'a mentionné cet exercice.

Au bout d'environ 20' de travail, les meilleurs élèves ont construit un script reproduit ci-dessous, dans la figure n°2 :

<figure><img src="image_3.png" /><figcaption>Figure 2 : Une production d'élève</figcaption></figure>

Certains élèves semblent bloqués par le comportement du programme et ne saisissent pas de valeur lorsque le chat le leur demande (obstacle d'apprentissage n°2). L'enseignante rappelle alors les blocs liés au « stylo » de Scratch, ainsi que les blocs d'orientation et de position.

À la fin de l'heure les meilleurs groupes ont terminé l'activité. L'enseignante demande aux élèves d'enregistrer leur travail sur l'ordinateur et de noter le numéro du poste utilisé.

### 3.3 Observation 2 (Séance 2, groupe 1)

Pour gagner du temps en début de séance, l'enseignante a réorganisé son document afin que les élèves puissent commencer à travailler sans ordinateur (ajustement didactique n°2). En ce début d'activité les élèves sont donc invités à lire le résumé de la séance précédente et à effectuer l'exercice 1 (figure n°3 de la page suivante).

Au bout d'environ 20 minutes un élève vient corriger l'exercice au tableau. L'enseignante prend le relais pour traiter la question 3 (ajustement didactique n°3) car l'élève peine à expliquer son résultat.

À la suite de la correction, les élèves sont invités à chercher directement l'exercice 3 (figure n°4, page suivante).

L'exercice n°2 qui était un exercice technique à la manière de l'exercice n°1 ne sera finalement pas proposé. Avec l'aide des enseignants présents dans la salle, les élèves parviennent à quelques scripts erronés dont le suivant :

<figure><img src="image_4.png" /><figcaption>Figure 5 : Une production erronée (obstacle d'apprentissage n°3)</figcaption></figure>
LES VARIABLES (SUITE)

Ce qui a été vu à la séance précédente :

* Si on utilise la commande `demander et attendre` , la réponse de l'utilisateur est stockée dans la « boîte » **réponse** . Cette « boîte » est appelée variable, puisque son contenu varie en fonction de la réponse de l'utilisateur.

* Dans un script, une variable a :

- Un nom (une lettre ou un mot) ;

- Une valeur (un nombre, un mot) qui peut changer au cours de l'exécution du script.

* La commande `mettre variable à` permet de donner une valeur à une variable.

* La commande `ajouter à variable` permet d'ajouter un nombre à la valeur d'une variable.

Exercice 1 :

1) Quel est le nom de la variable utilisée dans le script ci-contre ?

2) Quelle est la valeur initiale de la variable, c'est-à-dire la valeur juste avant que le lutin ne parle ?

3) Quelle est la valeur de la variable à la fin de l'exécution du script ?

4) On place la commande `mettre Distance à 3` juste avant la commande `ajouter à Distance 0` .

Quelle est la valeur de la variable à la fin de l'exécution du script ?

<figure><img src="image_5.png" /><figcaption>Figure 3 : Début du document de la séance 2</figcaption></figure>

Exercice 3 :

Ecris un script qui :

* Demande à l'utilisateur de choisir le nombre de côtés d'un polygone régulier à tracer et la longueur de son côté ;

* Trace le polygone régulier correspondant, en partant du point de coordonnées x=0 et y=130, et en tournant dans le sens des aiguilles d'une montre.

Remarque :

Un **polygone régulier** est un polygone inscrit dans un cercle et dont tous les côtés ont la même longueur et tous les angles la même mesure.

De ce fait, l'angle de rotation du lutin entre deux côtés d'un polygone à *n* côtés a pour mesure (360 ÷ *n*) degrés.

<caption>Figure 4 : Enoncé exercice n°3</caption>
Nous échangeons sur la nécessité d'introduire deux variables à ce moment du cours. Le cours se termine avec les mêmes consignes de sauvegarde des programmes que lors de l'observation précédente. Nous nous quittons en échangeant sur deux sujets :

- la suite du travail d'algorithmique qui sera consacrée à l'introduction des blocs et à des exercices de création de petits projets

- les connaissances d'algorithmique et de programmation nécessaires pour que des élèves de troisième réussissent au lycée

## 4. — Analyse et pistes de travail

### 4.1 Analyse
des ajustements didactiques effectués

#### 4.1.a Premier ajustement didactique :
réduire la complexité de la situation

Le premier ajustement didactique se résu-
me par le remplacement de « rectangle » par

« carré » dans l'activité n°1. Il peut se traduire en terme de script cible de la façon ci-dessous (figure n°6).

Le second script ne nécessite pas la création d'une nouvelle variable et il utilise moins de briques. Les manipulations du logiciel sont donc plus simples car il n'est pas nécessaire de créer des variables et que les élèves ont déjà utilisé des boucles finies avec Scratch. L'aspect conceptuel est également moins ambitieux : l'existence d'une seule variable prémunit en effet les élèves de conceptions erronées typiques comme celle illustrée par l'obs牙tacle d'apprentissage n°3.

Cette seconde formulation vient également confirmer des résultats obtenus depuis longtemps sur les difficultés conceptuelles de la notion de variable informatique :

« Nous avons explicité (...) en quoi il est justifié de considérer la variable informatique comme une fonction, au sens où sa valeur dépend du moment de l'exécution du programme.

<figure><img src="image_6.png" /><figcaption>Figure 6 : Comparaison de deux programmes cibles</figcaption></figure>
La variable est évidemment aussi une fonction de l'entrée : c'est un composant de la complexité du concept de variable informatique. Cette fonction peut être constante, si la variable ne change pas de valeur au cours de l'exécution. » (Lagrange & Rogalski, 2017)

Finalement cette première adaptation didactique revient à réduire la complexité algorithmique de la situation en se ramenant à une « fonction constante » (dans le sens où elle ne prendra qu'une seule valeur pendant l'exécution du programme) comme indiqué dans la citation. Cette réduction de la complexité est bien sûr provisoire et une variable « non constante » sera proposée pour la deuxième séance. On peut ainsi introduire des niveaux de complexité dans le travail avec les variables informatiques :

Niveau 1 : Variables comme « fonctions constantes » indépendantes de l'entrée et du moment de l'exécution

Niveau 2 : Variables comme fonctions dépendant de l'entrée mais indépendantes du moment de l'exécution

Niveau 3 : Variables comme fonction dépendant uniquement du moment de l'exécution mais indépendantes de l'entrée

Niveau 4 : Variables dépendant à la fois de l'entrée et du moment de l'exécution

Ce premier ajustement didactique peut se modéliser comme un passage du niveau de complexité °4 au niveau de complexité n°2.

### 4.1.b Deuxième ajustement didactique : proposer une activité débranchée

Confrontée à des difficultés matérielles au cours de la séance précédente, l'enseignante

choisit de démarrer la séance par une activité débranchée pour mettre plus rapidement les élèves en action pendant que les ordinateurs démarrent.

En cohérence avec le thème du programme « algorithmique et programmation », les activités débranchées ont toute leur place dans le cours de mathématiques. Au sujet de l'exercice proposé, on notera la complexité de la question 4. Les questions précédentes demandent en effet d'exécuter mentalement un programme écrit. Dans la question 4, il faut exécuter mentalement un programme modifié. Cette question a d'ailleurs posé problème à de nombreux élèves.

Les questions du type « que va faire ce programme ? » peuvent être un bon matériel pour des activités rapides de type « question flash ».

### 4.1.c Troisième ajustement didactique : écrire les traces d'exécution d'un algorithme

La programmation est traditionnellement considérée comme une activité de haut niveau conceptuel. Plus précisément la notion de variable est un point bloquant pour beaucoup d'apprenants :

« Les erreurs de conception relatives aux variables et à leur affectation sont parmi les plus fréquemment citées. » (Žanko & al, 2019, traduction personnelle).

Parmi les modalités d'enseignement citées par Lagrange et Rogalski, l'une d'elles concerne les variables dans le contexte de l'enseignement à l'université :

« si on explicite aux étudiants les rôles des variables dans les programmes, ils font davantage de progrès en programmation. »
<table><thead><tr><th>Moment de l'exécution</th><th>Valeur de la variable « Distance »</th></tr></thead><tbody><tr><td>Avant la boucle</td><td>5</td></tr><tr><td>Après 1 passage dans la boucle</td><td>7</td></tr><tr><td>Après 2 passages dans la boucle</td><td>9</td></tr><tr><td>...</td><td></td></tr><tr><td>Après 10 passages dans la boucle</td><td>25</td></tr></tbody></table>

<figure><img src="image_7.png" /><figcaption>Figure 7 : Programme de l'exercice 1</figcaption></figure>

Au niveau du collège, l'explicitation pourra consister à construire une trace de l'exécution du programme de l'exercice 1 (ci-dessus). En référence à la partie 4.1.a, ces traces d'exécution explicitent la dépendance fonctionnelle de la variable « Distance ».

## 4.2 Analyse des obstacles d'apprentissage

### 4.2.a Obstacle d'apprentissage n°1 : un effet possible d'un contrat didactique antérieur

Cette partie fait référence document présenté dans la figure n°1 : certains élèves reproduisent le script alors qu'il fallait réaliser l'activité. Il est possible que ces élèves considèrent les activités avec Scratch comme des reproductions de puzzle. On touche là une des difficultés liées au recours au vécu des élèves pour faciliter les apprentissages. En effet, l'ergonomie et l'iconographie du logiciel rappellent le puzzle. La règle du jeu de puzzle peut donc se transporter dans la contexte de l'enseignement. C'est peut-être ce qui s'est produit chez ces élèves : plutôt que de chercher à résoudre le problème algorithmique, certains élèves cherchent à reproduire un puzzle.

### 4.2.b Obstacle d'apprentissage n°2 : un double changement de posture vis-à-vis de l'ordinateur

<figure><img src="image_8.png" /><figcaption>Figure 8 : Une situation de blocage</figcaption></figure>

Les activités de programmation requièrent un changement de posture vis-à-vis de l'ordinateur. Les élèves doivent en effet s'autoriser à donner des ordres à la machine. Ce changement de posture est nécessaire pour que l'activité de programmation fasse sens. Mais ce rapport à la machine est contraire aux usages habituels des ordinateurs. Or lorsqu'on utilise la brique « Demander une valeur», l'élève doit à nouveau se mettre en position de « tutoré » et obéir à l'ordinateur. Enfin, une autre difficulté apparaît : celle sur choix de la valeur. Cette difficulté à faire un choix arbitraire de valeur se retrouve dans d'autres par-
ties des mathématiques. Le document res-
source concernant l'algorithmique au lycée de
2017 (MEN, 2017) donne une piste pour
contourner cet écueil :

« On notera que les notions d'entrées-sor-
ties (fonctions input et print) ne sont pas déve-
loppées dans ce document : elles ne relèvent
pas de la pensée algorithmique et l'accent
mis par le programme sur la notion de fonc-
tion permet de s'en libérer complètement. »

Adaptée à la situation de ce cours, cette
orientation peut se décliner en utilisant un
nouveau bloc :

<figure><img src="image_9.png" /><figcaption>Figure 9 : Avec un nouveau bloc</figcaption></figure>

On a appelé deux fois le bloc « Carré »
pour obtenir la figure. Ici la variabilité de la
longueur du côté du carré est exprimée par un
paramètre du bloc. Une autre alternative pour-
rait consister à créer une variable au début du
programme comme sur la figure 10 ci-contre.

Dans ce script, c'est l'affectation de la
variable « longueur » qui permet de choisir le
côté du carré.

<figure><img src="image_10.png" /><figcaption>Figure 10 : Avec une affectation</figcaption></figure>

4.2.c Obstacle 3 : une conception erronée de « variable enregistreuse»

Les usages habituels de l'ordinateur
construisent l'idée d'un super-cerveau à la
mémoire infaillible. Or dans cet exemple (figu-
re 11 ci-dessous), l'objet « réponse » est une
mémoire limitée à une seule valeur : c'est
incohérent avec la représentation précédente.

Pour installer le principe d'affectation
d'une seule valeur à une variable, on peut à
nouveau avoir recours à l'exécution pas-à-pas
de ce programme (voir le tableau de la page
suivante).

1
2
3
4

<figure><img src="image_11.png" /><figcaption>Figure 11 : Une production erronée</figcaption></figure>
<table><thead><tr><th rowspan="2">Bloc</th><th colspan="3">Valeurs des variables après l'exécution du bloc</th></tr><tr><th>réponse</th><th>longueur</th><th>nombre de côtés</th></tr></thead><tbody><tr><td>1</td><td>Première réponse de l'utilisateur</td><td></td><td></td></tr><tr><td>2</td><td>Deuxième réponse de l'utilisateur</td><td></td><td></td></tr><tr><td>3</td><td>Deuxième réponse de l'utilisateur</td><td>Deuxième réponse de l'utilisateur</td><td></td></tr><tr><td>4</td><td>Deuxième réponse de l'utilisateur</td><td>Deuxième réponse de l'utilisateur</td><td>Deuxième réponse de l'utilisateur</td></tr></tbody></table>

## 5. — Conclusion

Cette brève analyse d'une séquence d'enseignement a permis de montrer que l'enseignante a mis en œuvre des ajustements didactiques cohérents avec les connaissances actuelles sur l'enseignement de l'algorithmique. Des adaptations substantielles ont également été relevées par François-Xavier Bernard lors d'une observation au long cours d'un enseignant de cycle 3 enseignant l'algorithmique (Bernard, 2019). Cela confirme la pertinence d'une approche centrée sur l'activité enseignante pour mieux comprendre les phénomènes didactiques.

En écho à ces ajustements, les obstacles rencontrés par les élèves invitent à explorer toutes les marges de manœuvre permises par les programmes d'enseignement et le logiciel préconisé. Il serait en effet réducteur de considérer la variable informatique comme une simple illustration de la notion de variable mathématique.

Enfin la notion niveau de complexité d'une variable informatique inspirée des travaux de Janine Rogalski, s'est avérée un outil utile pour modéliser l'adaptation réalisée par l'enseignante observée aux difficultés rencontrées par ses élèves.

## Remerciements

Ce travail n'aurait pas été possible sans la précieuse collaboration de Sylvie Valendoff.
Bibliographie

IFÉ(Institut Français de l'éducation), 2019, *Concevoir des formations pour aider les enseignants à faire réussir tous les élèves,*

http://centre-alain-savary.ens-lyon.fr/CAS/nouvelles-professionnalites/formateurs/concevoir-des-formations-un-livret-ressource-pour-les-formateurs

Bernard François-Xavier, 2019, *Tutelle et médiation enseignante en situation d'activité instrumentée : le cas d'une séquence de programmation à l'école élémentaire, Contextes et didactiques,*

http://journals.openedition.org/ced/1622

Lagrange Jean-Baptiste et Rogalski Janine, 2017, *Savoirs, concepts et situations dans les premiers apprentissages en programmation et en algorithmique*, Annales de Didactiques et de Sciences Cognitives, Irem de Strasbourg,

https://hal.archives-ouvertes.fr/hal-01740442/document

MEN (Ministère de l'Éducation Nationale), 2017, *Document ressource pour le lycée : Algorithmique et programmation,*

https://cache.media.eduscol.education.fr/file/Mathematiques/73/3/Algorithmique_et_programmation_787733.pdf

Žanko Žana, Mladenović Monika et Boljat Ivica, 2019, *Misconceptions about variables at the K-12 level*, Education and information technologies, 2019,

https://www.researchgate.net/publication/328367041_Misconceptionsabout_variables_at_the_K-12_level