bas de page
 

La place du libre dans l'enseignement de l'informatique
et de la science des données

Mihaela Juganaru-Mathieu
 

Un débat lors des Rencontres Mondiales du Logiciel Libre en juillet 2017.

Les positions exprimées sont celles des intervenants et ne rejoignent pas forcément celles de l'April.

Description

   Enseigner l'informatique peut se faire de différentes manières et le moyen le plus sûr de donner aux étudiants des habitudes de programmation, de développement logiciel et de travail bien fait est de leur faire faire des travaux pratiques.

   On se pose toute de suite la question du système d'exploitation, du langage, de l'environnement de programmation.

   Nous, enseignants, avons donc le choix. Et le choix doit être réfléchi, entre portabilité, fiabilité de l'outil et usage collectif, potentiel de développement. Parfois, nous nous trouvons dans la position de prescripteurs, quand nos élèves viennent nous demander ce qu'ils pourraient installer chez eux.

   Il arrive aussi que notre relation avec le libre se fasse à travers nos étudiants qui travaillent avec des outils libres adaptés à des tâches particulières.

   Le logiciel libre est donc souvent la meilleure option support pour faire apprendre comme pour résoudre des problèmes de l'industrie.

Transcription

   Ceux qui étaient tout à l'heure à écouter Vincent en début d'après-midi ne sont pas là parce qu'ils vont entendre quasi le même son de cloches. Je vais parler plutôt de la place que j'accorde au Libre en tant qu'enseignante en informatique et en science des données.

   Je viens de Saint-Étienne, plus précisément de l'École des mines de Saint-Étienne. Je vais commencer par vous dire un bref CV, le pourquoi de la chose. Mon approche logiciel libre qui, ma foi, n'est absolument pas du tout militante par éducation, c'est juste que je suis tombée dans la marmite et je me suis trouvée bien. Je vais parler aussi de la place que j'accorde moi, en tant enseignante, et puis je vais parler aussi du retour que mes étudiants me font systématiquement en diverses occasions, surtout que j'ai eu à faire à des populations d'étudiants assez disparates.

   Peut-être que mon accent vous intrigue. Je suis d'origine roumaine et j'ai fait, à partir du DEA, des études en France, donc en informatique à l'École des mines de Saint-Étienne. À l'époque c'était très à la mode le calcul parallèle, donc j'ai fait du calcul parallèle, plus précisément de l'équilibrage de charges.

   Ensuite, j'ai travaillé comme ingénieur d'études dans une SSII [société de services en ingénierie informatique] qui faisait du logiciel avec bases de données, programmation C, programmation graphique des interfaces. Et puis, depuis 2000, très précisément septembre 2000, je suis maître-assistant à l'École des mines en informatique, avec des fonctions d'enseignement et de recherche.

   Une courte pause dans le cursus de maître-assistant : j'ai dû faire un séjour au Mexique, pour des raisons personnelles, suivant la famille, et puis l'occasion était trop belle pour ne pas travailler là-bas, donc j'ai travaillé quatre trimestres comme professeur invité à l'Universidad Autónoma Metropolitana. J'ai enseigné en espagnol et j'ai eu des étudiants mexicains. Des étudiants avec, ma foi, un profil très différent de ce que j'avais en France. Et puis récemment, depuis 2014, je suis responsable d'une formation de 160 heures dans le cursus ingénieur civil des mines, donc pour les étudiants en formation initiale à l'École des mines, pour les initier aux problèmes du big data.

   Y a-t-il besoin que j'explique le big data ? C'est plutôt un syntagme à la mode, mais ça cache, en fait, une réalité dans laquelle on demande beaucoup plus de soin dans la programmation qu'auparavant, du fait de grand volume des données, du fait de la vitesse à laquelle les données arrivent et surtout d'un certain besoin, d'un certain fantasme de pouvoir extraire rapidement de la valeur de ces données qui peuvent être d'un format très variable. Donc ces quatre faits, finalement – valeur, vitesse, variabilité de format [volume, NdT] – sont les caractéristiques du big data.

   [Petite image, peut-être que Bibiana n'est pas trop dépaysée, les jacarandas de la cour, d'une des cours intérieures de l'université mexicaine.]

   Tout petit retour en arrière. Donc Universidad Autónoma Metropolitana à Mexico, c'était la troisième grande université du pays, localisée sur cinq campus à Mexico DF [District fédéral], donc à la capitale. Je travaillais sur un campus et sur ce campus on formait surtout des ingénieurs, du moins les élèves avec lesquels j'étais en contact, et ceux qui étaient dans un cursus informatique, computation comme on dit là-bas. Donc j'ai eu des étudiants de tronc commun, ce qu'on appelle des étudiants de tronc commun, qui sont assez différents des élèves du cycle ICM [Ingénieurs Civils des Mines] de tronc commun donc en première année. Il manque quelques quatre années de différence. Je parlerai tout à l'heure de mes étudiants.

   J'ai eu des élèves au fil des années, donc des élèves de l'École des mines, naturellement, des élèves d'un master spécialisé à l'époque. Donc c'étaient des gens qui avaient une certaine formation professionnelle, mais qui n'étaient pas informaticiens donc qui voulaient appendre pour intégrer le métier d'ingénieur de développement informatique. Et puis j'ai eu des étudiants de niveau mastère maestria au Mexique, mastère en France, donc plutôt niveau bac + 4. Donc un panel assez large d'étudiants.

   J'avoue aussi que dans ma vie j'avais toujours rêvé d'être professeur, ce qui est très étrange mais voilà ! Et puis je me disais « je ne veux pas être professeur chez les petits, je veux être professeur chez les grands, parce que ce qui m'intéresse c'est transmettre le savoir. » Je parlais de mes prétentions du haut de mes quinze ans, il ne fallait pas faire gaffe, mais n'empêche que j'étais formatée pour ça. Et quand on a des étudiants de tronc commun et des étudiants en général, le savoir est quelque chose qu'on transmet, mais je vous assure, le plus compliqué c'est savoir comment on le transmet, malgré tout. C'est vrai qu'on n'a plus les problèmes des petites classes – maîtresse est-ce que j'écris avec le stylo rouge ou avec le stylo bleu ? Dieu merci – mais quand même, on a toujours un problème du comment de la chose. Surtout que j'en parlerai tout à l'heure, on a des étudiants qui changent, on a des profils qui changent et aussi des attentes, maintenant, des générations qui changent.

   J'ai enseigné un panel très large des cours depuis toujours, donc même quand j'étais étudiante en thèse, j'assistais des travaux pratiques en programmation, beaucoup de programmation. Donc à Mexico, surtout, j'ai assuré quatre trimestres le cours d'introduction à la programmation.

   Mes recherches portent surtout sur la fouille du texte et apprentissage automatique. Du coup j'assure aussi des cours comme ça. J'ai enseigné un cours de grid et cloud computing il y a quelques années ici même à Télecom Saint-Étienne ; des cours de calcul parallèle, recherches op [opérationnelles], algorithmique, donc ça ce sont mes passions et puis des cours de bases de données, bases de données avancées. Donc j'ai fait pas mal de choses.

   Et puis, si j'assure toujours à une variété de publics une variété de cours, étonnamment mes supports de cours sont toujours faits en LaTeX, de la manière la plus sobre possible. Ça ressemble à peu près à ceci. Les slides de cours c'est toujours le même format. Le choix étant dicté par LaTeX et puis par le format final. D'habitude, je le mets en PDF pour être sûre qu'ils vont pouvoir le lire et le relire. Pareil les sujets d'examen, de TP, tout est fait en LaTeX et je n'aime plutôt pas Word et je vous expliquerai pourquoi.

   [Ça ce sont d'autres locaux de l'École des mines de Saint-Étienne, ceux précisément qui sont sur le site de Manufrance et où se trouve mon bureau.]

Pourquoi LaTeX ?

   Je vais vous parler de logiciel libre et le LaTeX [1] a été le premier choix logiciel libre que j'ai fait de manière inconsciente. J'avais besoin de rédiger ma thèse. Auparavant j'avais rédigé le rapport de DEA ; ça s'appelait à l'époque master recherche. J'avais besoin de réaliser quelque chose de joli, il faut dire, dans lequel j'écrivais aisément des formules mathématiques et surtout, c'est entre parenthèses, j'avais besoin de gérer proprement mes références bibliographiques. Pour moi c'était mortel ! Déjà avant, les références bibliographiques, dans un petit rapport de DEA, c'était intenable : quand on en rajoutait une il fallait renuméroter, c'était l'enfer ! C'était l'horreur ! C'était les années 90, et je me suis dit tu vas apprendre LaTeX, tu verras c'est beaucoup plus facile. Et je suis tombée dans la marmite et j'y suis restée. Au point que même si j'ai une lettre à écrire aux autorités officielles je la fais d'abord en LaTeX et je l'envoie en PDF mais ça c'est une autre question.

   Et puis du coup, petit à petit, je commençais à avoir une conscience du Libre plus ou moins développée. En société de service informatique on fait surtout ce qu'on nous dit de faire, on ne se pose pas trop de questions. On voit quand même des prix de licences logicielles qui sont assez faramineux et puis on arrive à une carrière en enseignement supérieur on se pose la question : il faut que je leur apprenne à programmer et que j'aide un collègue en TP d'analyse numérique, mais quels logiciels on va utiliser et pourquoi ? Et puis on se posait la question, en salle ils vont utiliser tel logiciel, mais chez eux, s'ils veulent travailler, ils vont utiliser quoi ? Donc on se pose tout de suite la question de sur quel support informatique on va enseigner, nous enseignants en informatique. Les papiers ne suffisent pas ; il faut surtout mettre la main à la pâte et programmer, programmer, essayer des tas de choses, jusqu'à ce qu'on comprenne ce qu'on fait et jusqu'à ce qu'on acquière les bons réflexes, les bonnes manières de travailler.

   Donc on se pose forcément la question sur quel support enseigner. Et ma foi, ce que je vais vous raconter par la suite, ce sont surtout des choix de ce type.

Mon séjour au Mexique

   [C'est dommage que Vincent qui a expliqué à 14 heures des choses ne soit pas là.] Je commence, très contente de moi, directe, mes cours avec les élèves. Première question qu'ils me posent c'est : « Professora, quels logiciels doit-on acheter ? » Et là je tombe des nues. Je savais quel était le salaire de base, quel était le salaire moyen. Je savais aussi qu'il y avait un marché parallèle des logiciels sur une grande rue du centre de Mexico dans lequel on achetait avec vingt pesos, enfin un peu plus de six euros, Photoshop par exemple. Mais pour moi, c'était impensable d'engraisser qui que ce soit, soit de manière licite soit de manière illicite. Donc il fallait faire quelque chose.

   En support pour l'enseignement j'utilisais des serveurs Linux. Il s'agissait notamment de programmer en C. Donc on utilisait GCC [2] et puis les éditeurs soit Vim [3], soit vi [4], soit quelque chose qui s'appelait Tiny ou nano [5] en éditeurs de programme. Mais il fallait aussi se poser la question « mais s'ils n'ont pas la connexion internet chez eux », on était quand même au Mexique, qu'est-ce que je vais leur dire de prendre en échange ? [Ah celui-là je ne l'ai pas mis. Si.] Et du coup, à mes élèves de Mexico, j'avais suggéré DevC++ [6] qui était un outil graphique, donc un IDE [integrated development environment] d'interface graphique, basé sur le compilateur GNU, qui leur permettait de n'importe quel système d'exploitation – soit Windows, soit Linux – de pouvoir faire des programmes, les compiler, les exécuter, voir si ça marche.

Au fil du temps, les outils informatiques que j'ai utilisés

   Donc je suis très grande fan de GCC et de shell, ça vous l'avez compris, C c'est parmi mes langages favoris. J'ai beaucoup utilisé Scilab [7], plutôt en guise de MATLAB [8], enfin comme correspondant à MATLAB, et aussi parce j'ai un besoin très furieux de calculer le déterminant d'une matrice pour voir si la matrice est singulière ou pas. J'ai plutôt tendance à ouvrir Scilab qu'autre chose.

   J'ai dû enseigner au fil du temps aussi un cours d'un XML [Extensible Markup Language] pendant quelques années et, du coup, je me suis appuyée sur xsltproc [Processeur xslt en ligne de commande], donc faire des feuilles de style XSLT [9], et sur Qizx [10] ; comme moteur Xquery [11] – Langage de requête informatique. Donc, au fil du temps, Scheme [12] – Langage de programmatiion naturellement, du Prolog [13] – Langage de programmation logique., dans la version SWI-Prolog à l'époque où j'avais expliqué donc le SWI-Prolog ; Protégé9, à l'époque où j'avais enseigné mon cours de maestria en intelligence artificielle.

   Je les prends dans le désordre, vous voyez bien, et puis gLite [14] qui est un middleware pour faire du Grid computing, qui est libre ; donc c'est issu d'un projet de recherche aux États-Unis, commencé fin des années 90, qui continue toujours et qui permet justement d'illustrer toutes les fonctionnalités de ce que doit être un middleware supportant le calcul de grille.

   Et puis je l'ai mis très foncé avec sa petite icône, un logiciel très étrange, enfin très étrange, qui s'appelle Raptor, que j'utilisais beaucoup pour les étudiants du tronc commun au Mexique, donc c'étaient des étudiants qui n'avaient jamais programmé, qui n'avaient pas fait de cours d'Excel ni rien du tout, qui étaient censés faire par la suite diverses filières d'ingénieurs, des chimistes, des ingénieurs de l'environnement, des ingénieurs en construction, des informaticiens, enfin de la computation comme ils appelaient, mais qui n'avaient pas programmé ou peu. Il y en avait certains qui savaient programmer. Et, d'un point de vue pédagogique, il fallait que je sache passer, que j'arrive à passer la notion de ce que c'est qu'est test, ce que c'est qu'une boucle for, ce que c'est qu'une boucle while. Et Raptor, je vous conseille d'essayer de le retrouver, donc le software RAPTOR [15], c'est un petit logiciel qui permet de dessiner des diagrammes de flux, mais pas seulement les dessiner mais aussi les exécuter pas à pas ou les exécuter dans leur globalité. Donc ce qui est extrêmement convenable et c'est une manière très visuelle de voir : je passe par ici, je prends la branche de noms et j'exécute et je fais ma boucle et voici le résultat qui s'affiche en clair. En plus, le logiciel, il faut le dire en passant mais je n'ai pas utilisé ça, permet d'exporter son diagramme de flux dans un programme en C ou en C++, qui fera l'affaire.

   Donc ça ce sont les outils que j'ai aimés le plus. J'en ai vu plein. Je déplore parfois, par exemple, et c'est dommage que Vincent soit parti, des logiciels pour faire des jolies figures autres qu'en LaTeX parce que c'est quand même long en LaTeX, qui ne sont pas entretenus ou peu entretenus, donc j'ai des formats de figures qui ne s'ouvrent plus, malheureusement. Mais bon !

   En sciences de données, donc big data. C'est un grand mot. Ce qui se cache derrière c'est un besoin de traiter des choses d'un point de vue informatique mais aussi d'un point de vue apprentissage automatique donc tout ce qui est « je fais des prédictions ou je fais du descriptif pour pouvoir "faire parler" mes données, entre guillemets ».

   Donc je me suis permis de marquer les choix que j'apprécie le plus. D'une part Octave [16] qui est une façon très élégante et très puissante de programmer. Scilab, toujours, qui est aussi un outil de programmation dans lequel je peux manipuler autant des valeurs simples que des valeurs scalaires que des matrices et aussi des outils de visualisation intéressants.

   Python [17] et Scikit-learn. Donc de la programmation en Python. Maintenant tous les étudiants de classe préparatoire font du Python, du moins ils sont censés savoir faire du Python. Et Scikit-learn c'est une API, donc un plugin qui va venir s'intégrer dans Python pour pouvoir faire de l'apprentissage automatique.

   En dernier lieu et pas tout à la fin, c'est l'outil R [18] avec son IDE RStudio. Donc j'ai mis R, j'ai mis aussi Rstudio, parce qu'une collaboratrice qui est au Mexique m'envoie son code R et je vois qu'elle utilise R tout simple sans profiter de RStudio qui me semble un outil extrêmement confortable. Et cet outil R, d'une part il est libre, mais d'autre part il y a une certaine aisance dans l'usage. Il y a des packages différents qui nous permettent de faire des tas de choses. L'interfaçage est relativement facile mais là où le bât blesse, quand même, c'est que comme c'est développé dans un mode bazar, à savoir tout le monde qui a besoin de quelque chose soit il prend un package soit il le développe ; il arrive que les packages sont parfois incompatibles et aussi que les structures de données de base de R sont relativement compliquées. [Ah oui j'ai parlé de vous pas mal de temps, parce que Vincent a dit : « Moi je dis pareil. »]Donc je conseille aussi R pour pouvoir se lancer dans le domaine de l'apprentissage automatique. Oui ?

Organisateur : C'est terminé, normalement.

Mihaela Juganaru-Mathieu : C'est time-out. OK.

Organisateur : Mais nous sommes au moment de la pause. S'il y a des gens ici qui acceptent de laisser passer la pause, tout va bien. Vous êtes la dernière intervenante.

Mihaela Juganaru-Mathieu : OK. Bon ! En outil connexe pour traiter des gros volumes de données, je conseillerai Hadoop [19] et MapReduce. Donc Hadoop et Spark. Spark [20] étant un produit du programme Apache. Les bases NoSQL [21] donc notons les SQL Cassandra et MongoDB [22].

Un tout petit mot sur les étudiants auxquels j'ai eu à faire

   Depuis les années 80, quand j'étais étudiante en thèse jusqu'à maintenant, les générations, les profils ont tellement changé ! On a à faire à complètement une autre génération. Je n'ai plus aucun étudiant qui n'a jamais touché à un ordinateur. Ce n'était pas le cas dans les années 2000 : on voyait toujours des étudiants qui n'avaient jamais touché et pire, qui n'avaient pas envie de toucher.

   N'empêche qu'il y a toujours un écart entre les passionnés et les autres. Les autres utilisent l'ordinateur parce qu'ils en ont besoin ou parce qu'on leur dit de le faire. Ce ne sont pas les passionnés qui sont très intéressants, ce sont surtout les autres. Qu'est-ce qu'on va leur prescrire et comment on va leur dire quoi installer ? Comment faire ? Comment s'en sortir ? Et surtout prendre confiance dans l'outil informatique.

   Du coup donc, ce que les étudiants attendent de nous, c'est un accès aisé au support, donc Bibiana parlait du Moodle. J'ai découvert moi aussi depuis quelques années Moodle et c'est extrêmement facile pour mettre ses cours en PDF sur Moodle, a contrario d'entretenir une page web sur son serveur école exprès pour ça. Donc c'est infiniment plus commode et plus facile. Plus le rendu des TP : on a besoin aussi en TP d'outils performants et fiables, plutôt faciles dans leur prise en main parce que maintenant plus personne n'est capable d'assister et d'écouter un prof se promener au tableau en expliquant : si vous appuyer sur la touche F1 il va se passer ceci/cela. Donc on cherche plutôt des outils fiables et plutôt faciles en main donc parfois on met dans la balance les deux. Et puis les étudiants ont besoin d'outils pour gérer leurs projets et le travail collaboratif.

Les retours des étudiants

   Ils sont quand même beaucoup moins timides qu'il y a des années, ils ont la parole et ça c'est très bien et ils nous disent ce qu'ils en pensent. En plus, au travail de fin d'études, on leur demande directement, explicitement, qu'est-ce que vous avez pensé de la formation ? Et parfois, il leur arrive de nous prescrire eux-mêmes du Libre et de nous dire que c'est mieux que ce vous avez fait, vous savez telle ou telle chose. Donc voila !

   Et puis on a d'autres retours, un peu indirect, tout aussi intéressant, du moins à l'École des mines de Saint-Étienne, qui sont les retours de stages. J'avais parlé du travail de fin d'études, du stage de deuxième année dans lequel les étudiants nous présentent ce sur quoi ils ont travaillé et, comme on est quand même une filière technique, ils nous parlent des outils qu'ils ont vus. Et c'est là qu'on prend connaissance des divers logiciels qui existent dans ce monde et qu'on n'a pas aussi ; que parfois ils sont libres et que parfois on découvre qu'ils peuvent être très utiles dans l'enseignement par la suite.

   Je vais m'arrêter là, juste pour dire qu'il faut qu'on garde toujours en tête qu'on a un rôle formateur, donc on a un rôle très fort. Qu'il faut qu'on reste ouverts au logiciel libre et surtout qu'on fasse du Libre. Merci.

Organisateur : Garde ce microphone, il y a l'autre.

Mihaela Juganaru-Mathieu : OK.

Public : Je suis extrêmement content de voir quelqu'un qui utilise LaTeX pour une démonstration et ça m'a fait très plaisir de voir tous les logiciels libres décrits dans un contexte d'utilisation vraiment approprié. Ce que tu as raconté de ta découverte de LaTeX ça me rappelle beaucoup de souvenirs personnels, d'un directeur de thèse qui me dit : « Ah je n'aime pas ce style dans les citations. Est-ce que vous pourriez changer, faire votre bibliographie autrement ? » Je suis revenu dans le quart d'heure suivant, avec la nouvelle présentation.

Mihaela Juganaru-Mathieu : Et là il a été épaté. Ouais !

Public : Il a été bluffé ! Il pensait m'en donner pour deux jours ! Donc utilisez LaTeX. Si vous ne le savez pas, eh bien apprenez LaTeX, ça vaut vraiment la peine.

Mihaela Juganaru-Mathieu : Surtout pour les mathématiciens, physiciens, tout ce qui est formule ça va extrêmement plus vite et plus durable, quand même, dans l'écriture, que Word.

Visionner la vidéo 23 min : https://rmll.ubicast.tv/videos/place_du_libre_08045/

Diaporama support de la conférence : https://prog2017.rmll.info/IMG/pdf/mihaela_rmll2017.pdf

Paru sur le site d'April le 13 septembre 2017, à partir des Rencontres Mondiales du Logiciel Libre en juillet 2017.
https://www.april.org/place-du-libre-dans-l-enseignement-de-l-informatique-et-de-la-science-des-donnees-mihaela-juganaru-m

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/

NOTES

[1] https://fr.wikipedia.org/wiki/LaTeX

[2] GCC - GNU Compiler Collection.
https://fr.wikipedia.org/wiki/GNU_Compiler_Collection

[3] https://fr.wikipedia.org/wiki/Vim

[4] https://fr.wikipedia.org/wiki/Vi

[5] https://fr.wikipedia.org/wiki/GNU_nano

[6] DevC++ - Environnement de développement intégré
https://fr.wikipedia.org/wiki/Dev-C%2B%2B

[7] https://fr.wikipedia.org/wiki/Scilab

[8] https://fr.wikipedia.org/wiki/MATLAB

[9] https://fr.wikipedia.org/wiki/Extensible_Stylesheet_Language_Transformations

[10] https://en.wikipedia.org/wiki/Qizx

[11] https://fr.wikipedia.org/wiki/XQuery

[12] https://fr.wikipedia.org/wiki/Scheme

[13] https://fr.wikipedia.org/wiki/Prolog

[14] https://en.wikipedia.org/wiki/GLite

[15] http://raptor.martincarlisle.com/

[16] GNU Octave - Logiciel libre de calcul numérique
https://fr.wikipedia.org/wiki/GNU_Octave

[17] Python - Langage de programmation objet
https://fr.wikipedia.org/wiki/Python_( langage)

[18] R - Langage informatique dédié aux statistiques et à la science des données
https://fr.wikipedia.org/wiki/R_( langage)

[19] https://fr.wikipedia.org/wiki/Hadoop

[20] https://fr.wikipedia.org/wiki/Apache_Spark

[21] https://fr.wikipedia.org/wiki/NoSQL

[22] https://fr.wikipedia.org/wiki/MongoDB

haut de page
Association EPI
Novembre 2018

Accueil Linux et Logiciels libres Articles