Retour d’expériences sur un environnement de cours basé sur JupyterHub, Nbgrader et Flask dans l’enseignement supérieur en sciences¶

Campus du libre, Octobre 2023

Marc BUFFAT département mécanique, Université Lyon 1

Plan de l'exposé

  • 1  Contexte personnel
  • 2  Contexte professionnel
  • 3  Choix de la solution
  • 4  Infrastructure mise en place
  • 5  Cas d'usage
  • 6  Jupyter-book: livre de cours interactif
  • 7  Bilan
  • 8  Questions ?

Contexte personnel¶

Tombé jeune dans la marmite du logiciel libre DIY Linux
Stallmanoramix (crédit guy.pastre.org) Tavernier 6809 128ko en 1985 Noyau linux sur disquettes 3 1/2 dès 1995

Contexte professionnel¶

Besoins Méthode
Enseignant en mécanique, modélisation numérique, calcul scientifique 1. Adaptation des outils à ma pédagogie et non l'inverse
- Approche KISS (Phylosophie d'Unix)
- Simple is better than complex
Besoin d'outils numériques adaptés à mes enseignements et mes étudiants 2. Développement basé sur les besoins pédagogiques
Outils comme Matlab et Maple trop contraignants 3. Utilisation de notebook Jupyter des 2015
- Utilisation de Python dans ma recherche (HPC) dès 2010
Problématique environnementale 4. Solution mutualisée éco-éfficiente

Choix de la solution¶

Logiciels libres que l'on peut étendre, adapter aux besoins et faire communiquer

Python Jupyter Flask Debian linux GitLab
  • Serveurs debian virtualisés avec un environnement virtuel python avec jupyterhub
  • Gestion de cours par année , par portail et par UE
  • Mise a jour automatique avec GitLab
  • Jupyter book sur le système de cours Jupyter/nbgrader/Flask

Basé sur l' EcoSystème Jupyter (pour l'éducation)

Ensemble d'outils open source pour l'informatique interactive et exploratoire, et une plate-forme interactive pour créer des récits informatiques

Large communauté internationale avec une convention internationale annuelle JupyerCon (Paris mai 2023)

Infrastructure mise en place¶

Serveurs virtualisées Debian + JupyterHub au dpt méca depuis 2015

Dans le cadre du projet AMI INCLUDE, déploiement à Lyon 1 depuis 2022

  • un IR Thomas DUPRIEZ (déploiement/adaptation)
  • une IE pédagogique Sarah Pollet (formation)
  • en cours: gestion openstack des VM (un alternant Sylvère Kanapa)

Infrastructure actuelle: gestion des VM avec KVM

  • 2x serveurs AMD 128 coeurs 512Go RAM (conso / serveur $\approx 300W$)
  • 2x serveurs AMD 96 coeurs 768 Go RAM, 2 GPU AMD A40

Bilan d'utilisation¶

site https://jupyter.univ-lyon1.fr

  • un serveur par année de formation
(L1 ~ 1500 étudiants, L2 ~ 470 étudiants, L3 ~280 étudiants, M1 ~ 230 étudiants, M2 170 étudiants)  

- 7 portails (Méca, Physique, Chimie, Maths, Génie-électrique, Science de la terre, Info.)+ 1 transversal ($\leadsto$ ~3000 étudiants)

  • 31 cours (UE) ouverts avec ~ 90 enseignants dans les équipes pédagogiques

  • à terme 1ere et 2nd année INSA de Lyon (~ 900 étudiants)

exemple: serveur M2 jupyterM2 cours MGC2367MG1

Cas d'usage¶

Objectifs pédagogiques¶

  1. Apprentissage d'une méthode (et pas d'un langage)
    • en privilégiant une approche algorithmique
    • et l'utilisant approche scientifique (rigueur, validation)
  2. Maîtrise de l'utilisation de l'informatique scientifique
    • pour du traitement de données
    • pour comprendre la modélisation et la simulation
    • pour l'analyse des données d'expériences ou de simulation
  3. Apprentissage pas forcement axé sur le développement de code

Approche pédagogique¶

L'approche pédagogique "learning by doing"

What comes first, "using" or "understanding"? The natural mode of learning is to first use, leading slowly to understanding. (Seymour Papert)

Interfaces WEB¶

Interface Notebook classique ou JupyterLab (avec XPRA) + gestion GPU

example: serveur M2 jupyterM2

Notebooks pour des TPs numériques¶

traitement et analyse de données en L2 sur le réchauffement climatique

  • Notebook du TP de L2
  • TP sur le serveur L2 cours MGC2028L

Notebook d'illustrations interactives:¶

danse des pendules

  • Notebook explicatif + Vidéo

Notebook de cours¶

Notebook sur la théorie de l'aile et la transformation de Kutta Joukovski

  • cours MGC1061M sur le serveur M1

Notebook pour des TP virtuels¶

TP en autonomie utilisant les notebooks + streamlit

  • TP virtuel de mesures de portance sur une aile d'avion

  • cours MGC3062L sur le serveur L3

Notebook sur le machine learning (prédiction météo)¶

  • utilisation d'une très grosse BD Météo-France
  • base de donnée brute nécessitant du nettoyage
  • ressource de calcul importante pour la phase d'apprentissage
  • environnement virtuel Python pour du machine learning (GPU)
    • Pansa, Seaborn, scikit-leran, tensor-flow, Keras, Pytorch

cours MGC2367M sur le serveur M2

attention ce modèle d'IA est non explicatif et donc limité

Jupyter-book: livre de cours interactif¶

valorisation des ressources pédagogiques avec l'outil jupyter book

  • notebooks ipython
  • fichiers en markdown (version myst) avec du code LaTeX
  • utilisation de Sphinx , bibtex , ..
 
  • exemples de livre sur https://perso.univ-lyon1.fr/marc.buffat

Bilan¶

  • Bilan très positif

    • très forte communauté autour de Jupyter dans le monde de l'enseignement (essentiellement anglophone)
  • Mais ATTENTION ce n'est qu'un outil au service de la pédagogie

    • importance du papier et du crayon dans l'apprentissage
  • Quelques difficultés

    • qques pbles de compatibilité entre les très nombreuses bibliothèques Python (gestion avec PIP)
    • solution : personnalisation des VM avec Openstack
    • nécessite des moyens humains, en particulier pour la formation

Questions ?¶

Bibliographie¶

  • Jupyter book sur le système de cours Jupyter/nbgrader/Flask

  • Teaching and Learning with Jupyter by Lorena A. Barba et al.

  • site professionel https://perso.univ-lyon1.fr/marc.buffat

In [ ]: