Informatique, Pensée Informatique, Programmation: comment s’y retrouver ?
Initier à la pensée informatique à l’école et au collège passe par l’introduction à l’informatique, en tant que discipline*. Cela a donné lieu à des débats, tous légitimes, mais où la question initiale (initier à la pensée informatique en enseignant un peu d’informatique) s’est souvent transformée en la question plus réduite de l’enseignement de la programmation.
Enseigner l’informatique implique d’introduire un nouveau contenu scientifique dans le bagage de connaissances fondamentales qu’acquièrent tous les enfants au primaire et au secondaire. C’est leur assurer un socle de connaissances commun sur le sujet**. Enseigner la programmation pose une question à mon avis différente car on peut la voir comme une pratique, une technique, dont on peut alors légitimement se demander si elle est plus cruciale que d’autres disciplines importantes pour le citoyen d’aujourd’hui comme le droit, la philosophie ou l’économie.
Certains développent un argument en faveur de la programmation seule, basé sur la situation économique actuelle. Ils clament que les entreprises ont un besoin criant en programmeurs, que savoir écrire du code suffit. L’argument peut même parfois être poussé dans un extrême où l’enseignement deviendrait superflu, perdant tout sens au profit d’une activité supposée artistique.
Ils oublient qu’enseigner ne signifie pas seulement faire acte de présence devant des élèves, mais aussi concevoir une progression, et des exercices lui donnant corps, pour un apprentissage le plus efficace possible. Qu’ils le veuillent ou non, ils enseignent la programmation, simplement d’une autre manière (dont on peut discuter). Le discours est donc essentiellement commercial, en faveur d’un certain type de formation.
Le pendant économique de l’argument est en revanche vrai, mais il ne l’est qu’à court terme. Il est probable que la plupart des langages employés aujourd’hui auront été rendus obsolètes dans 20 ans (soit environ l’âge d’un bachelier), et on peut même envisager des progrès en termes d’interaction homme machine qui rendront possible l’envoi d’instructions à la machine en langage naturel. L’important alors ne sera donc pas de savoir programmer mais de savoir verbaliser sa pensée de manière structurée, claire, concise et univoque.
Alors, apprendre à programmer, ça ne sert à rien ?
Pour moi, le statut de la programmation aujourd’hui est de plus en plus proche de celui de l’écriture et de la lecture.
Nous sommes tous persuadés de l’importance de l’écrit dans notre quotidien. J’ai redécouvert l’amplitude de ce rôle quand mes enfants ont appris à lire. Tout à coup leur regard sur le monde a radicalement changé quand ils ont eu accès au sens porté par les plaques de rue, les pancartes de magasin, les panneaux de direction, chaque papier qui trainait à la maison, les livres de la bibliothèque, les histoires qu’ils connaissaient pourtant déjà par coeur à force de les entendre. Regardez autour de vous, où que vous soyez il est presque certain qu’il y a des lettres, des mots. Ils ont aussi gagné un pouvoir énorme sur le monde par l’écriture : faire naître un sourire chez ses parents grâce à un mot glissé sous l’oreiller, créer une pancarte pour interdire l’accès à sa chambre, échanger des mots avec ses amis, commencer un journal intime, écrire un poème, raconter son histoire…
L’écrit est acquis pour la grande majorité des élèves en fin de CE2. Mais pourtant, l’enseignement ne s’arrête pas là et se poursuit avec l’enseignement du français jusqu’en première au moins (donc pendant 8 ans) avec la transmission de connaissances techniques (la grammaire, la stylistique, les différentes formes de l’écrit), historiques (avec le contexte de production des oeuvres) et artistiques (la découverte des plus beaux textes de notre langue), avec des objectifs aussi divers qu’une maîtrise de la rhétorique pour, entre autres, ne pas se laisser berner par des beaux discours, le développement de sa sensibilité et de son empathie, ou encore la capacité à s’exprimer, pour expliquer, convaincre, ou bien partager une émotion, une expérience, un vécu.
Par ailleurs, la maîtrise de l’écrit est essentielle à l’enseignement de toutes les autres matières dont les énoncés, et autres documents sont écrits. Cet enseignement général repose également sur la capacité des élèves à prendre des notes de cours.
L’écrit est fondamental dans notre rapport au monde. Et la programmation ?
La programmation partage de grandes similarités avec l’écrit. Regardez autour de vous, il est fort probable que vous ayez dans votre entourage immédiat un appareil, une machine qui exécute un programme. Mais le comportement de cet appareil n’est par conséquent pas quelconque. Il n’est pas aussi divers qu’un comportement humain. Il nous apparaît spécifique, presque caricatural. La réaction de beaucoup d’entre nous face à cela est souvent de l’incompréhension, de la frustration, voire du rejet ou un abandon de toute velléité de comprendre ce nouveau monde. Apprendre à programmer, c’est être confronté en pratique, dans un environnement contrôlé, progressivement, à ce comportement. C’est s’ouvrir à la pensée spécifique qui le sous-tend, pour mieux le comprendre. Par ailleurs, savoir programmer permet de faire ses propres programmes, à soi, qu’on maîtrise, qu’on peut modifier, qu’on peut faire lamentablement échouer. Comme un enfant ou un artiste, ou tout un chacun, qui manipule la matière pour créer de nouveaux objets, expérimenter le monde, dire des choses nouvelles sur ce monde matériel, on peut créer des programmes qui façonnent, voire créent de toutes pièces un monde virtuel. Ce monde virtuel n’est pas, n’est plus, distinct du monde matériel : il le modélise de plus en plus fidèlement, et en est même devenu une extension qui l’enrichit. Car le monde numérique fait partie de la réalité, il en est issu, il l’étend. Vouloir à tout prix nier la réalité de la partie numérique du monde serait exactement comme… dire que ce qui est écrit dans les livres est sans rapport avec la réalité. Certains l’ont fait à l’époque de Gutemberg et toutes les dictatures se méfient des livres.
Dès lors, l’argument purement économique justifiant l’apprentissage de la programmation par le besoin des entreprises, s’il est certes valide, se révèle une vision à court terme, sans ambition, sans réelle compréhension des enjeux sous-tendant l’enseignement de l’informatique. Tout comme le français fait suite à l’apprentissage de l’écrit, l’enseignement de l’informatique doit accompagner celui de la programmation. Alan Perlis disait « Ça ne vaut pas la peine d’apprendre un langage qui ne modifie pas votre manière de penser la programmation ». Il y a en effet plusieurs manières de programmer qui correspondent fondamentalement à plusieurs façons d’élaborer une pensée. L’algorithmique enseigne les manières concises, claires, efficaces de résoudre des problèmes et de réduire la complexité. La notion d’information permet de mieux comprendre comment on passe de données à une connaissance. Ce ne sont que des exemples auxquels il faudrait ajouter, je pense, comme à tout enseignement scientifique, des aspects historiques.
« Peut-être que si nous écrivions des programmes depuis notre enfance, nous pourrions les lire, une fois devenu adulte » a aussi dit Alan Perlis. Connaître les bases de la programmation peut changer le regard que nous portons sur la partie numérique du monde actuel. Mais programmer pour programmer ne sert à rien. Comme tout moyen de lecture et d’expression du monde, la maîtrise de la technique ne prend son sens que dans la construction d’un contenu et de son partage, de son échange. C’est, pour moi, un des enjeux majeurs de l’enseignement de l’informatique, au-delà de l’apprentissage de la programmation.
Erwan Kerrien, Chercheur en Sciences du Numérique.
(*)« L’école doit apprendre les fondamentaux, savoir lire, compter, écrire, respecter autrui mais aussi apporter un bagage en humanités numériques.» Jean-Michel Blanquer, Toulouse, 24/11/2017.
(**)Les nouveaux programmes introduisent un enseignement d’informatique en mathématiques et en technologie (voir la parution au bulletin officiel et extrait des contenus liés à l’informatique (version éditable).