Ecosystème Jupyter pour l’enseignement à Paris-Saclay#

Demande de congé pour innovation pédagogique pour l’année 2023-2024

Coordinateur : Corentin Morice, MCF, Laboratoire de Physique des Solides

Résumé#

Suite à deux projets CIP portés par Nicolas Thiéry en 2020 et Jérémy Neveu en 2021, la Faculté des Sciences dispose à présent d’un écosystème pour l’enseignement de la programmation et du calcul très innovant, et ce au niveau mondial. Il s’appuie sur des logiciels libres de l’écosystème Jupyter, dont nbgrader, complétés par un outil, Travo, développé en interne, ainsi que de deux plateformes en ligne, Gitlab et Jupyter@Hub, hébergées par le mésocentre de l’Université Paris-Saclay. Ensemble, ces outils permettent d’utiliser Jupyter pour la création de supports de cours, diapositives, feuilles d’exercices et examens, entièrement interactifs, hébergés en ligne et adaptés à la fois aux enseignements en présentiel et à distance, et avec une interface facilitant la correction par les enseignants.

Cet écosystème est cependant encore complexe à utiliser pour de nouvelles UE et des personnes externes au groupe initial. Par conséquent, ils ne sont déployés pour l’instant qu’au sein de la Faculté des Sciences, dans les UEs gérées par les membres de ce groupe initial. Ce projet vise à permettre la généralisation de cet écosystème, de quelques UEs à l’échelle de Paris-Saclay, en simplifiant l’installation et l’utilisation de ces outils, en concevant une documentation complète pour leur installation dans des environnements variés, et en bâtissant une communauté d’enseignants-utilisateurs dans plusieurs composantes de Paris-Saclay. Ce passage à l’échelle sera notamment mis en oeuvre à l’ENS Paris-Saclay, qui servira d”établissement test pour le nouveau système de déploiement et la nouvelle documentation.

Contexte#

Jupyter est un écosystème de protocoles ouverts, services web et logiciels libres pour le calcul interactif dans plus d’une centaine de langages de programmation (dont Python, C++, R, SageMath, Julia). L’application phare – le notebook – permet d’éditer, partager et publier des documents interactifs riches, mêlant texte narratif, calculs interactifs, formules mathématiques, visualisations, animations, mini-applications, etc. Cela en fait un format prisé pour l’enseignement scientifique car le même outil sert à la fois de support de cours, de diapositives, de feuille d’exercice à compléter, et de feuille d’examen, avec un contenu interactif ! Grâce à sa souplesse et son adaptabilité, cet écosystème est largement adopté dans le monde académique et dans l’industrie, notamment pour documenter et faciliter la reproductibilité des analyses en science des données («literate computing») : par exemple, en 2016, Jupyter a été utilisé pour permettre la reproduction par tous des calculs ayant mené à la découverte des ondes gravitationnelles par le projet LIGO.

Au sein de l’Université Paris-Saclay, un serveur Jupyter, JupyterHub@Paris-Saclay, a été déployé au Mésocentre, permettant à tous les personnels et étudiants de l’Université Paris-Saclay d’accéder aisément à l’environnement Jupyter et toute une pile de logiciels scientifiques avec un simple navigateur web depuis leurs ordinateurs, tablettes ou même téléphone portables. Il est bien sûr aussi possible d’installer et d’utiliser Jupyter sur sa propre machine ou en salle de TP. Pour les enseignements concernés, ces plateformes permettent aux étudiants et enseignants de travailler de chez eux comme s’ils étaient en salle de TP. Ce qui était un confort et une facilité est devenu un service essentiel qui a largement soutenu le basculement en distanciel complet lors du confinement de mars 2020, puis le télétravail partiel après.

La gestion des devoirs informatiques – usuellement composés de multiples fichiers à la structure très précise – pose des défis particuliers qui font que les solutions usuelles pour le rendu (envoi par mail, dépôt sur l’ENT) ne sont pas adéquates. Une solution logicielle a été développée au sein de l’Université Paris-Saclay, lors des deux précédents CIP en 2020-2021 et 2021-2022 dédiés à Jupyter, en collaboration avec l’Université du Québec à Montréal. Il s’agit de la bibliothèque générique Python de gestion de devoirs Travo.

Travo permet de gérer tout le cycle des devoirs : édition collaborative du matériel pédagogique, distribution des feuilles d’exercices (sans ou avec les solutions), collecte des copies des étudiant-es, et exécution en environnement sécurisé. Ce système gère à présent le suivi pédagogique de centaines d’étudiant-es à la fois, dès la L1. Cette bibliothèque s’appuie sur les outils collaboratifs que sont la gestion de version (git) et les forges logicielles, ici la forge GitLab de l’université, qui stocke tous les devoirs et leurs rendus. Les étudiants peuvent déposer leurs travaux chaque fois qu’ils le souhaitent, pour s’autoévaluer, pour sauvegarder ce qu’ils ont fait, pour collaborer, pour changer de lieu de travail, et peuvent récupérer leurs travaux où ils le veulent, que ce soit en salle de TP, sur leur ordinateur personnel, ou pour travailler directement sur le serveur JupyterHub. L’utilisation de Travo par les étudiants permet également leur exposition progressive à ces outils collaboratifs puissants qui leur seront autant d’atouts pour la suite de leur parcours académique et professionnel.

Exemple d’utilisation de Travo pour l’UE Méthodes Numériques : les étudiant-es récupèrent les sujets des devoirs sur GitLab et peuvent ensuite travailler en salle de TP ou sur le serveur JupyterHub@Paris-Saclay. Leur travail est ensuite collecté sur GitLab par les enseignant-es.

Un deuxième logiciel, NbGrader, complémente Travo, en fournissant des outils de correction partiellement automatique, d’anonymisation des copies, de répartition des corrections entre les enseignants, et de gestion des notes. Il répond à un besoin pressant et global des équipes pédagogiques enseignant la programmation. Cet outil augmente considérablement la fiabilité et la rapidité de la correction, permettant aux enseignants de se concentrer sur leur rôle pédagogique, plutôt que de résoudre constamment des problèmes techniques. La correction partiellement automatique permet également aux étudiants de vérifier leur code pendant les TPs, ce qui en fait un outil d’autoévaluation. Ce logiciel a déjà attiré l’attention d’enseignants en dehors de la Faculté des Sciences désireux de l’utiliser, mais qui ne l’ont pas encore adopté jusqu’ici en raison de la difficulté de sa mise en oeuvre.

L’Université Paris-Saclay dispose donc à présent d’une double expertise : une expertise dans l’utilisation de Jupyter pour l’enseignement, dans de nombreuses UEs (dont Info 111 en L1 et Méthodes Numériques en L1 et L2), avec de grandes cohortes d’étudiants, et une expertise dans le développement d’outils et de pratiques innovantes pour la gestion de devoirs en ligne. Ces deux expertises, qui peuvent avoir de l’intérêt indépendamment ou en conjonction, sont pour l’instant mises en oeuvre principalement au sein de sa Faculté des Sciences.

Objectifs#

Les solutions explorées précédemment ont démontrées leur pertinence et leur adéquation sur des UEs lourdes avec un grand nombre d’étudiants. Elles demandent cependant encore une certaine expertise pour être déployées sur d’autres UEs.

Le présent projet de Congé pour Innovation Pédagogique, porté cette fois par Corentin Morice, vise à permettre le passage à l’échelle de l’écosystème Jupyter d’enseignement de la programmation à l’ensemble de Paris-Saclay via les trois objectifs suivants :

  • Fiabiliser les services

  • Faciliter l’usage

  • Déployer dans de nouveaux contextes

Objectif 1 : Fiabiliser les services#

Nous continuerons notre collaboration avec la DSI et le Mésocentre Paris-Saclay pour piloter la maintenance et la montée en gamme des services GitLab et JupyterHub respectivement. L’un des défis à relever est la tenue à la charge en périodes de forts usage (TPs de Méthodes Numériques en L1 et L2, ou périodes de rendus de projet) qui n’est pas encore aussi satisfaisante que souhaitable lorsque plusieurs centaines d’étudiants se connectent simultanément, notamment pour le service JupyterHub. À terme ce service pourra être avantageusement être remplacé par l’infrastructure nationale Candyce.

Objectif 2 : Faciliter l’usage#

  • Simplification des outils et notamment de Travo: plus grande robustesse aux erreurs humaines, poursuite du développement des tableaux de bords, automatisation de tâches routinières (dont gestion des travails de groupes), …

  • Raffinement des bonnes pratiques.

  • Rédaction d’une documentation technique de Travo pour faciliter l’embarquement de nouveaux développeurs.

  • Rédaction de tutoriels de synthèse, qui permette le déploiement dans d’autres composantes de Paris-Saclay et au delà. Ces tutoriels ne couvriront pas seulement l’utilisation de ces outils, mais également leur déploiement dans un environnement vierge, ainsi que de l’aide à la résolution de problèmes.

  • Préparation de gabarits de cours près à l’emploi.

Objectif 3 : Déployer dans de nouveaux contextes#

Nous désirons tester cette documentation sur un cas pratique, qui participe aussi au passage à l’échelle de l’écosystème Jupyter. Nous avons choisi l’ENS Paris-Saclay, et plus spécifiquement l’UE Physique Numérique en L3, qui utilise déjà Jupyter, mais seulement en local. Cette UE, où enseigne le porteur de projet, rencontre déjà nombre de problèmes que l’utilisation de l’écosystème permettrait de corriger, dont des difficultés techniques dans la remise de devoirs, la complexité de la répartition des corrections entre enseignants, et l’absence d’interopérabilité entre les machines des salles de TP et celles des étudiant-e-s.

Suite à cette installation et à l’amélioration de la documentation grâce au retour d’expérience, nous ouvrirons l’installation aux autres composantes de l’Université Paris-Saclay. Nous avons déjà pris contact avec deux d’entre elles où cet écosystème serait très utile :

  • CentraleSupélec, où les cours d’utilisation de l’informatique (par opposition aux cours de programmation, dispensés de manière plus traditionnelle) tels que Machine Learning, Analyse de Données, et Vision pourraient bénéficier de ces outils. Cette composante utilise des outils propriétaires tels que mybinder.org dont le remplacement par nos outils pourrait être bénéfique pour la qualité de l’enseignement. Le logiciel NbGrader avait d’ailleurs déjà attiré l’attention de la communauté enseignante de CentraleSupélec pour ses capacités de feedback au fil du devoir dans l’UE Moteurs de Recherche en 1ère année, mais sa complexité d’installation a empêché son déploiement.

  • AgroParisTech possède déjà une communauté active d’enseignants utilisant Python, structurée autour d’un rendez-vous mensuel. Jupyter pourrait y être particulièrement intéressant pour des UEs de Bioinformatique, et l’intérêt pour Travo et NbGrader est aussi fort.

Modalités de réalisation du projet#

Les trois objectifs seront réalisés en parallèle, les actions de simplification et de déploiements se nourissant l’une de l’autre: les déploiements seront facilités par les actions de simplification; réciproquement, les déploiements seront l’occasion de tester sur le terrain les outils et les tutoriels et de donner des retours d’expérience. Cette coconstruction sera structurée par des points d’étapes réguliers entre tous les acteurs.

Le déploiement commencera par l’ENS Paris-Saclay, dans des UEs de physique (où enseignent G. Foffi, F. Marquier et C. Morice) et de biologie (où enseigne M. Pasi). Nous avons déjà pris contact avec la Direction des Services Informatiques, à qui nous avons présenté les outils et les besoins. Nous utiliserons ensuite le retour sur expérience de cette première itération pour améliorer les outils et la documentation, avant de diffuser le tout plus largement, notamment à CentraleSupélec et AgroParisTech.

Résultats attendus#

  • Utilisation de Jupyter, Travo et NbGrader sur un grand nombre d’UEs, réparties sur tout le périmètre Paris-Saclay.

  • Outils stables et simplifiés d’enseignement avec Jupyter.

  • Mise à disposition de tous d’une documentation complète permettant l’installation et l’utilisation facile de tous les outils pour de nouvelles UE dans des environnements variés.

  • Déploiement des outils dans plusieurs UEs de physique et de biologie à l’ENS Paris-Saclay.

  • Formation d’une communauté dynamique d’enseignants utilisant Jupyter.

Acteurs et partenaires impliqués#

La demande porte sur six mois de décharge d’enseignement pour des enseignants-chercheurs de diverses disciplines impliqués dans la «jupyterisation» de leurs enseignements, à répartir entre les différents acteurs. La répartition précise des heures de décharge sera décidée ultérieurement, en fonction notamment des disponibilités et des contraintes de services. Le nombre d’acteurs dépasse la limite de 5 fixée par l’appel à projet. Cela est dû au fait que certains acteurs ont des services incompressibles et ne pourront pas bénéficier de beaucoup d’heures. Nous avons donc séparé les participants au projet en deux catégories : celles et ceux qui auront besoin de décharges conséquentes sont listés comme acteurs, et les autres comme partenaire. Dans l’idéal, si la commission le permet, nous voudrions pouvoir attribuer des heures aux deux catégories, ainsi qu’à d’éventuels nouveaux contributeurs. Cependant, si la commission le juge plus judicieux, le projet peut être effectué en n’attribuant des heures qu’aux 6 acteurs listés ci-dessous.

Acteurs#

Manuel Andia (MCF, IJCLab) https://annuaire.in2p3.fr/7413-9781/manuel-andia/ M. Andia enseigne le langage Python dans les UE Méthodes Numériques en L2 et en L3 à la Faculté des Sciences, et dispose de plus de 10 ans d’expérience professionnelle avec Python. Il a notamment développé plusieurs modules Python complets (destinés à une utilisation interne dans son équipe de recherche), ainsi que des logiciels avec interface graphique programmés intégralement en Python.

Nicolas Grenier (MCF, LISN) https://www.lisn.upsaclay.fr/~grenier N. Grenier enseigne les méthodes numériques sous diverses formes à la Faculté des Sciences. En L2 Physique, les bases ainsi que le langage Python. En M1 voie Mécanique des Fluides et en M2 parcours Dynamique des Fluides et Énergétique, des méthodes plus spécifiques à la modélisation de la mécanique des fluides.

Emmanuel Léger (MCF, GEOPS) https://www.researchgate.net/profile/Emmanuel-Leger
E. Léger utilise les outils de calcul d’analyse de données et de visualisations pour ses projets de recherche, et est chargé de TD dans plusieurs UEs de géosciences.

Samuel Lelièvre (MCF, LMO) S. Lelièvre a enseigné du L1 au M2 avec SageMath, Python, Jupyter et CoCalc. Il utilise aussi ces outils, ainsi que la fabrication d’objets en fablab, pour sa recherche et pour illustrer et diffuser les mathématiques. Il a contribué à des logiciels de mathématiques, en particulier à SageMath.

Corentin Morice (MCF, LPS) https://equipes2.lps.u-psud.fr/corentin-morice/
C. Morice enseigne au sein de l’UE Méthodes Numériques en L2 à la Faculté des Sciences ainsi que dans l’UE de Physique Numérique en L3 à L’ENS Paris-Saclay.

Marco Pasi (MCF, LBPA) M. Pasi est responsable de plusieurs UEs à l’ENS Paris-Saclay utilisant JupyterLab (via JupyterHub) comme outil principal d’enseignement : Python Programming for Biological Data Analysis and Visualisation et Analyse Avancée de Données Biologiques en Python, ainsi que comme outil pour l’analyse des données produites pendant les TPs : Molecular Modeling and Simulation. Il utilise Jupyter dans ses activités de recherche pour l’analyse et l’intégration de données biologiques expérimentales.

Partenaires#

Giuseppe Foffi (PR, LPS) G. Foffi est responsable de l’UE Méthodes Numériques en L1 à la Faculté des Sciences, et enseigne dans l’UE de Physique Numérique en L3 à L’ENS Paris-Saclay.

François Marquier (PR, LUMIN) F. Marquier est responsable de l’UE Physique Numérique en L3 à l’ENS Paris-Saclay, dans lequel le porteur du projet est aussi impliqué. Le module se découpe en une petite dizaine de cours présentant les grands axes des méthodes numériques appliquées à chaque fois à un problème de Physique. Les étudiants suivent 9 TP individuels de 4h sur l’année et doivent rendre un projet à la fin de l’année.

Jérémy Neveu (MCF, IJCLab) https://methnum.gitlab.dsi.universite-paris-saclay.fr/
J. Neveu coordonnait les enseignements des UEs Méthodes Numériques en Python MethNum pour les licences de physique jusqu’à la rentrée 2023 (CRCT) mais continue à fournir un support aux équipes en place. Il a mis en place l’infrastructure logicielle d’échange de documents de cours et de correction des évaluations methnum.

Albane Saintenoy (MCF, GEOPS) http://albane.saintenoy.name/ A. Saintenoy utilise les outils de calcul d’analyse de données et de visualisations pour ses projets de recherche, et est responsable dans plusieurs UEs de géosciences.

Nicolas M. Thiéry (PR, LISN) https://Nicolas.Thiery.name
N. Thiéry contribue depuis 1996 à l’utilisation d’outils numériques libres et souverains pour la recherche et l’enseignement (développement logiciel, exploration et partage de bonnes pratiques, animation de communauté). Il explore notamment – depuis 2017 et avec ses équipes pédagogiques – l’usage de Jupyter et GitLab pour l’enseignement, notamment en L1. Il est corresponsable du L1 Math-Info et chargé de mission Informatique Pédagogique auprès de la VP CFVU.

Diffusion des réalisations et pratiques nouvelles#

La formation d’une communauté d’utilisateurs avancés (au delà des seuls développeurs des outils logiciels) capables de gérer les problèmes techniques dans des environnements variés est l’un des objectifs centraux du projet. Il a été déplacé à cette section du document pour mieux suivre le format demandé.

L’animation de la communauté enseignante utilisant l’écosystème Jupyter est encore assurée principalement par les développeurs des outils logiciels, et en particulier par les deux porteurs des CIP 2020-2021 et 2021-2022 : Nicolas Thiery et Jérémy Neveu. Ils sont notamment les seules personnes à même de former de nouveaux utilisateurs avancés, et de résoudre des problèmes urgents se présentant par exemple en période de forte charge des serveurs. Nous voulons, notamment grâce à la documentation développée dans l’Objectif 2, former une communauté d’utilisateurs avancés connaissant l’architecture logicielle et à capables de former des enseignants et gérer les problèmes techniques indépendamment.

Cette communauté se retrouvera autour de rendez-vous réguliers pour le partage d’expériences, et gardera contact grâce à une application de messagerie pour favoriser l’entraide technique en cas de difficultés. L’ensemble des acteurs participera par ailleurs à l’animation de la communauté enseignante. Nous participerons par exemple aux rendez-vous mensuels d’enseignement via Jupyter de l’AgroParisTech, ainsi qu’aux Journées Initiatives Pédagogiques.

Ce projet sera probablement soutenu par un ingénieur logiciel financé dans le cadre du CMA SaclIA. Il s’articulera avec le Projet pour le Pédagogie 2023 Co-Saclay-Calc, qui vise à étendre l’utilisation de Jupyter pour l’enseignement au sein de l’université en utilisant le service en ligne Cocalc – libre mais non souverain – dans l’attente de l’amélioration de l’écosystème portée par ce projet. Enfin il s’insère dans le projet Candyce de déploiement national de Jupyter coporté par Inria et Paris-Saclay dans le cadre du PEPR Enseignement et Numérique.