Chapitre 3 Il Faut Enseigner Le Code

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 9

3

Il faut enseigner
le code

72563876_001-176.indd 32 17/07/2020 19:22


Le mythe
Récemment, un slogan est apparu, une injonction teintée d’ur-
gence : il faut enseigner le code. Faire programmer les élèves
en classe ou hors de la classe est en réalité une activité assez
ancienne, elle a bientôt 40 ans. Mais la vague actuelle est très
forte, comme on peut le voir avec l’arrivée de l’enseignement
de la programmation ou plus généralement de l’informatique
dans les programmes scolaires en Suède, Grande-Bretagne,
Allemagne, Israël, Finlande, Canada, Écosse, Singapour, Corée
du Sud, Japon, Grèce, Inde, etc., parfois comme discipline à part
entière, parfois comme partie de l’enseignement des mathéma-
tiques ou de la technologie (voir par exemple Buitrago Flórez
et al., 2017). Selon le rapport Eurydice (2019), la compétence
programmation/codage « se classe explicitement parmi les
résultats d’apprentissage pour l’enseignement primaire dans
moins de la moitié des systèmes éducatifs européens, mais pour
les premier et deuxième cycles de l’enseignement secondaire
dans une trentaine de pays ».
L’enseignement du code correspond à des finalités et à des
domaines divers. Il est parfois mobilisé comme moyen d’ap-
prendre autre chose, alors que d’autres fois il constitue le but
même de l’apprentissage, pour former des informaticiens ou de
futurs citoyens. Comme le remarque Tchounikine (2017), « il y a
beaucoup d’appels en faveur de cet enseignement, avec des
arguments différents, étayés ou pas ; en substance : “cela permet
de développer des compétences importantes”, “cela développe
la créativité des élèves”, “c’est moderne”, “c’est un domaine scien-
tifique important”, “c’est un secteur qui embauche”, “mon petit
frère adore”, ou encore “c’est mon domaine d’activité, donc il est
important, donc il faut l’enseigner” ». Le lecteur trouvera dans le
rapport de l’Académie des sciences en 2013 « L’enseignement
de l’informatique en France. Il est urgent de ne plus attendre »
une formulation nettement moins distancée voire franchement
inquiète, de ces arguments.

33

72563876_001-176.indd 33 17/07/2020 19:22


Enseigner le code, la programmation, l’algorithmique voire la
pensée informatique est, non seulement vaste et ancien, mais
recouvre des réalités et des finalités extrêmement différentes
(Robins, 2017). Les travaux dans le domaine tentent d’une part
de définir les contenus et les finalités de ces enseignements,
d’autre part d’évaluer les effets de ces enseignements.

Bilan des travaux scientifiques


Pourquoi enseigner le code ?

L’enseignement de la programmation peut être conçu comme


un moyen d’enseigner l’algorithmique, les notions et la syntaxe
du langage qui permettent de traduire les algorithmes en lan-
gage de programmation. Pour les élèves les plus jeunes, cet
enseignement implique souvent l’utilisation d’un langage de
programmation spécifique, ou adapté, au domaine scolaire.
Selon Tchounikine (2017), l’enseignement de l’algorithmique et
des notions/compétences sous-jacentes correspond aux notions
d’action, de variable, de boucle, de conditionnelle, etc.
« Cette approche peut être plus ou moins liée à l’ancrage
technologique que constituent les ordinateurs. Dans une mise
en œuvre technocentrée, l’objectif in fine est que les élèves
sachent comprendre/faire des programmes, ce qui amène à les
faire travailler pour (1) savoir faire des algorithmes et (2) savoir
utiliser un langage de programmation. Dans une mise en œuvre
plus centrée sur l’apprentissage de mécanismes d’analyse et de
résolution de problèmes, des exercices d’algorithmique sans
ordinateurs peuvent être utilisés. Ces deux visions ne sont pas
nécessairement en opposition et peuvent cohabiter. On peut
noter que la plupart des arguments en faveur de l’enseignement
de l’informatique et des propositions de programmes que l’on
peut lire en France sont plutôt ou essentiellement sous-tendus
par cette approche. »

34

72563876_001-176.indd 34 17/07/2020 19:22


L’enseignement de la programmation peut être aussi envisagé
dans le cadre plus vaste de l’enseignement de culture numérique
et de la pensée informatique (souvent computational thinking
dans la littérature internationale). Selon Wing (2006), « La pensée
computationnelle consiste à reformuler un problème apparem-
ment difficile en un problème que nous savons résoudre, par
réduction, intégration, transformation ou simulation ».
Enfin, l’enseignement de la programmation est à la base d’un cou-
rant extrêmement important : la robotique pédagogique. Selon
Komis et Misirli (2011), elle « constitue une approche didactique
originale, fondée sur une méthode d’apprentissage utilisant des
dispositifs programmables et la mise en œuvre d’une pédago-
gie par projet. Elle se définit par l’utilisation des technologies
informatiques dans leurs fonctions d’observation, d’analyse, de
modélisation et de contrôle de différents processus physiques ».
Si on le compare à l’enseignement de la lecture ou de la numéra-
tion, l’enseignement de la programmation est relativement récent.
Les quarante années qui viennent de s’écouler n’ont pas encore
permis le développement de façons très affirmées d’enseigner la
programmation – voir cependant Buitrago Flórez et al. (2017). De
ce fait, il existe peu d’études empiriques qui comparent telle façon
d’enseigner à telle autre. Pour cette raison, il n’y a pas de méta-
analyse de la littérature sur l’enseignement de la programmation.

Quels sont les effets attestés de l’enseignement du code ?

Pea & Kurland (1984) proposaient d’examiner de façon critique


les réflexions de leur temps sur la question suivante : est-ce que
l’apprentissage de la programmation informatique favorise le
développement de fonctions mentales générales supérieures ?
Les auteurs montraient que « les données probantes disponibles
et les hypothèses sous-jacentes sur le processus d’apprentissage
de la programmation ne permettent pas de régler adéquatement
cette question ». La méta-analyse de Liao et Bright (1991) montre
sensiblement la même chose : des résultats assez modestes sont

35

72563876_001-176.indd 35 17/07/2020 19:22


généralement obtenus en faveur de l’apprentissage de la program-
mation pour des acquisitions diverses (avec une taille d’effet = 0,41).
Dix-neuf ans plus tard, Robins, Rountree & Rountree (2003)
publiaient une revue de la littérature qui allait devenir une
référence du domaine. Elle fait le point sur l’enseignement de la
programmation à l’issue de la première désillusion (années 1980-
1990) et avant le retour de cet enseignement sur le devant de la
scène. Les auteurs soulignent plusieurs points : devenir expert
en programmation est difficile, exigeant et long ; enseigner la
programmation repose sur une distinction entre connaissances
(les concepts évoqués ci-dessous) et stratégies, sans que cette
distinction soit claire ; la distinction entre la compréhension de
l’algorithmique et l’écriture de programmes est tout aussi impor-
tante en enseignement, l’équilibre et la complémentarité entre les
deux est difficile à trouver. Les difficultés des élèves débutants
sont exacerbées par le fait que, lorsque les connaissances et les
stratégies sont acquises, elles sont souvent fragiles (non appli-
quées ou mal appliquées). Les auteurs plaident pour la mise en
place d’une réflexion approfondie à propos de l’enseignement
de la programmation.
Est-ce que, dix-sept ans plus tard, les recherches ont apporté de
nouveaux éléments ? Il semble possible d’affirmer aujourd’hui
qu’un évènement majeur de ces dernières années est l’arrivée
de Scratch, un langage de programmation accessible, stable
et performant, utilisable dès les débuts de la scolarité – voir
Tchounikine (2017) pour une présentation détaillée de ce que
l’on peut faire avec Scratch pour enseigner l’algorithmique et la
pensée informatique dès l’école primaire. Cela permet concrète-
ment de répondre à Robins, Rountree & Rountree (2003) : non,
apprendre à programmer (à ce niveau) n’est pas extrêmement
difficile et cela permet d’apprendre l’algorithmique et/ou la pen-
sée informatique, même à des personnes qui ne deviendront pas
des professionnels de ce secteur. Ce n’est pas que Scratch soit un
langage de programmation particulièrement facile à apprendre,
mais il permet d’apprendre à écrire des algorithmes simples.

36

72563876_001-176.indd 36 17/07/2020 19:22


Par exemple, Vibot est un robot commandé par Scratch. Des
activités pédagogiques de programmation sans ordinateur sont
mises en œuvre et évaluées (Romero et al., 2017, 2018). Même
s’il est trop tôt pour juger de l’efficacité de la programmation,
avec ou sans robot, avec ou sans ordinateur, comme moyen pour
apprendre des connaissances scolaires classiques, cela apparait
aujourd’hui (en 2020) comme un signe que l’enseignement de
la programmation est en train de changer de façon radicale.

Quelques exemples
Découvrir des concepts abstraits avec Logo

La conceptualisation et le changement conceptuel constituent


deux enjeux majeurs des apprentissages scolaires : il s’agit de
permettre aux élèves d’élaborer une connaissance générale
relevant d’une discipline scolaire/scientifique, parfois au prix
de la remise en cause de connaissances générales précédentes
de ces élèves. Cet enjeu concerne des connaissances abstraites
dans le sens où elles correspondent à des réalités du monde
extrêmement vastes : l’illustration réaliste du concept abstrait
prend le risque de faire passer à côté de celui-ci ; ou bien la
réalité correspondante peut parfois ne pas être perceptible.
Logo est le prototype de l’outil qui avait pour ambition de per-
mettre aux élèves de construire des connaissances abstraites.
La programmation dans Logo était conçue par Papert comme un
moyen d’élaborer des connaissances conceptuelles (générales
et abstraites), notamment en mathématiques. Une grande par-
tie de la littérature sur le Logo est fondée sur l’hypothèse que
l’exposition directe au nombre, à l’estimation et aux concepts
dans le contexte de la programmation de Logo permet de déve-
lopper des connaissances en mathématiques. Logo peut aussi
permettre aux élèves de manipuler l’incarnation de certaines
idées géométriques. En servant de dispositif de transition entre
les expériences concrètes et les mathématiques abstraites, Logo

37

72563876_001-176.indd 37 17/07/2020 19:22


est censé faciliter l’élaboration de représentations graphiques
de ces idées, qui sont programmées par les élèves.
Les résultats des recherches sur Logo ne sont pas concluants.
Les études montrent que les élèves mobilisent certaines connais-
sances mathématiques dans la programmation avec Logo, mais
elles ne montrent pas que la programmation avec Logo améliore
les apprentissages mathématiques, ou alors seulement au plan
métacognitif (Battista & Clements, 1986). Les recherches montrent
que la plupart des jeunes programmeurs avec Logo ne s’en-
gagent pas dans la construction et l’abstraction de haut niveau
de connaissances mathématiques (Kieran, 1986). Se focaliser sur
Logo en tant que langage de programmation peut même distraire
les élèves des connaissances mathématiques qu’ils rencontrent.

Enseigner les mathématiques au cycle 3 avec Scratch

Le projet EXPIRE a été conduit à Grenoble par une équipe


de chercheurs et piloté par Pierre Tchounikine (http://expire.
univ-grenoble-alpes.fr). Ce projet avait pour objectif de mettre
en œuvre la pratique de l’algorithmique comme méthode de
résolution de problèmes en mathématiques. L’hypothèse était
que la programmation faciliterait l’acquisition de compétences
d’abstraction, qui sont cruciales en mathématiques. En outre, le
numérique pourrait rendre les mathématiques moins austères et
réduire l’anxiété liée aux situations mathématiques. Les activités
de programmation étaient réalisées à l’aide du logiciel Scratch.
Chevalier-Laurent, Bressoux & Tchounikine (2019) ont conduit
une étude expérimentale de terrain avec 109 classes, dont
36 classes dans les zones d’éducation prioritaire, soient
109 enseignants et 2 576 élèves de CM1 et CM2 (9,5 ans de
moyenne d’âge). Les classes sont réparties selon deux condi-
tions : « numérique » (1 520 élèves) et « papier » (953 élèves).
La progression se compose de quatre séquences. Chaque
séquence est consacrée à l’acquisition d’une notion mathéma-
tique, chacune étant composée de trois séances en moyenne.

38

72563876_001-176.indd 38 17/07/2020 19:22


Les résultats en mathématiques ont été mesurés au début et à la
fin de la progression, par des tests standardisés, ainsi qu’avant
et après chaque séquence d’apprentissage. Des questionnaires
ont mesuré, au début et à la fin de l’expérience, l’anxiété des
élèves, leur motivation, leur autoefficacité, leur estime de soi
en général et leur estime de soi spécifique en mathématiques.
Le dispositif numérique est basé sur une phase de program-
mation avec Scratch suivie d’une verbalisation explicite des
programmes en écriture mathématique. Le groupe expérimental
a appris en réalisant des activités fondées sur l’algorithmique
et la programmation. Le groupe contrôle a appris les mêmes
notions mathématiques de manière classique. Les séquences
des deux groupes ont le même nombre de séances et portent
sur les mêmes concepts. Elles correspondent au programme
français de mathématiques.
Les premières analyses des résultats montrent « des gains
d’apprentissage en mathématiques globalement proches pour
les deux groupes, mais néanmoins légèrement inférieurs en
moyenne pour les élèves ayant suivi l’enseignement fondé uni-
quement sur les séquences “avec informatique”. On relève par
ailleurs une assez forte variabilité autour de cet effet moyen ».
Cependant, les auteurs ont constaté une diminution, significa-
tive mais faible, de l’anxiété pour les élèves qui ont bénéficié
de l’approche avec Scratch.
Le projet EXPIRE montre qu’une « formation/préparation de
quelques heures suffit pour pouvoir utiliser de façon autonome
ces séquences en classe, y compris pour des enseignants sans
connaissance préalable en algorithmique-programmation ».
Les retours des enseignants sont dans l’ensemble très positifs.
Parmi les éléments d’appréciation : découvrir une nouvelle façon
d’enseigner les mathématiques ; compléter et/ou approfondir sa
vision de l’enseignement des mathématiques ; adhésion des élèves
(enthousiasme, motivation, appropriation rapide). Ces séquences
permettent par ailleurs, ainsi que le préconise le programme de
cycle 3, une initiation à l’algorithmique et la programmation.

39

72563876_001-176.indd 39 17/07/2020 19:22


Conclusion
Après quarante années consacrées (avec des hauts et des bas)
à l’enseignement de la programmation dans l’enseignement
général, il reste difficile de dresser un bilan. Cet enseignement
poursuit des finalités différentes (la programmation est parfois
un moyen, parfois un but).
Quand elle est un but, la programmation peut concerner tous
les élèves, très tôt, ou ceux de certaines filières. Il reste encore à
établir l’intérêt pour cette formation pour les citoyens des socié-
tés actuelles ou futures ; mais rappelons-nous que l’intérêt des
formations générales est souvent difficile à établir. Essayez de
« prouver » l’utilité de l’enseignement des mathématiques dans
une population générale d’adultes trentenaires par exemple ; ce
n’est pas facile. Est-ce une raison pour mettre en cause l’ensei-
gnement des mathématiques ? La recherche sur la formation des
étudiants en informatique est surtout focalisée sur les méthodes
et les moyens d’améliorer ce type d’apprentissage, par exemple
avec le recours à la réalité virtuelle.
Quand elle est un moyen d’apprendre d’autres connaissances,
la programmation peine à montrer une supériorité par rapport
à d’autres manières d’enseigner. Mais elle est aujourd’hui un
moyen relativement facile à mettre en œuvre, pas moins efficace
que d’autres. On peut penser que, quarante ans, c’est très court
et que nous manquons encore de recul et d’expérience pour
statuer sur ce point.

40

72563876_001-176.indd 40 17/07/2020 19:22

Vous aimerez peut-être aussi