Paris Tech REVIEW (17 mars 2015)
Série Education – 5 – Devons-nous tous apprendre à coder?
http://www.paristechreview.com/2015/03/17/apprendre-programmer/
ParisTech Review – L’enseignement de l’informatique prend
aujourd’hui une importance grandissante. Quels sont ses enjeux, pour
les élèves et pour nos sociétés?
Serge Abiteboul – La raison principale est que l’informatique
est au cœur du monde numérique que nous sommes en train de construire.
Pour comprendre, maîtriser et participer à ce monde numérique, la
connaissance de l’informatique est indispensable. Et si nous voulons
être compétitifs sur un plan économique, nous avons également besoin de
maîtriser la science et la technique informatique. À titre de
comparaison, il est aussi important de comprendre l’informatique
aujourd’hui qu’il était important de connaître les mathématiques ou la
physique au XIXe et au XXe siècles.
Le président américain Barack Obama le dit très bien dans cette
vidéo
où il appelle les jeunes Américains à apprendre à programmer. Il y a
des programmes dans à peu près tous les outils que nous utilisons et
tous les objets qui nous entourent. À partir de là, deux attitudes sont
possibles. L’une consiste à dire : c’est nous qui allons écrire ces
programmes, les maîtriser et être ainsi maîtres de notre destin. L’autre
à dire : d’autres vont les écrire et décider pour nous. Il est possible
de vivre comme ça, en utilisant les produits des autres. Mais d’un
point de vue économique, cela signifie perdre notre compétitivité, c’est
disparaître de la carte du monde de l’innovation, puisque cette
innovation passe de plus en plus souvent par l’informatique.
D’un point de vue individuel, on peut également se contenter d’être
passif devant tous ces objets et les laisser décider pour nous. Ou bien
on peut décider de faire quelque chose qui n’est pas prévu dans le
manuel. Par exemple, vous êtes en train de gérer le site web d’une
association et il y a quelque chose qui ne vous plaît pas. Si vous ne
comprenez pas les dix lignes de code qui déterminent cette fonction et
ne savez pas écrire les deux lignes de code qui vont la modifier, vous
restez un esclave des technologies.
Si l’on veut être un citoyen à part entière, si l’on veut prendre en
main son destin, il faut par exemple comprendre ce que c’est que le
cloud ou
le vote électronique et il faut être capable de se programmer une
petite application sur son téléphone et de customiser quelques lignes de
code sur un site web. Et ce quelque soit son métier. C’est à la portée
de tout le monde : ce n’est pas plus compliqué que d’écrire un rapport
en français ou de concevoir la logistique d’une entreprise. L’enjeu est
de devenir de vrais participants et de démystifier ce domaine, afin
qu’il ne reste pas l’apanage du département IT de son entreprise.
Clarifions le vocabulaire : on a souvent tendance à confondre
informatique et numérique. Quelle est la différence entre ces deux
termes et comment s’articulent-ils?
Il y a un monde numérique et une science informatique. Au lieu de
lire un livre papier, vous lisez un livre numérique ; en classe, au lieu
d’un tableau avec une craie, vous avez un tableau numérique ; votre
appareil photo est devenu numérique et votre voiture est numérique. Le
monde qui vous entoure est numérique. Quand on apprend aux enfants à
écrire, on peut leur apprendre à se servir d’un correcteur
orthographique ; quand on apprend aux enfants à compter, on peut leur
apprendre à se servir d’Excel. Ce sont des outils numériques mais il
s’agit toujours d’apprendre à écrire ou d’apprendre à compter. De même,
on peut familiariser les gens à l’utilisation de Google ou leur
apprendre les risques de Facebook mais il n’y a pas un enseignement du
moteur de recherche Google ou de la confidentialité dans Facebook. Il
n’y a pas un « cours de numérique ». Cela s’enseigne avec les autres
matières.
Au cœur de ce monde numérique, il y a l’informatique avec la
programmation. L’informatique est ce qui permet de fabriquer tous les
programmes qui font vivre ce monde numérique. Là, il s’agit
véritablement d’un enseignement, d’une science et d’une technique et non
simplement de familiariser les gens à des outils ou des pratiques. On
mélange le fait d’apprendre à se servir d’outils avec apprendre
l’informatique, ce qui n’a strictement rien à voir.
Donc, l’informatique est une science qu’il faut enseigner, comme on
enseigne la physique, la chimie ou les mathématiques. Mais c’est aussi
une technique. Il faut aussi apprendre à fabriquer soi-même des
programmes, à résoudre des problèmes avec l’informatique. Oublier cela
revient à oublier l’un des aspects fondamentaux de l’informatique.
Faut-il enseigner l’informatique comme une matière à part entière
ou en distiller dans chacune des autres matières, de par son caractère
interdisciplinaire?
Il faut faire attention à ne pas faire de confusion. Si l’on veut
habituer les gens à des outils numériques, cela dépend des différentes
matières (des outils de conception de bâtiment pour un architecte, des
outils de bibliothèque et de recherche pour un littéraire, des outils de
calculs pour un scientifique, etc.). Mais pour ce qui est de
l’informatique en tant que science, il n’y en a qu’une. Il n’y a qu’une
seule pensée algorithmique. Que vous soyez en train d’écrire un
programme qui calcule les occurrences de certains mots dans un texte de
Proust ou qui fasse des multiplications de matrices, les opérations de
base seront les mêmes (opérations de séquencement, tests, boucles,
etc.). C’est dans la mise en pratique de cette science qu’on peut
choisir des projets de programmation différents, en s’appuyant sur des
matières spécifiques, tout comme sur les intérêts et les expériences
spécifiques de chaque enfant.
Alors, que peut-on enseigner?
La science informatique a développé une nouvelle forme de pensée, la
pensée algorithmique qui explique comment les choses peuvent être faites
par des programmes. La notion d’algorithme est bien connue depuis
longtemps. Quand on vous apprend à faire une opération, par exemple
l’addition, la multiplication ou la division, on vous apprend des
algorithmes. Mais nous sommes maintenant confrontés à des situations
beaucoup plus complexes, avec la programmation d’outils intelligents et
d’application intelligentes. Du coup, il faut maîtriser tous ces
concepts de façon plus abstraite. Par exemple, il faut apprendre ce
qu’est une boucle, qui permet d’itérer une certaine tâche.
Mais l’informatique est aussi très concrète. La beauté de cette
science est que l’on peut tout suite mettre en pratique ce qu’on a
appris en écrivant de petits programmes simples. Cela marche extrêmement
bien dès l’école primaire avec des langages comme
Scratch,
grâce auxquels les enfants peuvent se familiariser très jeunes avec la
programmation. Il s’agit donc de comprendre la pensée informatique, qui
est vraiment fondamentale pour comprendre le monde qui nous entoure, et
en même temps de se familiariser tout de suite avec cette pensée en
écrivant des petits programmes.
On peut donc commencer dès le plus jeune âge?
Il faut commencer dès le plus jeune âge, car c’est un âge auquel les
enfants sont plus réceptifs à de nouvelles idées. Il y a le slogan
“apprendre à lire, écrire et compter”. On peut rajouter “et à
programmer”. Cela doit être une nouvelle dimension du socle commun de
l’éducation nationale car apprendre à programmer est devenu
indispensable au même titre qu’il est indispensable de savoir lire,
écrire et compter.
Évidemment, l’informatique ne se résume pas à la programmation, tout
comme les mathématiques ne se réduisent pas à calculer ou la littérature
à écrire. Mais c’est le fondement de l’informatique, qu’il faut
enseigner depuis le plus jeune âge.
L’école est-elle le meilleur cadre pour cet apprentissage? Ou bien
doit-il se faire grâce à des initiatives émanant de la société civile?
On découvre un peu partout des enseignants qui ont commencé à
apprendre aux enfants à programmer. Cela se fait aussi énormément en
dehors de l’école. Il y a des goûters, des clubs, des associations comme
Magic Makers, qui proposent
de super activités en dehors de l’école. Tout ce qui est fait en dehors
de l’école est excellent mais il faut quand même réaliser que si l’on
veut arriver à toucher tous les enfants et ne laisser personne sur le
bord de la route, il faudra rapidement intégrer cet enseignement dans
les programmes scolaires.
Et pour ceux qui sont déjà sortis de l’école sans avoir appris l’informatique?
Ils peuvent se former sur le tas. Il existe des associations, des
formations en ligne, parfois sous forme de jeu pour la programmation.
Ceux qui sont aujourd’hui dans les métiers d’ingénierie doivent le
faire. Il est également indispensable de former les enseignants qui
n’ont pas eu d’informatique lors de leur formation.
Une fois en mode croisière, on peut imaginer trois temps scolaires, comme nous l’avons souligné dans un
rapport pour l’Académie des Sciences.
Dans un premier temps, à l’école, il s’agit de familiariser aux grands
concepts, apprendre les bases de la pensée informatique et algorithmique
et, éventuellement sous forme ludique, commencer à toucher à des
langages de programmation comme Scratch. Puis, le collègue doit
véritablement être le lieu où toute la population doit apprendre les
bases de l’informatique, c’est-à-dire la programmation et les bases des
algorithmes, ce que c’est que l’information, comment fonctionnent les
machines, etc. Il ne s’agit pas d’un enseignement approfondi mais disons
d’atteindre un niveau comparable à celui que les élèves acquièrent au
collège en physique ou en biologie. C’est la base qui va leur permettre
plus tard, s’ils en ont besoin, de se spécialiser et d’acquérir des
compétences supplémentaires.
Quand on passe au lycée, on peut imaginer des enseignements
informatiques adaptés aux orientations de chacun. L’élève qui va entrer
en section scientifique sera plus intéressé par les applications
mathématiques de l’informatique tandis que celui qui sera en section
littéraire se penchera plus sur d’autres aspects de cette science, comme
l’indexation de texte, la linguistique, etc. Dans les lycées
professionnels, les jeunes font déjà pas mal d’informatique, plus
qu’ailleurs car il y a une conscience plus développée du caractère
indispensable de l’enseignement de l’informatique.
Concrètement, quelles sont les initiatives en matière
d’enseignement de l’informatique qui ont déjà vu le jour dans le monde,
et dont la France et d’autres pays en retard pourraient s’inspirer?
C’est clair que la France est en retard par rapport à d’autres pays
qui ont pris le problème à bras le corps. Dans l’ensemble, les pays
développés sont plutôt en avance. L’Angleterre a notamment décidé
d’introduire l’enseignement de l’informatique en mettant un examen
d’informatique à la fin du lycée. En Allemagne, où c’est de la
compétence des régions, la Bavière a mené une réflexion très en amont,
en s’appuyant sur les doubles compétences pour recruter des enseignants
d’informatique avant même que l’informatique ne soit enseignée. Certains
pays émergents s’y sont déjà lancés également, comme Israël ou la Corée
du Sud. La tendance que l’on observe aujourd’hui est que l’enseignement
de l’informatique se répand dans le monde, dans les pays développés
comme dans les pays émergents, et de plus en plus tôt.
La France se situe plutôt parmi les mauvais élèves, en partie parce
que nous avons plutôt investi sur l’enseignement des outils et des
pratiques du numérique sans véritable volonté d’enseigner
l’informatique. Mais les choses bougent dans l’Éducation nationale. Je
veux être optimiste.