bas de page
 

Pourquoi enseigner l'informatique à toutes et tous ?

Gilles Dowek
 

Ce texte correspond à l'exposé de Gilles Dowek lors du Séminaire du collectif Education au numérique du 05 novembre 2014 à la CNIL :
Débats animés par Jean-Pierre Archambault, président de l'EPI (association Enseignement Public et Informatique).
- « Les enjeux sociétaux de l'informatique et du numérique », Gilles Dowek, directeur de recherche à l'INRIA, Grand Prix de Philosophie de l'Académie Française.
- « Les implications pour l'enseignement de l'informatique », Colin De La Higuera, professeur à l'Université de Nantes, président de la SIF.
Site du Collectif :
http://www.educnum.fr/
 

   L'école a deux missions : préparer chaque élève à avoir un métier et, de manière plus désintéressée, lui donner un accès à ce bien commun de l'humanité qu'est la connaissance. Dans cette intervention, je discuterai de l'apport d'un enseignement de l'informatique à chacune de ces missions.

1. Donner un métier à chaque élève

Un besoin d'informaticiens

   Dans les dernières décennies, un secteur industriel nouveau, l'industrie informatique, a émergé dans le monde, mais peu en France. Ce retard de la France s'explique en partie par le faible niveau en informatique des Français, qui incite peu les entreprises multinationales à se développer en France et qui n'incite pas non plus les Français à créer des entreprises dans ce secteur. Les entreprises françaises sont donc peu nombreuses : parmi les cent plus grandes entreprises d'informatique, par exemple, une seule, Dassault Systèmes, est française.

   À côté des modèles industriels classiques, de nouveaux modèles émergent : en raison de la complexité des objets informatiques, de l'ampleur des projets de développement, une seule entreprise, même Google ou Microsoft, n'arrive plus toujours à gérer seule un projet. Cela a donné naissance à des consortiums non entrepreneuriaux, tels que les communautés de développement de logiciels libres. Il s'agit là de l'une des plus grandes transformations de l'industrie contemporaine. Malheureusement, même là, la place des Français reste modeste.

   De nombreux nouveaux métiers émergent donc et les jeunes Français ne semblent pas préparés à les exercer.

Un besoin qui ne se limite pas à l'industrie informatique :
l'exemple de la médecine

   L'industrie informatique et le métier d'informaticien ne sont pas les seuls concernés par l'enseignement de l'informatique. S'il s'agissait uniquement de former quelques centaines de milliers d'informaticiens, il ne serait pas nécessaire de commencer l'informatique dès l'École maternelle. La problématique va beaucoup plus loin, car tous les métiers sont transformés par l'informatique : le métier de chauffeur de taxi, celui de médecin...

   L'impact le plus visible de l'informatique sur le métier de médecin est l'imagerie médicale. Mais, ce n'est pas nécessairement le plus important car, du point de vue des médecins, le paradigme de l'imagerie médicale prolonge celui de la radiographie : des ingénieurs développent des outils, que les médecins utilisent sans savoir comment ils fonctionnent. On est là dans le domaine de validité de la métaphore de la voiture, qu'il est possible de conduire sans en comprendre le fonctionnement.

   Mais on atteint vite les limites de cette métaphore, car l'informatique transforme également de nombreux autres aspects de la médecine, jusqu'à la définition même du corps humain.

   Par exemple, nous avons tous un tympan et certains d'entre nous ont, en outre, un sonotone. Tout le monde s'accorde pour penser que son tympan fait partie de son corps et que son sonotone lui est extérieur. Mais qu'en est-il d'un implant cochléaire ? Quand on installe un implant cochléaire à un patient qui a des problèmes d'audition, cela ressemble, au premier abord, à l'installation d'un sonotone. Mais des différences apparaissent vite : l'implant cochléaire est installé une fois pour toutes, non à côté, mais à la place du tympan, souvent d'un patient très jeune. Il devient alors beaucoup plus difficile de dire que cet implant ne fait pas partie du corps du patient. Sur un plan éthique par exemple, tout le monde s'accorde pour penser que blesser un tympan est plus grave que casser un sonotone. Mais casser un implant cochléaire est beaucoup plus grave que casser un sonotone. La notion de corps humain a donc changé depuis que l'on installe des implants cochléaires. Et sans aller chercher du côté des utopies transhumanistes, cette question des transformations du corps humain se pose chaque jour : aussi bien en médecine, que dans le domaine du sport, à travers, par exemple, la question des prothèses licites lors d'une compétition.

   La question que les médecins doivent se poser aujourd'hui n'est donc pas uniquement « comment se servir d'un système d'imagerie médicale ? », mais « qu'est-ce qui constitue notre corps, et qu'est-ce qui lui est étranger ? ».

   Mais ce n'est pas la seule transformation de la médecine induite par l'informatique. Par exemple, pour suivre la progression des épidémies, les autorités de santé s'appuient en général sur les signalements que les médecins sont tenus de faire quand ils soignent un patient atteint de certaines maladies. Mais l'analyse de ces signalements prend du temps et celle de la fréquence des requêtes à un moteur de recherche, tel Google search, de mots clés liés aux symptômes d'une maladie, permet d'en connaître la progression avec beaucoup moins de retard. Cette information a une valeur énorme pour prendre des mesures sanitaires, mais aussi pour vendre des médicaments. Il y a ici le germe d'un changement complet dans l'organisation de la santé publique.

   Une autre transformation de la médecine concerne la manière dont les médicalement sont fabriqués. Avant d'en discuter, faisons une rapide digression sur la manière dont on fabriquait et fabrique les avions. Autrefois, on construisait un premier avion, on le faisait voler, on observait ce vol, puis on modifiait l'avion, on faisait un deuxième essai, puis un troisième... Fabriquer et tester des avions coûtait extrêmement cher, mais cela est longtemps resté nécessaire car, même si l'on connaissait les équations qui régissent le mouvement des avions, on ne savait pas les résoudre. Cette phase de test est en train de se raccourcir, voire de disparaître, car on peut désormais utiliser des algorithmes pour résoudre numériquement ces équations. C'est ce que l'on appelle modéliser et simuler le vol de l'avion.

   Le test était aussi une méthode très utilisée dans la conception de médicaments. Mais on commence, dans certains cas, à être capable de modéliser, par exemple, un virus et de calculer l'effet d'un médicament sur ce virus. Il devient ainsi possible de tester, non quelques molécules, mais des milliers ou des millions, pour sélectionner celle qui est la plus efficace. Il devient aussi possible, dans certains cas, de modéliser le patient, et de personnaliser un traitement. La pratique de la médecine est ainsi complètement transformée par ces tests in silico des médicaments et par cette personnalisation des traitements.

   Ces exemples montrent pourquoi l'on ne peut pas imaginer que les médecins se reposent sur les informaticiens pour leur fabriquer des « outils », qu'il leur suffirait d'utiliser, comme un appareil de radiographie, en appuyant sur un bouton car, de la transformation du corps humain et du suivi des épidémies à la conception de médicaments et à la personnalisation des traitements, c'est l'ensemble du métier de médecin que l'informatique transforme. Et il est de ce fait indispensable que les médecins comprennent un peu d'informatique pour se saisir de ces problèmes eux-mêmes, sans se reposer sur les informaticiens.

   Ce qui est vrai pour le métier de médecin est également vrai pour le métier de chauffeur de taxi, d'enseignant, de chercheur, de juriste, et, en fait, pour presque tous les métiers. C'est pour cela que l'enseignement de l'informatique ne s'adresse pas exclusivement aux futurs informaticiens, mais à tous les élèves : aux futurs informaticiens comme aux futurs médecins et aux futurs facteurs.

De la disparition à la réinvention

   Quand on se demande comment son propre métier va évoluer avec le développement de l'informatique, on se pose souvent la mauvaise question : comment l'informatique va-t-elle m'aider à mieux faire mon travail ? En fait, la première question à se poser est plutôt : mon métier sert-il encore à quelque chose ? Par exemple, le courrier électronique n'aide pas vraiment les facteurs à faire leur tournée, il rend simplement le métier de facteur obsolète.

   Cependant, bien qu'une part de l'activité de chaque métier soit peu à peu informatisée, les ordinateurs ont aussi des limites. Et, de ce fait, les métiers ne sont pas tant destinés à disparaître qu'à être réinventés. Par exemple, les cours en ligne rendent les cours magistraux obsolètes, mais ils ne rendent pas obsolète le suivi individuel des étudiants. C'est le point principal à prendre en compte pour réinventer le métier d'enseignant. Autre exemple, les journalistes ne devraient pas tant se demander en quoi les blogs peuvent les aider à faire leur métier, mais s'ils peuvent apporter quelque chose de plus que les bloggeurs.

   Mais la problématique de l'impact de l'informatique sur l'évolution de la société va bien au-delà de cette question des métiers, car l'informatique transforme complètement notre rapport à la connaissance et à la culture. Ce qui nous mène à notre second point.

2. Donner à chaque élève un accès à la connaissance

La pensée algorithmique

   L'informatique transforme notre rapport à la connaissance, d'abord parce qu'elle est porteuse d'une nouvelle manière de penser.

   Si on demande, par exemple, à quelqu'un comment savoir si une image contient un cercle rouge ou non, beaucoup de personnes répondent instinctivement que c'est facile, qu'il suffit de regarder l'image et de répondre, mais un petit nombre de personnes trouvent cette question difficile et essayent de répondre en donnant les étapes d'un algorithme qui pourraient permettre d'identifier un cercle rouge dans une image, par exemple donnée pixel par pixel. Ce sont les informaticiens.

   Si on pose la question, qui semble similaire, de comment déterminer si un mot contient la lettre « a », les informaticiens sont beaucoup moins embarrassés, car, pour savoir si un mot contient la lettre « a » ou non, il suffit d'examiner chaque lettre l'une après l'autre, jusqu'à trouver un « a » ou atteindre la fin du mot.

   Un peu plus compliqué : comment déterminer si un mot contient ou non deux fois la même lettre ? On est tenté de répondre qu'il suffit de comparer chaque lettre à toutes les autres. Mais c'est une mauvaise idée, car il y a un algorithme beaucoup plus rapide.

   Ces exemples montrent deux aspects essentiels de la « pensée informatique », de la manière spécifique dont les informaticiens raisonnent. Tout d'abord, une question introduite par l'adverbe « comment » appelle en réponse un algorithme. Ensuite, le choix d'un algorithme ou d'un autre est souvent guidé par la complexité – la rapidité – de ces algorithmes.

   Certains problèmes sont intuitivement très simples, mais encore mal compris et très difficiles à faire résoudre par une machine. Par exemple, chercher un cercle rouge dans une image, mais aussi identifier l'auteur d'un tableau. Comment différencier un Lorenzetti d'un Basquiat ? Nous savons tous le faire, mais nous ne savons pas expliquer comment nous faisons. Notre cerveau contient des méthodes très complexes que nous utilisons tous les jours, mais que nous ne savons pas expliquer. Les comprendre est d'ailleurs l'un des défis de la science contemporaine.

   Cela nous mène à la question « Qu'est-ce que savoir ? » Si on ne sait pas décrire l'algorithme qui permet de résoudre un problème, sait-on vraiment le résoudre ?

   Cette pensée algorithmique diffuse dans tous les domaines de la connaissance et de l'action. Par exemple : que signifie « sortir le pays de la crise ? » Cela signifie trouver une suite d'actions à accomplir pour arriver à la situation que l'on cherche à atteindre. Le monde est, de plus en plus, pensé comme cela. Par exemple, en biologie, la manière dont les ribosomes fabriquent des protéines en utilisant l'information codée dans l'ARN peut se décrire comme un algorithme. Dans ce cas particulier, on ne sait pas décrire le phénomène autrement. En particulier, on ne sait pas le décrire avec des équations, comme on décrit les phénomènes habituellement en physique.

   Les algorithmes constituent un langage pour décrire le monde, en biologie, mais aussi en sciences humaines. Thomas Schelling a consacré une partie de ses recherches à la question de la manière dont la ségrégation géographique s'établit dans les villes. Une hypothèse est que chaque personne cherche à avoir, comme voisins, des personnes qui ont la même couleur de peau que la sienne. Si vous avez la peau bleue et que vos voisins ont la peau verte, vous cherchez à échanger votre maison avec une personne qui a la peau verte et dont les voisins ont la peau bleue. C'est un modèle simple, mais il est difficile à mettre en équations. En revanche, comme il s'agit d'un modèle algorithmique, on peut le simuler et le confronter aux observations. Grâce à la simulation, cette hypothèse devient testable. Et grâce à la simulation, on peut aussi chercher des solutions au problème de la ségrégation : par exemple, si l'on met une pincée d'anarchistes dans le système qui déménagent aléatoirement ou si on met une petite incitation à déménager ou à ne pas déménager, peut-on éviter d'arriver à une situation de ségrégation géographique ? Ce sont des questions auxquelles les humanités algorithmiques essaient aujourd'hui de répondre.

Les machines

   Jusqu'ici, nous avons surtout parlé de la notion d'algorithme. Mais l'informatique n'est pas uniquement la science des algorithmes, c'est aussi la science des machines. Le mot « machine » est parfois utilisé comme synonyme d'ordinateur, mais il a, en informatique, une définition très large : les réseaux, les robots, les téléphones, les tablettes... sont des machines.

   Mais commençons par les ordinateurs. Qu'est-ce qu'un ordinateur ? Traditionnellement, on classe les machines selon leur fonction : scier du bois, pétrir du pain..., les ordinateurs sont des machines particulières dont la fonction est d'exécuter des algorithmes. Les premiers ordinateurs ont été créés dans les années quarante du XXe siècle et cet événement a été à l'origine d'une convergence assez rare.

   Dans les années vingt, en effet, de nombreux travaux étaient consacrés à la notion d'algorithme, il s'agissait de travaux purement théoriques, assez éloignés de la technique, portés principalement par des mathématiciens. Parallèlement, il y a des personnes qui ont réalisé des machines de plus en plus sophistiquées. Par exemple, la machine d'Hollerith, qui a été fabriquée pour dépouiller le recensement américain de 1890.

   L'informatique provient de la rencontre entre ces deux univers qui n'avaient pourtant a priori rien de commun, celui des mathématiques et celui de l'ingénierie des machines. Autour de cette idée d'ordinateur, de machine à exécuter des algorithmes, on a eu à la fin des années quarante, le début d'une fusion de ces deux univers. Cette fusion a pris du temps, et il y a quelques décennies encore, on trouvait quelques informaticiens théoriciens qui avaient un contact lointain avec les machines et, inversement, des électroniciens, pour qui l'informatique n'était que la science des ordinateurs. Cette page semble heureusement tournée.

   À côté de ces deux concepts d'algorithme et de machine, cette réalisation de machines à exécuter des algorithmes a fait émerger deux autres concepts : celui de langage et celui d'information.

   Une recette de cuisine est un algorithme, mais il est exprimé dans une langue, par exemple en français. En revanche, quand on doit « expliquer » un algorithme à un ordinateur on doit l'exprimer, non dans une langue, mais dans un langage, appelé un « langage de programmation ». En inventant ces langages, nous avons pris conscience que dans notre culture, nous avions déjà des langages, par exemple, la notation musicale : au lieu d'utiliser une langue naturelle pour décrire les notes d'une pièce de musique, nous avons inventé, au XIIIe siècle, un langage pour cela. Ce langage n'est pas encore complètement séparé de la langue et, dans une partition, il reste encore quelques mots en italien. Mais on a là une première ébauche de langage formel.

   À l'école, on retrouve une dichotomie entre d'un côté, la compréhension linguistique et de l'autre la compréhension technique. D'un côté les écoles où on apprend à écrire et de l'autre les écoles où l'on apprend à fabriquer. Cette différence entre savoir écrire et fabriquer est même le principal élément organisateur de nos différences sociales.

   Écrire un programme remet en question cette dichotomie : écrire un programme c'est fabriquer un programme, mais cela demande d'écrire. C'est donc, à la fois, écrire et fabriquer. Cela introduit donc une confusion dans notre vision de la hiérarchie que nous établissons habituellement entre fabriquer et écrire. D'ailleurs, quand on a introduit l'informatique dans les lycées, certains lycées en ont fait une matière élitiste, destinée aux meilleurs élèves, alors que dans d'autres elle est plutôt vue comme une matière destinée aux derniers de la classe.

   Cette anecdote manifeste une difficulté de réception de l'informatique. Avec l'informatique, nous retrouvons une pratique ancienne. En Égypte et en Mésopotamie, cette dichotomie entre écrire et fabriquer n'existait pas : l'écriture était une technique, servait des fins techniques : des documents comptables, des listes de courses... la littérature ne viendra que mille ans plus tard, les compétences linguistiques et techniques étaient beaucoup plus mélangées. Ce n'est que dans les cultures européennes que les compétences techniques ont été dévalorisées et opposées aux compétences linguistiques, et nous devons aujourd'hui revenir sur cette opposition.

   Pour conclure, l'enjeu de l'enseignement de l'informatique dépasse de loin l'apprentissage de la programmation, du codage. L'objectif va également bien au-delà de former des utilisateurs passifs de systèmes d'imagerie médicale développés ailleurs. Il ne s'agit pas de donner aux élèves les moyens d'être des créateurs de sites Internet, mais d'être les inventeurs du Web de demain.

   Il s'agit de préparer les élèves, les personnes, à vivre dans un monde qui sur le plan économique, comme sur le plan intellectuel, sera très différent de celui dans lequel nous avons nous-mêmes été élevés.

Questions

Quelles sont les spécificités de l'enseignement de l'informatique ?

   On n'enseigne pas l'informatique comme on enseigne, par exemple, les mathématiques, car une partie importante du temps doit être consacrée à faire. Ce type d'activités existe évidemment dans d'autres disciplines, mais elles sont beaucoup plus centrales en informatique. Si, dans un examen d'une matière traditionnelle, un élève va plus loin que la question qu'on lui pose, il n'obtient en général pas de points supplémentaires. Alors qu'en informatique, on attend de lui qu'il aille plus loin que la question posée. Par exemple, si on propose à un élève d'écrire un programme qui effectue certaines opérations, on s'attend à ce qu'il s'approprie le problème et propose de nouvelles choses.

   Statistiquement, les professeurs que nous avons aujourd'hui ne sont pas compétents pour enseigner l'informatique, car cette culture pédagogique est différente de celle de leur discipline. Cela est normal : il y a une réelle difficulté à enseigner plusieurs disciplines, chaque discipline demandant une culture pédagogique particulière. Il y a bien entendu des exceptions, mais malheureusement statistiquement non significatives.

Comment enseigner l'informatique aux différents âges scolaires ?

   Un rapport de l'Académie des Sciences propose un scénario en trois phases. Ce scénario met le collège au centre, où il propose un apprentissage de la programmation. Le but n'est pas bien entendu que tous les élèves deviennent des programmeurs aguerris, mais qu'ils comprennent ce qu'est un programme et qu'ils deviennent autonomes. Il est utile de savoir ce qu'est un programme. Par exemple, en essayant d'écrire un programme, on fait toujours des erreurs, cela renverse la croyance populaire que tout ce qui vient de l'ordinateur est correct.

   Après cela, une fois que les élèves sont autonomes, on peut enseigner au Lycée ce que nous enseignons aujourd'hui malheureusement à l'Université : les algorithmes classiques, les principes des langages de programmation, les langages de requêtes dans les bases de données, le protocole Internet, etc. La vraie question est que faire à l'École avant l'apprentissage de la programmation ? Il faut ici commencer par se débarrasser d'un fantasme : celui qu'un enseignement de l'informatique transformerait tous les élèves en programmeurs.

   Quelles sont les activités que l'on peut proposer à l'École ? On peut par exemple faire utiliser des logiciels par les élèves, dans le but, non qu'ils sachent utiliser ces logiciels, mais de les amener à se poser des questions. Par exemple, quand on utilise un correcteur orthographique, ou peut s'interroger sur la manière dont un tel correcteur fonctionne : comment ferait-on si l'on devait en concevoir un ? Et pourquoi ne marche-t-il pas tout le temps ? De même, envoyer un courrier électronique est une bonne occasion de se demander par quel miracle un courrier arrive dans la bonne boîte aux lettres. Ce qui mène à la question des algorithmes de routage. On peut aussi se demander comment cela marchait avant, quand le courrier n'était pas électronique les facteurs devaient acheminer des enveloppes.

   Deuxième type d'activité : l'initiation à la programmation. Il ne s'agit pas encore de devenir autonome, mais de commencer à comprendre ce qu'est un programme.

   Troisième type d'activité : les activités débranchées qui n'utilisent pas d'ordinateur. Par exemple pour comprendre comment trier une liste de mots par ordre alphabétique, on demande aux élèves de se placer en ligne, on donne un mot à chacun et on leur demande de se débrouiller pour se placer dans l'ordre alphabétique, par exemple en n'autorisant que la permutation d'un élève avec son voisin.

   Dernier type d'activités, destiné à développer la pensée algorithmique dans toutes les disciplines, partir d'un problème d'une autre discipline, par exemple mettre un mot au pluriel, et proposer un algorithme. Un premier algorithme consiste à ajouter un « s » à la fin du mot, mais quid des mots souris, chacal, bocal... Peu à peu l'algorithme s'affine et se complexifie.

   Pour continuer un peu sur ce thème des relations du lien de l'informatique aux autres disciplines, au-delà de l'École primaire, il y a beaucoup à faire. Par exemple, une interrogation philosophique ancienne – Descartes, La Mettrie... – porte sur la différence entre un homme, un animal et une machine. Peut-on dire, par exemple, que ce qui distingue un homme d'une machine est qu'il a une âme, une intelligence... ? Ignorer les évolutions de la notion de machine dans le siècle qui vient de s'écouler, les apports de la théorie de la calculabilité à cette question, c'est apporter des réponses datées.

   De même, les méthodes des sciences humaines, je l'ai dit tout à l'heure, ont beaucoup évolué de par les apports des outils de modélisation algorithmiques, des outils de simulation informatique, mais aussi avec des algorithmes qui permettent, par exemple, de classer des morceaux de parchemins déchirés, et parfois de les assembler pour reconstituer le document original.

   Enfin, les professeurs de sciences devraient être davantage conscients de la désaffection des étudiants français pour les sciences et les techniques. Par exemple, à Inria, nous avons désormais davantage de doctorants étrangers que de doctorants français. Il y a de nombreuses raisons à cela, mais l'une d'elle est sans doute que l'image que nous donnons des sciences et des techniques aux jeunes élèves ne correspond pas à ce qu'ils en voient dans leur vie quotidienne. Il faut bien entendu continuer à parler aux élèves du théorème de Pythagore et de la loi de Newton, mais si on ne leur parle pas aussi du protocole Internet et de l'algorithme pagerank, ils auront l'impression que les sciences et les techniques que nous leur enseignons ne sont pas celles qui se développent sous leurs yeux. C'est peut-être combler ce fossé qui est la première raison pour laquelle nous devons enseigner l'informatique.

Gilles Dowek,
directeur de recherche à l'INRIA,
Grand Prix de Philosophie de l'Académie Française

Cet article est sous licence Creative Commons (selon la juridiction française = Paternité - Pas de Modification). http://creativecommons.org/licenses/by-nd/2.0/fr/

haut de page
Association EPI
Mars 2015

Accueil Articles