jeudi 30 octobre 2014

Dimensions de l'enseignement de l'informatique

(Article destiné à la revue EpiNet de l'association « Enseignement public & Informatique »)

De quoi parle-t-on lorsque l'on dit qu'il faut « enseigner l'informatique » ? Que veut-on enseigner, au juste ?

Certains sont tentés de se limiter à l'art de la programmation, pour lequel la référence est l'ouvrage monumental de Donald Knuth1 – et il est vrai que l'algorithmique pourrait, à elle seule, nourrir un programme étalé sur plusieurs années de cours suivies par une vie entière de recherche.

Mais l'informatique se réduit-elle aux algorithmes ? Non, bien sûr, car l'algorithmique n'est que l'une de ses couches. Elle en comporte d'autres que l'on peut découper de diverses façons : on peut par exemple distinguer la couche physique des processeurs, mémoires et réseaux ; la couche sémantique où sont définies les données ; la couche « processus » où l'informatique rencontre le comportement des êtres humains ; etc.

L'informatique est d'ailleurs essentiellement orientée vers l'action : comme le disent Abelson et Sussman2 elle répond à la question « how to », « comment faire », alors que les mathématiques répondent à la question « what is », « qu'est-ce que c'est » en déployant ce qu'impliquent des définitions. Un enseignement qui négligerait la relation entre l'informatique et l'action, c'est-à-dire l'informatisation, serait artificiel.

Il suffit pour s'en convaincre de penser à la qualité des données. La règle « garbage in, garbage out » est implacable : si les données sont mal définies (incohérentes, polluées par des synonymes et des homonymes, etc.), l'algorithme le mieux conçu ne peut rien fournir qui vaille.

Or on ne peut définir les données de façon pertinente que si l'on a défini d'abord l'action que l'on veut réaliser, puis désigné les êtres réels qu'elle concerne et sélectionné les attributs qu'il convient d'observer. Pour construire un modèle de données il faut donc se poser la question « que voulons-nous faire », point de départ de l'ingénierie sémantique.

Désigner des êtres réels qui seront représentés dans le programme informatique, choisir les attributs qui vont les décrire, c'est faire abstraction des êtres qui ne seront pas représentés, des attributs qui ne seront pas choisis : l'informatisation s'appuie sur une pratique de l'abstraction, sur une abstraction à finalité pratique.

Elle assume ainsi le caractère essentiellement simple de la pensée qui, partant d'un point de vue, s'exprime selon des concepts peu nombreux afin de pouvoir agir dans un monde réel dont la complexité est a priori sans limite. L'informaticien devra savoir résister à l'objection si fréquente « ce n'est pas si simple » qui révèle, à travers le refus de la sélectivité du modèle de données, un refus de la fonction pratique de la pensée, un refus de l'action elle-même.

Dans l'ingénierie sémantique s'exprime en effet une attitude réaliste et volontariste qui, soumettant la définition des concepts aux exigences de l'action, se trouve contraire aux options idéalistes ou contemplatives qui, elles, séparent la pensée de l'action. Parmi les malentendus et disputes qu'occasionne l'informatisation d'une institution les plus fréquentes ont pour origine un conflit entre des options philosophiques auxquelles les personnes adhèrent de façon implicite.

Nous ne devons certes pas exiger que l'informaticien soit un philosophe – à chacun son métier – mais sa formation doit le préparer à interpréter de tels conflits et à leur ménager une issue.

Revenons aux couches basses de l'informatique. La puissance des processeurs, la taille et la vitesse d'accès des mémoires, le débit des réseaux sont tous limités par un dimensionnement. L'exécution des algorithmes, la volumétrie des bases de données, la rapidité de l'affichage sur l'écran des utilisateurs sont donc soumis à des contraintes physiques dont l'informaticien doit tenir compte : un programme qui les viole ne peut tout simplement pas fonctionner.

Nous n'exigerons certes pas que l'informaticien soit un physicien, mais il doit connaître la physique de l'informatique assez bien pour pouvoir respecter les contraintes qu'elle impose à l'exécution des programmes. Des projets informatiques dont la conception était correcte au plan de la pure logique échouent parfois parce que l'on n'a pas tenu compte du dimensionnement des ressources.

Considérons maintenant une institution, par exemple une entreprise, qu'il s'agit d'informatiser. Le système d'information doit assister le travail des agents opérationnels qui lisent, écrivent et lancent des traitements en utilisant l'écran-clavier. Comme l'informatisation automatise en principe les tâches répétitives l'entreprise attend d'eux qu'ils sachent réagir devant l'imprévu, interpréter ce que disent d'autres personnes, prendre des initiatives, assumer des responsabilités.

Or ces agents ne sont pas des automates que l'on puisse programmer : ils ont des comportements dont certains peuvent être contraires à la sémantique des données comme au dimensionnement des ressources. Il faut que l'informaticien sache les anticiper pour éviter les incidents que cela provoque – tout comme le juriste qui rédige une loi doit faire en sorte que son texte soit non seulement logique, mais tel que d'éventuels effets pervers soient évités.

Nous n'exigerons pas que l'informaticien soit un psychologue et un sociologue mais il doit en savoir assez sur la psychologie des personnes et la sociologie des organisations pour pouvoir anticiper les comportements qui risqueraient de provoquer des incidents, des pannes, voire des catastrophes.

Nous en venons enfin au point le plus délicat. L'informatisation, orientée par l'action, a naturellement pour but de servir la finalité de l'institution. Or cette finalité est l'enjeu d'un conflit de valeurs : s'agit-il, pour une entreprise, de « faire du profit », de « créer de la valeur pour l'actionnaire », de « créer des emplois », de « favoriser la carrière des cadres », de « dominer la concurrence », d'« innover », de « satisfaire les besoins des clients », de « produire des choses de qualité », d'« économiser les coûts de production », etc. ?

Certains de ces buts peuvent se concilier, d'autres sont antagoniques. Les buts réels diffèrent parfois de ceux qu'affiche le discours de l'entreprise, ils sont alors souvent implicites. Des catégories différentes de personnes – actionnaires, salariés, dirigeants, cadres, spécialités professionnelles, syndicats – poursuivent d'ailleurs des buts qui leur sont propres.

Or l'informatisation suppose que l'on ait explicité le but de l'entreprise : cela contrarie naturellement beaucoup de personnes. C'est là, pensons-nous, la cause de l'hostilité que l'informaticien rencontre si souvent.

Savoir trouver ses repères dans le monde des valeurs et assumer les conflits qui le traversent, cela suppose chez l'informaticien une compétence là encore philosophique mais autre que celle, conceptuelle, que nous avons évoquée ci-dessus.

*     *
Comment faire pour que l'enseignement de l'informatique puisse embrasser toutes ces dimensions ? Pas plus ici que dans d'autres disciplines il ne convient de prétendre transmettre à des élèves un savoir-faire qui ne peut s'acquérir qu'après une longue expérience du terrain. Mais on peut tout de même les mettre sur la voie et éviter de les engager dans des impasses comme celle qui consiste à croire que l'on en saura assez si l'on a appris à programmer.

Une solution, modeste et parfaitement praticable sous la forme d'un projet pédagogique, consiste à considérer la classe comme une petite institution qu'il s'agit d'informatiser : les élèves pourront ainsi programmer la gestion d'une bibliothèque de prêt, du cahier de textes, du programme des cours, de la correspondance avec les familles, etc.

Considérons par exemple la gestion de la bibliothèque. Les êtres à considérer sont les livres et les élèves qui les empruntent, qui forment deux classes d'un modèle orienté objet. Il faut identifier ces êtres, choisir les attributs à observer, les méthodes et les événements à considérer (emprunt et retour des ouvrages, rappels en cas de dépassement des délais, etc.), construire une base de données. Les notions de classe, objet, héritage et association peuvent être introduites ainsi que celle, si délicate, de cycle de vie des objets. On peut aussi concevoir des alertes, un tableau de bord, etc.

Les exigences pratiques du système d'information peuvent ainsi être évoquées : pertinence en regard de l'action que l'on entend réaliser, sobriété, cohérence des données, validation authentique par les autorités légitimes, etc.

Cette démarche, aussi modeste qu'elle soit, permet d'aborder chacune des dimensions de l'informatique que nous avons évoquées. Elle l'enracine dans sa mission, qui est d'articuler la pensée et l'action, d'associer le flux de l'activité du cerveau humain au programme qu'un autre cerveau a stocké dans l'automate.

Elle est conforme à la mission du système éducatif : la transmission des connaissances favorise la maturation de l'élève en le préparant aux circonstances que comportent le travail productif et la vie dans la cité. L'enseignement de l'informatique, ainsi conçu, mérite d'occuper une place éminente dans le programme pédagogique.
____
1 The Art of Computer Programming, Addison Wesley, 1998.
2 Structure and Interpretation of Computer Programs, MIT Press, 1996.



1 commentaire:

  1. Je réagis avec retard… et surpris du peu de commentaires ! Au fond ce billet est si simple et limpide, le cahier des charges d'un enseignement utile de l'informatique à l'école en ressort si clairement, qu'il n'y a guère de discussion possible. Il ne reste que la gêne à constater que la France, ici l'Éducation Nationale, continue à se cacher derrière son petit doigt, et à espérer que sélectionner sur les maths et la physique, produira des informaticiens. Ce sont au bas mot 100000 développeurs/développeuses (ou quelque soit leur nom) qu'on "assassine" ainsi chaque année. Parce qu'ils calent devant le "signe somme" de l'intégrale de Riemann ou ne parviennent pas à visualiser des tétraèdres, ils n'auront jamais l'occasion de se savoir doués pour programmer, pour concevoir des interfaces, pour optimiser des calculs, pour organiser des données. Pour expliquer la prétendue "crise" française des quarante dernières années, il n'y pas besoin de chercher plus loin.

    RépondreSupprimer