Breaking Bad

Le livre PCPS est sorti en librairie en 2010. Vous pouvez en consulter l'introduction et la table des matières, ainsi que l'inévitable (?) feuille des errata... Il utilise le logiciel gratuit Racket. Tous les exercices du livre sont corrigés. Cliquez sur les titres des sections de la page PCPS !
Mes signets Internet sont sur del.icio.us

En cette fin d'année universitaire 2016-2017, je quitte définitivement l'enseignement et prend de très longues - au moins je l'espère - vacances. J'ai enseigné des mathématiques et de la programmation à différentes populations.

Les Grandes Vacances !

J'écris simple, en style direct (non, non, ne cliquez pas, vous allez le regretter), avec quelques libertés quant à la tonalité. Et pour rester une dernière fois un peu prof, j'insère quelques liens...

Le Paléolithique (1968-69)

1968, classe de 1ère : une année lourde. Des évènements de mai d'un côté, et 2001 L'Odyssée de l'Espace de l'autre. Cohn-Bendit et Stanley Kubrick, excusez du peu. Un sacré brain washing... Je fais beaucoup de plongée sous-marine avec bouteilles et percute un peu trop la fenzy avec les copains, mauvais karma pour les tympans. Trop de monnaie laissée dans les jeux d'arcade (Pacman, Space-invaders, etc) dans la galerie de Juan-les-Pins. Je ne me doutais pas que plus tard j'aurai ma propre borne d'arcade !

                          

1969, Bac C - sCientifique, mais des maths un peu vieillottes au lycée (plutôt les axes radicaux que les combinaisons linéaires). Une année érotique chantée par Gainsbourg et sa Jane. Neil Armstrong qui va se balader sur la lune. C'était foo !

Jane            Armstrong

Matheux mais attiré par la philo et les idées (mon cousin germain Jean-Claude Passeron écrivit avec Pierre Bourdieu Les Héritiers, un des livres porteurs du mouvement de mai 1968, et m'avait introduit à la lecture de Levi-Strauss, Marx et Sartre). Avec un tel sur-moi, je devais aller faire de la philo et j'aimais ça, mais mon prof de math Lucien Teisseire me mit la pression et je m'orientais vers une math-sup politiquement plus correcte. Je l'ai revu une dernière fois à Marseille alors que je parlais dans une conférence sur les nouvelles technologies, il était fier de moi et ça m'a fait plaisir. Pour lui.

Bourdieu            Passeron

La Préhistoire (1969-73)

Durant l'été 69 en post-bac, j'achète le premier volume Théorie des Ensembles d'un certain Nicolas Bourbaki suite à la lecture en philo de Terminale d'un article sur ce mathématicien polycéphale de génie (on était en pleine période structuraliste). Je crois naïvement déceler une erreur dans une démonstration et j'écris une lettre à Laurent Schwartz, professeur à Polytechnique et membre connu de Bourbaki. Celui-ci me répond très gentiment qu'il n'y avait - bien entendu - aucune erreur et que je faisais fausse route en lisant ce livre : "un mathématicien ne s'occupe pas trop de logique et vous feriez mieux d'étudier le premier volume d'Algèbre ou de Topologie Générale". Je n'eus pas le temps de le faire et m'y suis mis plus tard. De toutes façons Bourbaki avait râté le virage des catégories.

Bourbaki        Schwartz

Après trois mois passés en prépa à Nice au lycée Masséna, je me sentais à l'étroit. La chimie et le dessin industriel me laissaient froid : transition vers la fac. Etudes donc à Valrose, autour de son épicentre - la mare aux canards - et chambre 324 à la Cité Universitaire Montebello, parties d'échecs jusque tard dans la nuit avec les frères libanais Sherif et mon collègue Nicolas Lichiardopol, réfugié roumain qui publia en 2003 une nouvelle démonstration du théorème de Wedderburn : tout corps fini est commutatif. Ah, quelle belle fac ! Mais une époque politisée à outrance. De temps en temps des extrémistes munis de barres de fer venaient sur les marches du restau-U pour montrer leurs muscles à défaut d'exhiber leurs neurones. Les Pink Floyd tournaient à fond la sono, il n'y avait pas encore le SIDA, il faisait beau et chaud, Jean Dieudonné était le premier doyen de la Faculté des Sciences de Nice, les maths venaient donc en droite ligne de l'esprit Bourbaki, on marchait un peu sur la tête, et c'était bien.

Valrose        Dieudonné

J'ai eu de bons profs en section MP (Math-Physique), il n'y avait pas encore d'Informatique constituée en science autonome. Certains matheux pratiquaient bien de l'analyse numérique mais presqu'en cachette. En maths les théorèmes d'existence nous suffisaient, on n'allait quand même pas calculer des solutions approchées, non ? Le contenu mathématique était beaucoup plus formel et à des lieues de qui se propose aujourd'hui, où - suite à une débourbakisation de l'enseignement des mathématiques dans les premières années - la pratique du calcul semble avoir remplacé celle des structures et des preuves. Désolé, collègues matheux, mais j'aimais mieux avant :-) J'avoue que l'ancien programme de 1970 ferait de gros dégâts de nos jours, avec des populations étudiantes nettement moins motivées et/ou préparées. Par contre, un enseignement du calcul formel pourrait être synchronisé au cours de math, pour apprendre aux étudiants à manipuler sur ordinateur des objets théoriques ?

A Valrose, trois professeurs allaient me marquer. En premier François Rocca en seconde année, qui enseignait patiemment et avec un délicieux zeste d'accent marseillais la physique quantique et les notations de Dirac, j'ai failli y succomber mais les maths ont eu raison de cet engouement qui réapparaît au moment de la retraite ! Voilà du vrai Henseiberg :

         

Ensuite en Master-1 (la Maîtrise, c'était plus joli, laissez-moi râler). D'abord Jacques Chazarain, pas pour son cours sur les Opérateurs Différentiels dont le thème ne m'attirait pas vraiment (j'avais plus apprécié la partie Espaces Vectoriels Topologiques), mais pour le fait qu'il joua un rôle essentiel dans mon recrutement ultérieur 30 ans plus tard. Dans la salle à côté, le japonais Mikio Sato nous préparait, dans un anglais redoutable, au Master-2 (le DEA, Diplôme d'Etudes Approfondies, c'était aussi plus joli, non ?) avec sa nouvelle théorie des hyperfonctions, dont les germes m'ont laissé des images de champs de blé, allez savoir pourquoi. Enfin et surtout Christian Houzel, mathématicien à la fois formaliste et calculateur, d'une stupéfiante érudition historique, qui nous enseigna les bases de la géométrie algébrique façon Grothendieck, assisté par Fouad El Zein. Nous sommes en 1973, trois ans après qu'Alexandre Grothendieck se soit fâché avec Dieudonné au Congrès International des Mathématiciens de Nice, et n'ait commencé sa longue marche vers la vacuité. On manipulait moins les ensembles algébriques de points que les foncteurs représentables sur des catégories d'algèbres, sacrée initiation aux types abstraits !

Houzel        Grothendieck

Très pur, très esthétique, j'ai toujours été sensible à la pureté et aux fondements, que ce soit en mathématique ou en programmation. Même le karaté, j'ai pu le pratiquer dans cet esprit quelques années plus tard à Paris rue de la Montagne Sainte-Geneviève, dans cet excellent dojo maintenant tenu par Pascal Plée, qui maintient l'esprit de son père Henry.

(shoshin)

Paris sera toujours Paris (1973-1991)

Toujours est-il que, Houzel partant à Paris et le DEA niçois proposant encore des opérateurs différentiels, j'ai plié armes et bagages et suis parti faire mon DEA à Paris, à l'UPMC (Jussieu). Chambre universitaire rue de Citeaux près de la gare de Lyon, mon voisin lâchant les décibels sur Bob Dylan à 5h du matin. J'y étudiais un peu de K-théorie algébrique, de l'algèbre commutative, de la théorie de Galois à Polytechnique qui était alors au coin de la rue (je n'ai pas gardé un très bon souvenir de l'X), et les espaces quadratiques avec le sympathique Paulo Ribemboim, qui m'a permis de faire un écrit d'Algèbre et Géométrie à l'agrégation rattrapant un sujet d'Analyse un peu bâclé. A Jussieu, à travers les vitres du RdC, je voyais régulièrement et avec émotion Roger Godement faire son cours en amphi. J'ai encore son livre d'Algèbre usé jusqu'à la corde et ne m'en séparerai jamais.

Godement      

Après le DEA, j'ai entamé une thèse avec Houzel sur les variétés algébriques, mais un problème de dos mal soigné m'a quasi interrompu pendant deux ans et en me relevant (sic) j'ai passé l'agrégation pour assurer le quotidien (dans sa Métaphysique du Mou, Botul prétend bien que Gaston Bachelard a passé l'agreg de philo par dépit faute d'être reçu au concours de receveur des Postes). Je la préparais en partageant mon temps entre les cours de Marcel Berger à Jussieu dans un amphi surchargé et la prépa de l'ENS rue d'Ulm en petit comité, pilotée par Houzel. Je n'ai pas cessé de ma vie de penser à la géométrie algébrique, ce fut un grand regret. Mais j'étais prof, youpi.

Un premier saut de puce à Lyon (Bocuse et les quenelles) pour valider le stage d'agrégation, et acheter ma première calculette HP à langage postfixé (c'est peut-être ce qui m'a facilité le passage à la notation préfixée de Lisp ?). Je m'amusais à coder des calculs et des jeux avec cet ancêtre de l'ordinateur, la révolution de la micro-informatique n'allait pas tarder. L'année suivante je faisais l'acquisition d'un ordinateur Apple ][ dont j'avais vu la publicité dans l'extraordinaire revue américaine BYTE que je lisais régulièrement, et qui commençait à être distribué par la FNAC. Je fus muté dans le Sud sur ma demande, mais à Martigues (le pétrole et les clovisses) et non à Nice, hum. Là-bas, un élève de Terminale-C (G. Mortal ?) m'entraîne à une simultanée aux échecs (25 échiquiers) contre le champion de ligue, et je suis le seul à gagner ma partie à la stupéfaction générale, la mienne y-compris. Pour me faire écraser une semaine après lors d'une rencontre amicale. C'est à ce moment-là que j'ai abandonné les échecs pour n'y revenir jamais très sérieusement. Mais maintenant que j'ai à nouveau le temps, Alekhine, Réti, Nimzowitch, je vais peut-être vous retrouver sous peu à condition de retravailler quand même mes ouvertures :-)

Apple ][                    

Dans l'impossibilité manifeste de retourner à Nice en début de carrière, je fis une demande de poste sur Paris et acceptai un poste de 1ère et Terminale-C à l'excellente Ecole Alsacienne de Paris, près du jardin du Luxembourg. Un établissement expérimental de plein exercice dont la direction m'avait donné carte blanche, à côté de mon cours de maths en TS, pour monter un laboratoire d'informatique, avec des ordinateurs Apple ][ dotés de disques souples ! J'étais déjà un fanboy Apple à l'époque (what else ? c'était ça ou le Pet de Commodore, le TRS-80 de Tandy, ou le Micral du français Bull, j'ai fait le bon choix, non ?). Premiers pas en BASIC Applesoft (conçu par le jeune Microsoft pour le processeur 6502 car le BASIC d'Apple écrit par Wozniak n'avait que les entiers pour des raisons d'efficacité dans les jeux vidéo), rapidement suivis par l'achat d'une carte langage qui faisait passer la mémoire à 64 ko pour faire tourner le compilateur Pascal-UCSD. Il est arrivé plusieurs fois que les élèves viennent me chercher au labo dans le sous-sol, alors qu'ils m'attendaient en cours ! J'ai un très bon souvenir de l'Ecole Alsacienne, il y soufflait un vent de liberté dans la rigueur. François Mitterand m'y a dédicacé un exemplaire de son livre La Paille et le Grain. Ce livre, tout comme la série des Bourbaki, Godement et les autres, doit être dans un carton caché dans la cave. Vivement la retraite pour commencer des fouilles archéo-nostalgiques !

Pet       TRS-80        Micral

Une fois par semaine, réunion dans un club de micro-informatique au sud de Paris où l'on se passait les derniers trucs du moment, comme découper à la scie à métaux un lecteur de disque Apple pour savoir où était la tête de lecture au moment où un formatage non standard empêchait la copie, même avec Locksmith. Mon tout jeune fils - maintenant prof de math - passait son temps à Lode Runner sur notre Apple ][, il en rêvait la nuit (moi aussi, je creusais, je creusais).

A cette époque je me suis formé à l'informatique dans un cours d'Ecole Normale Supérieure destiné aux jeunes filles ! J'étais bien, entouré d'une trentaine de normaliennes, nous avions d'excellents professeurs : Jean Berstel (algorithmique), Guy Cousineau et Maurice Nivat (grammaires, arbres et automates), Jean-Marc Steyaert (programmation). Je me souviens de l'écriture d'un projet de calcul formel en Pascal, ce qui n'était pas vraiment courant à l'époque. Ma binôme avait choisi de nommer toutes les fonctions du programme avec des noms de chevaux qui couraient au tiercé, ce qui nous a valu un abaissement de note pour perte de lisibilité :-( Notre projet Pascal se faisait sur cartes perforées que l'on déposait le soir dans un bac, pour en récupérer le lendemain le résultat de la compilation. Une erreur de ';' et c'était une journée de foutue : le genre de choses qui vous éduque à la rigueur syntaxique :-) Heureusement la carte Pascal de mon Apple ][ m'a finalement tiré d'affaire.

Avant         Après

L'été qui suivit cet enseignement lourd de niveau maîtrise, j'achetais et lisais en Auvergne (sans machine sous la main et dans le village qui abrita Laurent Schwartz pendant la guerre) le livre bijou qui a transformé ma vie : The Little Lisper, de Matthias Felleisen et Dan Friedman, deux chevaliers du lambda-calcul avec lesquels j'ai beaucoup échangé ultérieurement au sujet de Scheme. Matthias fut l'un des membres fondateurs de Racket, et Dan est sorti de son université d'Indiana pour nous faire des conférences profondes sur la méta-interprétation à Nice sur invitation de Jacques Chazarain (mon ancien prof de math !) bien plus tard, aux alentours de 1994. Ce petit bouquin sous forme de dialogue socratique nous menait tout gentiment dans l'art de la programmation symbolique en Lisp, récursive bien entendu. Il a depuis évolué vers Scheme, plus pur et moins industriel. En tout cas, Lisp a été la passerelle pour l'Intelligence Artificielle puisque son créateur John McCarthy l'avait créé au MIT peu après la conférence de 1956, à la fois pour la manipulation de symboles et pour en faire un lambda-calcul appliqué. Comme le dit Paul Graham, McCarthy a fait pour la programmation ce qu'Euclide a fait pour la géométrie, et le traité SICP d'Abelson et Sussman a formé des milliers de programmeurs, même en-dehors du MIT, on en voit les traces dans certaines évolutions actuelles des langages.

McCarthy      Little Lisper        SICP

Du coup, j'ai suivi à l'UPMC les cours de deux maîtres en programmation : Jean-François Perrot sur les bases du lambda-calcul et l'implantation de Lisp en Fortran, puis Christian Queinnec sur l'interprétation de Lisp (en Lisp). Grâce à eux, le virus Lisp était là, il ne m'a jamais vraiment quitté, qu'ils en soient remerciés.

Perrot        Queinnec

L'Education Nationale prônait alors l'utilisation d'un langage français LSE (Langage Symbolique d'Enseignement) créé en partie par un grand professeur de programmation, Jacques Arsac, avec qui j'ai eu nombre de discussions amicales, passionnantes et parfois conflictuelles sur l'enseignement de la programmation. Mon choix de Pascal (à côté de LOGO) à l'Ecole Alsacienne fut largement partagé dans l'académie et LSE tomba dans les oubliettes, malgré de bonnes intentions. Mais comme disait Gide, ce n'est pas avec de bons sentiments que l'on fait de la bonne littérature... En tout cas, il fallait voir Arsac construire une boucle à partir d'un invariant ! C'est lui qui m'a dégoûté de la boucle while. Une fois que j'ai été viralement atteint par Lisp, les discussions ont reprises avec Arsac, lui grand prêtre du style impératif et acceptant mal la récursivité - qu'il réservait aux voleurs - et moi petit disciple du style fonctionnel. Au moment de fêter sa réception à l'Académie des Sciences, il me glissa en douce (ne le répétez à personne) : "L'Informatique rentrera un jour dans le giron des Mathématiques, mais ce n'est pas pour maintenant". C'était un homme sympathique et d'une probité intellectuelle exemplaire.

Arsac      

Les maths s'éloignaient un peu de mes préoccupations non enseignantes et je me suis dit que m'inscrire au DEA d'Informatique de l'UPMC orienté IA, tout en continuant à enseigner les maths et la programmation à l'Ecole Alsacienne, était plutôt une bonne idée. Nos gourous étaient alors Jean-Louis Laurière dont le solveur de contraintes ALICE était doté de recettes heuristiques miraculeuses, et Jacques Pitrat qui tel un prêcheur en chaire, ne jurait que par les méta-connaissances (l'art d'implanter des connaissances sur la manière d'utiliser les connaissances). L'atmosphère dans les couloirs de Jussieu était à la victoire. Et pourtant, si l'on avait investi 1000€ dans Amazon en 1997, nous qui sommes censés être au courant, et sans parler des autres Apple, Google, etc... Ah, la faillite du sens de l'Histoire ! J'y suis beaucoup plus sensible maintenant, mais j'ai pris le train en marche bien tard. Dommage :-)

      (Norvig)

Tout en travaillant ce second DEA, j'ai orienté le labo de l'Ecole Alsacienne dans cette direction, en faisant entrer sur les Apple ][ des cartes Microsoft avec processeur Z80 fonctionnant sous CP/M (MS-DOS n'existait pas encore), pour exécuter du Lisp de l'INRIA (Le_Lisp de Jérôme Chailloux, qui allait fonder ILOG). Sur le mien, j'installais une puce (piratée car introuvable) pour avoir les caractères grecs APL au clavier. Du coup mon cours s'est tourné vers Lisp et a donné lieu à une publication à l'IREM de Paris ("Lisp et Prolog en classe Terminale") ainsi qu'à la publication d'un livre Lire LISP avec Georges Kiremitdjian, ingénieur chez Thomson et spécialiste d'APL. Je considère ce livre comme un péché de jeunesse, il aurait mérité une plus grande maturation, mais nous étions tous deux pressés de le sortir.

C'est un Perrot très excité qui m'avait entraîné dans une grande salle machine de Jussieu pour me faire une démo d'un "truc étonnant" (le langage Prolog), mais la terrible latence de terminaux X surchargés lui arrachaient des jurons dignes du capitaine Haddock qui me laissaient à penser que ce Prolog devait en effet être à part. Ce fut Alain Colmerauer (hélas décédé en 2017), alors détaché au Centre Mondial de l'Informatique créé par JJ. Servan-Schreiber près des Champs Elysées, qui m'en fit une présentation plus formelle basée sur la synthèse de phrases, me laissant à la fois étourdi et avide d'en savoir plus sur cette PROgrammation en LOGique axée sur les relations entre données et résultats plutôt que sur la manière fonctionnelle de passer des données au résultat. Implémenté sur un Apple ][, ce Prolog ][ n'en était que plus sympathique, bien que très lent.

Colmerauer        (Giannesini & al.)

On ne s'ennuie jamais à Paris. J'allais souvent au séminaire Philosophie et Mathématique de Maurice Loi (repris depuis par Pierre Cartier), où l'on voyait souvent Dieudonné, ainsi que l'arithméticien Marc Krasner, qui s'endormait régulièrement et dont les ronflements étaient attendus avec bienveillance. De leur côté, les élèves de l'Ecole Alsacienne étaient assidus, intelligents, beaucoup ont fait parler d'eux par la suite dans différents domaines : ils illustraient parfaitement la thèse de Bourdieu et Passeron sur Les Héritiers. L'un d'eux (Julien Basch) s'occupa du portage du Lisp de l'INRIA sur le Mac IIci (dans le cadre d'une startup que nous avions montée à quatre avec deux collègues chiliens disciples de Francisco Varéla), passa une thèse en géométrie algorithmique à Stanford, fut assistant là-bas, médita aux Indes (?), fut auditionné sur un poste du MIT, et se fixa finalement... chez Google avec une belle carrière à New-York et à Londres. Lorsqu'il m'accueillit à Brooklyn, j'ai pu grâce à lui visiter le centre scientifique Google au 111 de la 8th Avenue, avec sa piscine remplie de balles de ping-pong, sa machine Lisp maintenue dans la galerie des ordinateurs vintage, et son restaurant des cuisines du monde : superbe ! Quant à moi, sortie de l'Ecole Alsacienne pour revenir dans le public à l'UPMC sur un poste détaché au centre de formation à l'informatique des enseignants de la région parisienne, dirigé par Richard Bonnaire, où je m'occupais de programmation (Logo, Lisp, Pascal, Prolog, IA notamment) tout en croisant régulièrement Claude Allègre qui avait son bureau juste à côté et ne pensait pas encore à dégraisser le mamouth. C'était l'époque du plan Informatique Pour Tous (IPT) de Laurent Fabius. Enseigner à des enseignants fut une excellente expérience pendant plusieurs années, les rapports étaient amicaux et complices, chacun pouvait analyser puis imiter les tics de l'autre :-) Un jour le Ministère me téléphona : "Roy, vous faites votre valise et vous prenez l'avion demain direction Lisbonne pour présenter le plan IPT". Parfait, j'adore la morue. Au moment de répondre à une question imprévue sur la survie d'IPT en cas de victoire de la droite, je sens peser sur moi le regard lourd de notre ambassadeur et j'élude la question. Il respira d'aise et je compris plus tard que l'essentiel résidait dans les contrats signés en sous-main.

Paris, c'est bien, c'est le nerf de la guerre, il faut aller là-bas un jour ou l'autre. Mais il y manque la mer et l'odeur des algues...

La Vie au Soleil (1991-2017)

La politique décida que le centre de formation de l'UPMC avait vocation à s'alléger de plus en plus jusqu'à la fermeture (au grand désespoir d'Arsac), et pour me rapprocher du Sud, je trouvai un poste vacant à l'IUT de Sophia-Antipolis. Changement d'ambiance, je retrouvais les maths et la craie : recherche opérationnelle, graphes, files d'attente, transformées de Laplace pour les équations différentielles, il m'arrivait d'apprendre des choses que je ne connaissais que par ouï-dire pour les enseigner le lendemain, ça m'a revivifié. Et puis l'IA s'essouflait un peu : on travaillait par exemple sur les réseaux de neurones, mais on n'avait pas encore les GPU pour les faire tourner...

J'ai retrouvé Jacques Chazarain, mon ancien prof de maths à la Faculté des Sciences, qui enseignait... du Lisp ! C'était presque incroyable. Même mon ancien collègue de promo Frédéric Eyssette, resté à Nice et en poste au labo de maths (le labo Jean Dieudonné), faisait du Lisp. Ils appartenaient à cette génération de mathématiciens ayant bifurqué vers l'informatique et dont certains l'avaient constituée peu à peu en science autonome. Il y avait maintenant un Département Informatique à Nice. Comme aux échecs, c'était un coup forcé et je postulais sur un poste de prof agrégé à la Fac des Sciences, pour l'obtenir grâce au soutien de Chazarain mais aussi de Jacques Morgenstern qui m'avait fait partager son intérêt pour le calcul formel. En arrivant, je fus bien accueilli dans cet excellent et sympathique deptinfo dirigé alors par Jean-Paul Partouche (maintenant par Bruno Martin et Serge Miranda), et je les remercie ainsi que mes collègues trop nombreux pour que leurs noms soient tous cités, mais aussi nos secrétaires, de Danielle Arnus à Brigitte Bloise, sans oublier les gourous à l'interface du service informatique, de Jean-Charles Godien à Serge Parizet, qui ont tous oeuvré pour le bien de notre petit groupe, et m'ont souvent sorti d'inextricables problèmes de réseau... Nous vivons en effet à l'époque du mobile et le deptinfo a exprimé sa volonté de mobilité en se déplaçant à plusieurs reprises à l'intérieur de la Faculté des Sciences, pour terminer là où il se doit : près de la mare aux canards.

L'informatique, c'est aussi parfois la bidouille. Mon collègue et hacker devant l'Eternel Michel Buffa (qui a créé un excellent MOOC sur Edx), m'a donné l'opportunité de rénover une borne d'arcade des années 60 avec des milliers de jeux vintage. Hélas en déménageant j'ai du m'en dessaisir. Je vais avoir le temps de retrouver mon fer à souder, commander une nouvelle carte i-Pac et peut-être en reconstruire une moins volumineuse ?

Je fus d'abord chargé d'enseignement de cours-TP en Pascal pour les étudiants. Oh, j'aurais clairement préféré faire d'emblée du Lisp mais bon, Pascal était une vieille connaissance, alors... Je suis quand même parvenu, et la confiance d'Yves Hervier et Olivier Lecarme y furent pour quelque chose, à monter en seconde année de licence un enseignement de Lisp, Chazarain faisant de son côté du Common-Lisp en 3ème année. Suite à de nombreuses discussions avec ce dernier, nous décidâmes de passer à Scheme. J'en avais entendu parler à Paris sous la houlette de Patrick Greussay et Christian Queinnec, ardents propagateurs de la liaison lexicale. Scheme est un successeur épuré de Lisp, dont la sémantique est plus facile à décrire. Après quelques mois d'écriture à deux mains d'un livre commun sur Scheme, il était patent que nos opinions divergeaient quelque peu. Chazarain écrivit son Programmer avec Scheme et moi je mis des lustres à sortir mon Premiers Cours de Programmation avec Scheme, orienté sur le dialecte Racket qui me paraissait impeccablement adapté à l'enseignement : il regroupait tout ce que j'avais pu raconter en L1-L2-L3. J'aurais bien choisi le Bigloo de Manuel Serrano à l'INRIA mais il a mis du temps à fonctionner sur Mac, je n'ai pas eu la patience d'attendre.

    

Au deptinfo, le langage Pascal se retira de la scène pour laisser la place en L1-L2 à Java, puis à l'excellent couple Java/Processing, et enfin à Python, un petit langage bien sympathique qui monte...

            

Au moment de partir, je le sens bien, ce couple Racket-Python, qui contient tous les paradigmes de programmation, augmenté de C pour avoir un vrai modèle de machine de bas niveau. Ce qu'il en adviendra, c'est le deptinfo qui en décidera, nul doute que des évolutions auront lieu. Le paradigme fonctionnel se porte bien, il pénètre tous les langages, aidé par le Big Data. En regardant mes anciens cours de Lisp d'il y a 30 ans, je me dis que je pourrais presque les reprendre, aujourd'hui que l'IA est de retour, agrémentés d'algorithmes multimédia, et en remplaçant Lisp par Scheme ou par le très intéressant Clojure, mais je rêve assis... Ceux qui restent devront se positionner face au segment machine learning ou l'ignorer (devant l'Histoire ?), mais ceci est une toute autre affaire concernant aussi le contenu de l'algorithmique. Il est remarquable de constater que nombre de langages et techniques récentes de programmation (Go, Swift, TensorFlow) viennent maintenant des laboratoires de l'industrie. Personne ne sait où la programmation va nous emmener et quelles seront les formes revêtues par le Calcul. J'ai toujours parié que la part d'abstraction y sera croissante et le parallélisme massif. Wait and see. Je serai dehors mais regarderai par la fenêtre, et pour les années qui viennent, au moins du côté intellectuel, mon bureau est mon programme.

Et la Pédagogie dans tout ça ?

Ah oui, la pédagogie. Enseigner fut mon coeur de métier, et c'est bien vers les apprenants que tout fut tourné. Il faut bien qu'il y ait des gens qui cherchent et puis d'autres qui jouent le rôle de caisses de résonance. Se tenir informé, faire descendre les acquis théoriques au niveau de la didactique, voilà ce que j'estimais être mon rôle. J'ai toujours enseigné à des débutants (disons les trois premières années d'université) dans la zone Langages, m'intéressant peu aux bases de données, à l'architecture des réseaux ou à d'autres techniques propres à l'informatique. Depuis le début je me pose la question lancinante du langage de programmation : quel est son rôle exactement ? Doit-il n'être vu que comme un outil pré-existant permettant d'exécuter un programme ? Jacques Arsac me disait un jour qu'il existait des programmeurs de classe A : on leur donne un programme à coder dans un langage donné, ils font le job. Et les programmeurs de classe B, qui n'arrêtent pas de râler sur les inconvénients du langage, et en cherchent constamment un autre, plus propre, plus concis et s'ils ne le trouvent pas, ils construiront une sous-couche à l'intérieur de A pour lui échapper. Je suis définitivement de classe B. J'ai toujours considéré que le langage de programmation devait permettre de véhiculer des idées, sur l'algorithmique et la complexité notamment, avec une syntaxe minimale qui devait se faire oublier. Si en plus, on peut l'exécuter sur un ordinateur, magnifique ! J'exagère un peu mais pas trop, c'est dans cet état d'esprit, sans machine, que j'avais appris les rudiments de Lisp avec The Little Lisper.

L'algorithmique est un sujet difficile pour les étudiants. Elle est la plupart du temps enseignée avec un pseudo-langage qui usurpe son qualificatif : un pseudo-langage est un langage (virtuel) avec un syntaxe floue mais une sémantique qui doit être précise, au prix de faire n'importe quoi. Il s'agit bel et bien d'un modèle abstrait de machine. Le modèle le plus élémentaire est très physique : la machine de Turing avec son ruban infini et sa tête de lecture-écriture, destinée à modéliser à l'origine la programmation séquentielle impérative. Un autre modèle - plus mathématique - est celui du lambda-calcul avec sa machine à réduire des appels (stricts ou paresseux) de fonctions. Ces deux modèles sont enseignés aux étudiants. Le premier est de bas niveau puisqu'il manipule explicitement la mémoire, et sa Logique - plongée dans un univers sans cesse en mutation - est difficile autant sur le plan intuitif que formel. Le second est de plus haut niveau, et se base dans un premier temps sur les fonctions récursives, pour migrer ensuite vers un traitement plus combinatoire de données massives et immuables, qui est la voie prise par Clojure par exemple (et pédagogiquement dans un cours de L1 par les fonctions d'ordre supérieur). Les avantages et inconvénients comparés des deux approches feront encore couler de l'encre pendant longtemps. Un étudiant sérieux, et assidu à prendre en main ce qu'on lui enseigne (cf ci-dessous), fera sa vie sur ces divers continents et saura avec l'âge se forger des heuristiques de codage. Il aura acquis une bonne souplesse pour s'adapter à l'évolution des paradigmes de programmation.

Oui mais...

Mais reste le problème qui est le seul au final face auquel nous sommes collectivement (nous autres enseignants) impuissants : que faire lorsque l'étudiant ne veut pas étudier ? C'est là une question qu'il est notoirement indiscret de poser mais en cette fin de carrière, le pessimisme me gagne. J'ai la fâcheuse impression qu'il y a de moins en moins d'étudiants qui s'intéressent à ce qu'ils font et aux Sciences en particulier. Leur niveau mathématique à l'entrée en Fac de Sciences est faible hormis un petit noyau, et je reste persuadé que l'élimination des mathématiques générales en L2 et L3 Informatique est à reconsidérer (ceci dit, il y a maintenant une section Math-Info à double compétence). Oui oui, le recrutement est à revoir, oui il faudrait sans doute (hélas) une sélection à l'entrée, oui il faudrait s'occuper d'eux plus individuellement, je sais bien tout cela mais quand même...

La situation de l'apprenant qui passe son temps dans les réseaux sociaux est peut-être aussi en train de changer, des MOOC participatifs seront probablement une solution à étudier à terme. La possibilité de se repasser la vidéo d'un cours plusieurs fois est clairement un atout, le cours peut être sous-titré et agrémenté d'exercices obligatoires et notés, etc. Des corrections peuvent commencer à être automatisées avec les progrès de l'IA. Le tout avec un encadrement humain en TD.

André Cérézo (qui était assistant de math lorsque j'étais étudiant à Valrose, et auquel je rends hommage) confiait peu avant de nous quitter brutalement : j’ai l’impression que mes étudiants ne comprennent plus rien de ce que je leur raconte. Le sachant excellent pédagogue, je suis bien certain qu'il n'en était rien. Cependant au fil des jurys de fin d'année, j'entends souvent le même discours chez ceux qui partent, donc je relativise un peu. A côté de la joie infinie qu'apporte ce métier, il reste quand même une petite part d'ombre sur un immense tableau rempli de craie.

-jpr                

Juin 2017                

P.S. Et pour fêter l'été, un p'tit bout de musique que j'ai filmé le 21 juin ?...