Questionnement sur mon parcours académique

Je viens de récupérer ma 10ème carte d'étudiant. Arthur Milchior, étudiant depuis 2006. J'ai fréquenté un peu: les Université Paris 6, 7, 12 et 13, de Montréal et du Massachusetts à Amhersts, ainsi que l'École normale supérieure. J'ai une licence de math, une d'informatique, un master d'info et j'en suis à ma 4ème année de doctorat en info.

10ème année avec le statut d'étudiant, je ne sais pas si ça se fête. En tout cas, un chiffre rond[1], ça donne l'occasion de se poser des questions sur le parcours universitaire.

Note

[1] dans la base canonique

Je m'interroge pas trop sur la partie d'étudiant au sens traditionnel. Je vais pas me demander à quoi servent les maths. C'était marrant à étudier. À part l'analyse. J'ai plutôt fait confiance aux profs pour la pertinence du choix de cours. Bon, pas tout le temps, par exemple à Paris 6, en première année, je n'ai absolument pas compris l'intérêt de Scheme, et le 1er truc que je me souvient avoir voulu faire, c'était coder une boucle for. Ce qui montre que j'avais intuitivement compris, puisque la puissance de scheme est justement qu'on peut y coder les notions de programmations qu'on veut ! Malheureusement, avec la version Dr Scheme pour l'enseignement, je n'avais pas assez de notion pour réussir créer des vrais macro et avoir un truc propre.

L'explication que j'avais entendu est que certains venaient en ayant déjà appris à coder de leur côté, mais jamais en LISP, donc on nous remettait tous à égalité. Je ne suis pas convaincu, j'avais appris à programmer au collège en javascript, et je ne crois pas une seconde que ça soit un hasard que ma moyenne ait été de 99/100. Et comme en général, la plupart des très bons programmeurs que je connais ont appris par eux même, adolescent, ça me fait donc demander si mon boulot d'enseignant n'arrive pas en retard. Et surtout si dans l'absolu, mon boulot est utile puisque ceux qui sont bons se sont débrouiller sans l'aide de ceux qui font le même boulot que moi[1].

L'explication du choix de LISP donné dans Structure and Interpretation of Computer Programming, le cours d'introduction du MIT, est bien plus convaincante, mais le souci, c'est que je ne vois pas comment ça pourrait convaincre un étudiant.e de première année. Même si ça me convainc, maintenant que j'ai un peu plus de bagage.

Quoi qu'en vrai, je ne sais pas pourquoi ça me convainc, parce que s'il y a un truc dont je suis sûr, c'est que je n'ai pas de vrai expérience de programmation. J'ai fait des projet en cours -- et encore j'en ai pas fait depuis la licence 3. J'ai bossé sur le démonstrateur automatique alt-ergo en stage de fin de licence, puis 2 ans plus tard sur le compilateur d'Opa. Ce ne sont pas des petits programmes, ça sonne bien. Mais dans le premier cas, mon code n'a jamais été incorporé au programme, ce qui veut probablement dire pas mal sur l'état de mon code. Le second, j'ai quitté la start-up au bout d'un mois, et ma principale contribution aura été de rajouter quelques fonctions dans leur librairie standard[2].

Ah si, j'ai développé durant ma thèse le programme RegAut, qui implémente un algorithme prouvé durant ma thèse. C'est un beau travail, 5000 ligne d'oCaml, pas vraiment trivial. Même si le code est plus simple que la preuve elle même, pour une fois, j'ai du penser comment faire les trucs en pratique... Sauf que personne a part moi l'a jamais utilisé, et la seule documentation, c'est les commentaire du code. Et si j'ai l'intention de rajouter cet algorithme dans un logiciel de vérification, une fois le papier publié, ce n'est absolument pas à l'ordre du jour. D’ailleurs quand j'ai parlé de cet algorithme à une conférence (sans publication), la seule question que j'ai eu était «pourquoi vous l'avez implémenté ?» C'est dire à quel point la programmation est importante dans mon domaine.


Bref, ma première question est: pourquoi est-ce que j'enseigne la programmation ? En vrai, je ne peux qu'enseigner : 1 ) ce qu'on m'a enseigné et 2) ce que j'ai lu. Mais je n'ai pas de vision critique de ce que j'enseigne, je ne sais pas ce qui sera vraiment utile - quelque soit la définition d'utile. Certes, je suppose que l'indentation, lire les messages d'erreurs, ça reste utile. Est-ce que savoir ce qu'est un arbre binaire l'est aussi, je suppose, mais ça ne me semble pas évident. Parce qu'intuitivement, je suppose que ce qui compte quand on programme est de savoir se servir d'un ensemble, d'une map. Mais savoir comment c'est implémenté, ou pire, devoir le réimplémenter, ne me semble pas utile. À part dans les cas très précis ou soit on cherche à créer une nouvelle structure de donnée - ce qui n'est pas forcément tous les jours - ou alors les cas où il faut optimiser le code à fond et chercher à gagner tout ce qui peut faire gagner quelques micro-secondes[3].

En fait, le problème peut se résumer en: je ne sais pas pourquoi j'enseigne ce que j'enseigne. En première année de thèse, ça passe, parce que je suis assez perdu quand on me met devant un groupe d'étudiant.e.s sans aucune formation pédagogique, donc je ne réfléchi pas et me contente de suivre les fiches de TD qu'on me fournit. Mais là, après quelques années, c'est assez triste de se rendre compte que je n'ai aucune idée de pourquoi j'encadre un TD d'automate. Entendons-nous bien, les automates fini, c'est passionnant, c'est une jolie structure mathématique, ça a même des activités pratiques - qu'est-ce qu'on serait sans regexp ! Par contre, je ne connais pas l'intérêt de faire passer 24 heures de cours et 36 heures de travaux dirigé à des étudiant.e.s en informatique. Surtout si sur ces 60 heures, seules deux sont consacré aux regexp, au côté potentiellement pratique de ce sujet. Car, même en envisageant que le cours soit donnés pour son intérêt mathématique, apprendre à faire des démonstrations et des raisonnement, alors pourquoi ce sujet plutôt qu'un autre ? Pourquoi parler de morphisme linéaire[4], de langage préfixe, etc, plutôt que de machine de Turing, un autre sujet informathématique passionnant.

Ceci dit, j'adore enseigner. L'année dernière j'avais les étudiant.e.s en math-info, c'était cool de rester discuter avec eux une heure après le cours de truc hors programme, et j'ai été ravi de prendre de mont temps pour faire une fiche de td bonus. En fait, j'adore enseigner aux étudiant.e.s passionné.e.s. En tant que tuteur informatique à l'ENS, l'initiation à Linux ou LaTeX avait des gens très motivé, et même s'illes ne sont pas passionné.e.s, il y avait une vraie envie de comprendre, sinon illes ne seraient pas venus. Et mine de rien, en Intervention en Milieu Scolaire, on a souvent des gens passionné. Ne serait-ce que parce qu'illes sont à fond contre tout ce qu'on dit !

Ce qui pose encore plusieurs questions: que faire des gens pas passionné ? Dans l'absolu, s'illes ne sont pas motivé, c'est des adultes, s'illes décident de pas venir c'est pas mon souci. En fait, je suis même assez admiratif et flatté que des gens viennent le lundi à 8h30 pour suivre mon TD les jours où il n'y a pas d'interro. Ou pire, le vendredi à 9h30 alors qu'illes n'ont pas d'autre cours cette journée là et qu'illes pourraient être en week-end 24 heures plus tôt (et moi de même, même si être en week-end signifie surtout avoir du temps pour rédiger sa thèse.) Mais s'illes sont assez motivé.e.s pour venir en cours, je me sens une obligation envers eux. Et je me sens fautif par rapport aux gens qui bossent et qui ne réussissent pas les interro, car après tout, c'est peut-être signe que mon boulot est mal fait.

Pour ne plus être fautif, il y a deux solutions. La première c'est de rejetter la faute sur l'université. Sur le fait que je n'ai reçu aucune formation pour l'enseignement de l'informatique. Et qu'une fois que j'ai «appris à m'exprimer avec aisance grâce au théâtre», à «travailler en groupe», à donner les premiers secours, ça ne me dit toujours pas comment faire passer une notion. C'est pas compliqué, j'ai été énormément plus formé par le Mag jeunes LGBT pour les IMS que pour mon travail. Je parlais de motivation au dessus, certes, il y a bien eu une formation «apprendre à motiver les étudiant.e.s aujourd'hui». Mais quand un sociologue nous explique qu'il faut faire comprendre aux étudiant.e.s qu'illes peuvent avoir raison même en disant le contraire de ce que dit le professeurs, j'ai du mal. Parce que le passé montre que quand l'étudiant.e dit que l'ordinateur ne fait pas ce qu'il devrait faire, c'est qu'en réalité le code source n'est pas correcte.

La seconde solution m'a été donné par un collègue. C'est accepter l'idée que certains étudiant.e.s n'ont rien à faire là. Que tant que l'université refuse de sélectionner correctement pour des raisons politiques, refuse de faire redoubler tout ce qui devraient redoubler pour des raisons statistiques, et acceptent tous les étudiant.e.s étranger même si leur niveau n'est pas équivalent au notre, alors on n'a pas à s'en faire.
Comme la présentation le laisse peut-être voir, je ne suis pas d'accord avec cet argument. En particulier car même si c'est vrai, les étudiant.e.s ne sont pas responsables. Ou en tout cas pas tous, et je ne vais pas chercher à faire le tri. Par exemple, s'illes auraient du redoubler et ont insisté pour passer, ok, c'est leur faute s'illes veulent aller trop vite. Et encore, illes peuvent avoir d'excellentes raisons, administrative ou familiale, qui fait que redoubler n'est pas une option pour eux. Mais s'illes sont passé.e.s juste car il a été décidé qu'un pourcentage minimum de gens passeraient, illes n'y sont pour rien, et je ne m'attend pas à ce qu'illes puissent juger de leurs niveaux. Pareil pour les étudiant.e.s étranger qui arrivent en L3 depuis des pays où le cursus informatique consiste à utiliser la suite office. C'est pas leur faute si l’administration les a envoyé à un endroit dont illes n'ont pas le niveau. Je me sens donc un peu le devoir, en tant qu'employé de l'université, dans la mesure de mes moyens, de combler l'erreur que d'autres ont commise en les envoyant là.

Ce qui me pose une question plus importante, est-ce que je me sens plus obligé envers les étudiant.e.s ou envers la fac. Intuitivement, je me sens plus obligé envers les étudiant.e.s. Par exemples, l'année dernière, j'ai accepté de faire un TD avant le rattrapage de l'examens d'automate, alors même que ce n'était pas dans mon service. Parce que je trouvais que c'était normal que, 5 mois après le dernier cours, quelques semaines avant le rattrapage, les étudiant.e.s aient quelqu'un à qui poser des questions sur les points qui leurs posent problème. Mais d'un autre côté, si les enseignant.e.s le font parce que c'est normal, ça évite à l'université de payer ces heures, et à long terme, ça nous dessert. Même si à court terme, je pense que les étudiant.e.s doivent avoir ce rattrapage.

Je parle de «service», c'est assez hypocrite. Si je comptais vraiment les heures, je pourrai dire que ces 2 heures, je les prend sur mon temps consacré à la thèse. Mais il faudrait que je commence à compter le temps que j'y passe. Le rapport au temps est d'ailleurs très étrange. Puisque j'ai d'une part une quantité d'heure de travail par semaine fixé, un nombre de jours de congé fixé, mais que je n'ai pas d'horaire fixé. Ce qui est génial dans la mesure où je n'ai pas à me soucier administrativement de dire quel jour je bosse chez moi, quel jour je ne bosse pas, que je ne peux PAS arriver en retard, à moins d'avoir cours ou un rendez-vous. Mais ce qui veut dire aussi que je me trouverai hypocrite de me plaindre d'avoir des échanges d'email professionnel le week-end. Et pourtant, même si ça arrive peu, ça arrive qu'il n'y ait pas d'autre moyen pour préparer le TD du lundi quand la personne qui devait faire la fiche de TD a oublié.[5]


Si j'estime que je suis là pour les étudiant.e.s, ça me pose une autre question, comment être informatiquement efficace. Parce qu'en vrai, l'informatique, c'est tout un tas de truc pas testable en examen, c'est beaucoup de culture générale.

Il y a d'abord toute la culture générale geek, qui les aiderait à être plus facilement accepté dans un milieu de programmeur. Ceci dit, je suis pas vraiment pour, puisque ça désavantage injustement ceux qui n'ont été élevé dans cet ambiance[6]. Même si j'aime beaucoup la culture geek moi même.

Mais dans la culture générale, je parle de textes lié à la programmation, comme The daily What The Fuck, qui recense des erreurs de programmeurs. J'ai l'espoir que ça peut servir de vaccins. Ou encore apprendre à se servir d'emacs/vim (ou, carrément, rêvons, leur permettre de faire un choix !)
Parce que l'état actuel des choses, c'est dire aux étudiants «utiliser emacs» et... c'est tout. Et que ma moins pire solution pour l'instant est: quelque soit le niveau, quand j'ai un groupe, je leur apporte une copie de la carte de référence d'emacs, je donne de temps en temps quelques raccourcis claviers durant des TP au tableau. Et quand je passe derrière un étudiant et que je le vois faire un truc que j'aurai pu faire plus rapidement, je lui donne le raccourci clavier. C'est d'ailleurs à ce moment là que je me suis rendu compte à quel point alt-/, l'auto-complétion, est génial dans emacs ! Ou encore alt-s w, pour chercher un mot exactement, puis le remplacer. Car sinon, quand on veut remplacer la variable i, mais qu'on ne veut pas que while devienne whole, c'est assez ennuyeux.

Enfin, culture générale, j'entend le genre de truc qu'on peut trouver dans des livres de généralisation. Même sans savoir précisément ce qu'est un algorithme génétique, un ordinateur quantique ou un arduino, c'est des sujets suffisamment intéressant et vulgarisable pour que je trouve dommage que des étudiants de L3 n'en aient jamais entendu parler.


Savoir ce que je dois aux étudiant est lié à une autre question. Si je ne leur doit que le minimum, comment justifier mon salaire ? De base, je suis mollement pour le salaire à vie/revenu de base, même si je suis vraiment pas assez renseigné pour pouvoir tenir une discussion à ce sujet. Donc avoir un salaire n'est pas dans l'absolu quelque chose que je crois devoir justifier. Mais vu que ces notions ne sont pas en place et qu'il y a plein de chômeur, éthiquement, je me pose la question. Et quand je vois combien je suis payé pour mon doctorat, et que ça fait deux ans que je bosse sur l'algorithme RegAut dont je parlais plus haut, je me dis que ça fait quand même hyper cher l'algorithme, et ne justifie pas à lui seul le salaire.


P.S. Au fait, j'ai dégenré le texte parce que je me suis dit que si même le club inutile s'y mettait, j'ai pas d'excuse.

Notes

[1] Mais il y a sûrement un biais. Ce n'est pas «ado et sans prof implique bon», ça doit aussi être un peu «bon implique prêt à travailleur seul.»

[2] Le compilateur est en oCaml, illes ont dévellopé leur propre bibliothèque standard, et quand on aime les langage typé, avoir des trucs aussi précis que «liste non vide», sans pour autant avoir toute la complexité de coq, c'est le paradis.

[3] mais dans ce cas, je doute qu'oCaml - le langage que j'enseigne cette année - soit le langage choisit

[4] Tiens, un truc rigolo, «linéaire» ici, ça simplifie le propos, alors qu'intuitivement, on pourrait supposer que s'il y a deux mots, ça serait plus complexe.

[5] Plus récemment, la fac a fermé à cause de vigipirate+risque de manifestation lié au lancement de COP21. On a donc échangé des emails pour voir comment on gérait les interrogations du lundi alors qu'il y a un risque que soit la fac soit encore fermé, soit des étudiants ne puissent pas venir car la préfecture recommandait de ne pas prendre les transports.

[6] J'ai hésité à glisser sur le sexisme, mais j'ai jugé le billet assez long.

Commentaires

1. Le mardi 22 décembre 2015, 14:47 par LCF

" je suis assez perdu quand on me met devant un groupe d'étudiant.e "
=> d"étudiants
Par définition, dans un groupe, il y a plusieurs individus.

"même s'illes ne sont pas passionné"
=> ils ne sont pas passionnés
(plusieurs occurrences de passionnés)

" Mais s'illes sont passé"
=> ils sont passés

"si les enseignant le font"
=> enseignants

A force de défigurer le genre, tu oublies le nombre. Et oublier les nombres, pour un matheux, c'est un comble.

Pour le reste, concernant l'éducation, Je suis plutôt d'accord et trouve le don de ta personne assez noble.

" je suis pas vraiment pour, puisque ça désavantage injustement ceux qui n'ont été élevé dans cet ambiance"
La culture, ça s'acquiert. Je n'ai pas été élevé dans dans une ambiance Geek, J'en suis cependant un beau spécimen.
Qui plus est, on parle de gens qui sont supposés passer leur temps à apprendre. Je ne vois vraiment pas le problème.

The Daily WTF, c'est sympa, merci.

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Fil des commentaires de ce billet