Jupyter pour l’enseignement à Paris-Saclay#

Demande de congé pour innovation pédagogique pour l’année 2020-2021

Coordinateur: Nicolas M. Thiéry, PR, Laboratoire de Recherche en Informatique

Résumé#

Jupyter est un écosystème de logiciels libres pour les environnements interactifs de calcul en ligne. Monté en puissance depuis 2014, il fédère une communauté de millions de contributeurs et d’utilisateurs dans le monde, pour la recherche, l’enseignement et l’ingénierie.

Le présent projet d’innovation pédagogique est porté par une équipe pluridisciplinaire d’enseignants en pointe dans l’utilisation de Jupyter pour l’enseignement. Depuis quelques années, plusieurs membres de l’équipe expérimentent, développent et promeuvent ces outils à Paris-Saclay. Cela concerne déjà une vingtaine d’UE et 500 étudiant-es en mathématiques, physique, et informatique du L1 au M2, avec un impact notable sur l’implication des étudiant-es, notamment au tout début du L1 et pendant le confinement.

Jupyter a vocation à servir à beaucoup plus large échelle à Paris-Saclay, notamment dans les nouvelles maquettes. Ce projet soutiendra les investissements humains requis pour développer, tester et diffuser les outils et bonnes pratiques, en simplifier l’accès – notamment en faisant monter en puissance et en gamme un service JupyterHub existant – et former et accompagner les collègues.

La demande porte sur six mois de décharge d’enseignement, à répartir entre le porteur (EC informatique), Viviane Pons (EC informatique), Samuel Lelièvre (EC mathématiques) et Laure Dupeyrat (EC géosciences), avec comme partenaires Albane Saintenoy (EC géosciences), Jérémy Neveu (EC physique) et Marco Leoni (IR DSI/LAL).

Contexte, existant et intérêt de l’initiative#

Enseignements basés sur Jupyter à Paris-Sud et bénéfices#

Jupyter est un environnement de calcul interactif en ligne; son application phare est le «notebook» permettant de rédiger et utiliser des documents interactifs mêlant texte riche, formules, calculs, visualisations, applettes interactives. Autour de cette application s’est développé tout un écosystème d’outils notamment pour accompagner le cycle de l’enseignement: édition collaborative, partage, publication, distribution des sujets, utilisation en ligne ou locale, collecte des copies, correction semi-automatique, diffusion des copies corrigées, etc.

La grande force de Jupyter est sa flexibilité, permettant avec un même environnement de couvrir un grand nombre d’usages: calcul interactif, programmation, supports et diapos de cours, sujets de TP ou d’examens, mini applettes, … et ce indépendamment du système de calcul ou du langage de programmation sous-jacent (plus d’une centaine, dont Python, R, SageMath, Julia, C++). En voici deux illustrations.

Pons et Thiéry ont, en 2017, coordonné la mise en place de Jupyter dans le module Info 111 du portail L1 MPI. La combinaison de Jupyter avec l’interpréteur C++ cling permet à nos 400 étudiant-es d’écrire leurs premières lignes de code de manière très progressive, sans être encombrés par les détails techniques, et avec une boucle de rétroaction instantanée. De plus l’outil permet la production de sujets de TP dont la structure narrative intégrée guide de façon très progressive les étudiant-es entre explications, exemples et exercices autoévalués. Nous avons constaté une bien plus grande autonomie des étudiant-es, permettant à chacun-e d’avancer à son rythme de travail et d’apprentissage et libérant l’enseignant-e pour se consacrer aux étudiant-es qui en ont le plus besoin. Grâce à la disponibilité des outils en ligne, cette autonomisation facilite le travail individuel à la maison, en amont ou aval des TP.

Neveu et ses collègues de physique ont mis en place un cycle de cours MethNum de licence de Méthodes Numériques de trois ans, dont les cours, TPs, partiels et examens sont basés sur Jupyter et Python Scientifique. Initialement offerts aux licences DD MP, ce cours sera généralisé en 2020 à tout le portail MP (150-200 étudiants). En parallèle, Isabelle Guyon et Thiéry ont monté un cours de L1 d’initiation à la Science des données basé sur des mini-projets sur Jupyter. En 2020, ce cours sera ouvert à tout le portail MI (150-200 étudiants).

Ces cours ont mutualisé leurs efforts pour déployer les outils requis (en salle de TP du SIF, en ligne, …), notamment pour la collecte et la correction semi-automatique; certains éléments ont été contribués à l’outil nbgrader, notamment à l’occasion d’un atelier de dévelopement où Thiéry a été invité en juin 2019 à Edimbourg. Grâce à la correction semi-automatique permettant l’auto-évaluation ou l’évaluation, les étudiant-es bénéficient d’un suivi continu, encourageant un travail régulier et autonome.

En parallèle de ces cours phares à large échelle, Jupyter est utilisé dans de nombreuses UE; pour n’en citer que quelques-unes où enseignent les participant-es de ce projet: Images Numériques (L1, Python), projet pluridisciplinaire math-info (L1 MPI), Math208 Python pour le calcul scientifique (L2 MI), Algèbre effective (L3 MFA), MAO calcul formel (M1 MFA, SageMath), algorithmique des graphes (M1, Python), TER collectif: Algorithmique Interactive avec Jupyter (M1, Python, C++), modélisation option algèbre et calcul formel (M2 agreg math, SageMath).

Infrastructure#

De 2015 à 2019, Paris-Sud était coordinateur du projet Européen OpenDreamKit sur les environnements virtuels de recherche basés sur Jupyter (Thiéry: coordinateur, Pons: responsable de site et du WorkPackage dissémination, Lelièvre: participant).

Cette expérience, conjuguée aux besoins en enseignement, a amené les participant-es à s’impliquer dans le déploiement d’infrastructure au niveau local. Une réalisation phare, avec le soutien du mésocentre de Paris-Sud et une collaboration avec l’École Polytechnique, est le déploiement depuis trois ans d’un service JupyterHub@Paris-Saclay qui met ces outils à la disposition immédiate de tous les personnels et étudiant-es. Ce service est actuellement maintenu par Leoni et Thiéry, et piloté par ce dernier. Grâce à ce service, les étudiant-es gardent accès à tous les outils en dehors des séances de TP, sans devoir installer de logiciel. Cela a levé une des barrières importante au travail personnel, notamment pour les étudiant-es les plus fragiles.

Contribution à la continuité pédagogique#

Comme vu ci-dessus, Jupyter donne une plus grande autonomie aux étudiant-es face au matériel de cours, s’adaptant à leurs rythmes de travail et d’apprentissage. Cela s’avère précieux en contexte perturbé (grèves, pandémie).

En mars 2020, la bascule en enseignement à distance s’est faite naturellement et sans investissement technique supplémentaire pour L1-MPI Info123 Projets math-info et pour Algorithmique en cycle ingénieur à Polytech’Paris-Sud, notamment grâce au service CoCalc. De même, JupyterHub@Paris-Saclay a servi de salle de TP virtuelle pour les étudiants de plusieurs cours de programmation (MPI Info121, …).

Objectifs#

Jupyter a vocation à être utilisé à beaucoup plus large échelle à Paris-Saclay, notamment dans les nouvelles maquettes. Ce projet soutiendra les investissements humains requis pour développer, tester et diffuser les outils et bonnes pratiques, en simplifier l’accès – notamment en faisant monter en puissance et en gamme le service JupyterHub – et accompagner et former les collègues.

Modalités de réalisation du projet#

Nous listons ici les actions qui seront entreprises lors de ce projet. Nombre d’entre elles sont déjà en cours; les décharges d’enseignement permettront aux participant-es d’y consacrer plus d’énergie. Ce sera aussi une reconnaissance officielle de leurs efforts.

Recensement des utilisations et besoins (tous)#

À ce stade, nous connaissons par le bouche à oreille de nombreux collègues qui utilisent ou souhaitent utiliser Jupyter pour l’enseignement. Il convient d’entreprendre un recensement plus systématique. Nous mettrons en place un document collaboratif (type wiki) initialisé avec les utilisations et besoins connus, nous en ferons la publicité, et nous le tiendrons à jour.

Montée en puissance et en gamme du service JupyterHub@Paris-Saclay (Thiéry, Neveu, Leoni)#

(avec le soutien du mésocentre)

Le service JupyterHub@Paris-Saclay a fait ses preuves en couvrant les besoins de quelques cours de grande taille. Il reste cependant beaucoup à faire pour passer à l’échelle, tant en terme de volume que de variété des besoins. Les éléments saillants sont:

  • Migration sur le service Kubernetes-à-la-demande en cours de déploiement sur le mésocentre

  • Déploiement élastique, avec allocation automatique des resources en fonction des besoins (requiert Kubernetes)

  • Déploiement flexible, permettant l’instanciation de diverses piles logicielles configurées par l’utilisateur, comme dans le service similaire plasma de l’Université de Paris (requiert Kubernetes).

Pour les détails, voir le tableau de bord du service.

Pour effectuer ce travail très technique, nous avons à notre disposition des reliquats d’OpenDreamKit qui pourraient être utilisés pour faire appel à un prestataire extérieur, tel QuantStack avec qui nous collaborons régulièrement et qui est intervenu sur Plasma. Cela permettrait de concentrer les resources libérées par ce projet sur le pilotage.

Déploiements de cours clé en main (Thiéry, Neveu)#

À l’heure actuelle, déployer l’infrastructure pour un cours avec de nombreux étudiants comme Info 111, MethNum, Info 114, requiers une certaine expertise technique et présente des limitations. La principale difficulté réside dans la mise en place du système d’échange permettant le cycle complet de correction semi-automatique, notamment si l’on souhaite permettre la correction simultanée par de nombreux instructeurs. Nous travaillerons à

  • Explorer l’intégration avec les infrastructures existantes à Paris-Saclay (NextCloud, GitLab, eCampus, …), notamment pour le service d’échange.

  • Contribuer aux outils comme nbgrader, notamment pour plus de modularité.

  • Poursuivre l’homogénésation des déploiements et produire des gabarits de cours.

Déploiement d’un service CoCalc (Lelièvre, Pons)#

La plateforme CoCalc, développée sous licence libre, offre un riche environnement en ligne à base de machines virtuelles sous Ubuntu avec pléthore de logiciels libres préinstallés, dont Python et Jupyter, et des fonctionnalités de collaboration et d’enseignement. Nous collaborons de longue date avec les développeurs de CoCalc, notamment au travers du projet OpenDreamKit.

Nous utilisons le déploiement commercial https://cocalc.com pour de nombreux cours, jusqu’ici avec des licences payées via OpenDreamKit. Un déploiement local permettrait la maîtrise des données et des ressources allouées mais contraindrait à la maintenance du système.

Nous proposons un déploiement expérimental qui permettra d’évaluer la viabilité et la pertinence de la maintenance d’un tel service, en parallèle de JupyterHub.

Étude de cas: Jupyter en géosciences (Dupeyrat, Saintenoy, Thiéry, Lelièvre)#

L’adéquation et l’impact de Jupyter pour des filières en informatique, mathématique ou physique sont bien balisés. Dans cette étude de cas, nous nous associons à des enseignants en géosciences pour explorer la situation dans d’autres filières. Cela concernera deux cours obligatoires de «Mathématiques en géosciences» en L2 (20h au S1, 25h au S2); où la manipulation concrète d’exemples, notamment issus de la géosciences, servira l’appropriation de concepts théoriques. Cela concernera aussi un cours optionnel de «Programmation appliquée aux Géosciences» (25h) en L3, avec pour objectif d’essaimer par la suite en master, en profitant du fait que la même plateforme couvre une large palette des besoins.

Café Jupyter et ateliers de formation (tous)#

L’accompagnement des collègues est au cœur du projet. Nous proposerons un rendez-vous régulier court, à l’image du café pédagogie, pour aider à la prise en main de Jupyter et favoriser les échanges. Ces cafés seront complétés par deux journées de formation, notamment à l’attention des moniteur-es. L’équipe a une longue expérience d’organisation de tels événements de formation, notamment dans le cadre d’OpenDreamKit et de Software Carpentry.

Résultats attendus#

  • Amélioration de l’apprentissage pour les étudiant-es dans les UEs concernées: autonomisation; adaptation à la pluralité des expériences, et des rythmes d’apprentissage et de travail; focalisation de l’attention des enseignants sur ceux qui en ont le plus besoin.

  • Formation des étudiants scientifiques à des outils en pleine émergence.

  • Résilience accrue aux aléas (grève, pandémie, …).

  • Mutualisation des efforts des enseignants et capitalisation des bonnes pratiques.

  • Formation et dissémination auprès des moniteur-es et enseignant-es, à Paris-Saclay et au-delà.

  • Contributions logicielles aux outils utilisés.

Acteurs impliqués / partenaires#

Nicolas M. Thiéry (PR, LRI) https://Nicolas.Thiery.name
Thiéry exploite depuis sa thèse le calcul mathématique interactif (Maple, MuPAD, SageMath), en recherche comme en enseignement, et contribue au développement de ces outils (e.g. 100k lignes dans SageMath). Plus généralement, il a utilise et promeut l’usage d’outils numériques pour la pédagogie (AutoMultipleChoice, WIMS, Platon, GitLab, eCampus, …).Coresponsable du portail MPI, il a pendant la période de confinement formé en urgence des collègues et lancé un recensement collaboratif des outils et expériences d’enseignement distanciel et participé à la cellule eCampus de Paris-Saclay.

Viviane Pons (MCF, LRI) https://www.lri.fr/~pons/
Depuis son recrutement à Paris-Sud, Pons délivre la majorité de ses enseignements avec Jupyter, notamment via CoCalc et est très impliquée dans l’animation de la communauté.

Samuel Lelièvre (MCF, LMO) https://www.math.u-psud.fr/~lelievre
Lelièvre enseigne du L1 au M2 avec SageMath ou Python, en Jupyter, souvent via CoCalc, outils qu’il utilise également pour sa recherche. Il est instructeur certifié chez Software Carpentry, qui aide, via des ateliers de deux jours, les chercheur-es à adopter le terminal, le contrôle de version avec Git, et la programmation. Il aime diffuser et illustrer les maths, et programmer.

Laure Dupeyrat (MCF, GEOPS) http://geops.geol.u-psud.fr/spip.php?article734
Partenaire: Albane Saintenoy (MCF, GEOPS) http://albane.saintenoy.name/

Dupeyrat et Saintenoy utilisent les outils de calcul d’analyse de données et de visualisations pour leurs projets de recherche, et sont respectivement chargée des TD et responsable des trois UE de géosciences susmentionnées.

Partenaire: Marco Leoni (IR, DSI / LAL) https://gitlab.u-psud.fr/marco.leoni
Leoni est IR au mésocentre de Paris Saclay, notamment en soutien à l’informatique scientifique.

Partenaire: Jérémy Neveu (MCF, LAL) https://users.lal.in2p3.fr/jeremyneveu/
Neveu coordonne les enseignements de méthodes numériques en Python en double licence. Il a mis en place l’infrastructure logicielle d’échange de documents de cours et de correction des évaluations.