Les cahiers Jupyter pour l’enseignement
Marc Buffat, professeur au département Mécanique de l’université Claude Bernard Lyon 1, enseigne la mécanique des fluides, les méthodes numériques, la modélisation et le calcul numérique pour des étudiants de niveau Licence et Master.
Dans ses enseignements il utilise Python et les notebooks IPython (retrouvez des exemples) depuis plus d’une dizaine d’années avec un système de serveurs Jupyter-nbgrader, mis en place initialement au département mécanique et qui est maintenant généralisé à toute l’université dans le cadre du projet Include.
Objectifs pédagogiques
L’utilisation du langage Python et des notebooks Ipython correspond aux objectifs pédagogiques suivants dans les enseignements de Marc Buffat.
1. Apprentissage d’une méthode (et pas d’un langage):
- 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 informatique.
Approche pédagogique
L’approche pédagogique utilisée est inspirée des pratiques anglo-saxones du " learning by doing « et du «Constructionism « de Seymour Papert (MIT 1980) (créateur du langage Logo et de son célèbre robot tortue): What comes first, «using» or «understanding»? The natural mode of learning is to first use, leading slowly to understanding.
Cette approche part aussi du constat d’une inculture en informatique de beaucoup d’étudiants en licence (en mécanique). Pourtant, les étudiants sont utilisateurs chevronnés de tous les nouveaux outils numériques en particulier sur smartphone, mais sans chercher à comprendre le fonctionnement des outils qu’ils utilisent. De plus un certain nombre sont allergiques à la programmation informatique, telle qu’elle leur a été enseignée.
C’est la raison pour laquelle Marc Buffat privilégie une forme d’apprentissage par problème qui :
- est simple à mettre en œuvre dans un environnement Jupyter / Python
- insiste sur l’utilisation d’une méthode scientifique, alliant rigueur et validation.
Cette approche s’inspire aussi du travail d’une équipe d’universitaires autour de Lorena A. Barba, professeur à l’université de Washington, qui ont regroupé dans un livre en ligne, des pratique pédagogiques innovantes utilisant l’environnement Jupyter: Teaching and Learning with Jupyter by Lorena A. Barba et al., 2019
Environnement d’apprentissage
L’environnement d’apprentissage utilise des serveurs Jupyter nbgrader, avec un système de gestion de cours, qui sont accessibles 24h/24jh avec un simple navigateur et ne nécessite aucune installation de logiciels ni de processeurs puissants, mais uniquement une connexion internet même à faible débit.
Cet environnement permet très simplement à l’enseignant de partager et échanger des documents (notebooks, programmes, data, .) avec ses étudiants.
Notebooks pour des TPs numériques
La première utilisation des notebooks Jupyter de Marc Buffat a été faite dans le cadre de TP, où l’on demande aux étudiants de mettre en pratique des méthodes vues en cours. Le format des notebooks qui permet d’allier du texte, des images, des cellules de code est particulièrement bien adaptée à ce type d’utilisation.
La figure suivante présente un exemple de TP sur le traitement de données pour des étudiants de Licence L2.
Le travail demandé aux étudiants est la prédiction de la hausse moyenne des températures terrestres à une date fixée en utilisant un traitement approprié de données brutes qui leurs sont fournies. Les étudiants doivent lire les données, puis effectuer un lissage de ces données pour en déduire un loi simple permettant une prédiction de la hausse des température à une date fixée dans le futur.
Le système de serveurs de cours permet de fournir les données aux étudiants ainsi qu’un canvas (notebook) et récupérer ensuite le travail des étudiants en particulier leurs comptes rendus. Le notebook complet du TP est disponible sur le site professionnel de Marc Buffat :
Notebook de TP sur le traitement de données
Notebooks pour des illustrations interactives
Marc Buffat utilise aussi les notebooks jupyter pour expliquer aux étudiants des expériences avec un modèle mathématique, des simulations numériques, des visualisations et des analyses. La encore le format des notebooks Jupyter est très bien adapté à ce format d’exemple démonstratif.
Une illustration est donnée sur la figure ci-dessous, avec un notebook explicatif à destination d’étudiants en première année de licence sur la danse des pendules («swinging pendulum»). Le notebook montre comment à partir de l’étude du pendule simple, on peut générer un modèle avec n pendules qui reproduit l’expérience et surtout explique les mouvements observés.
Le notebook complet est disponible ici et à servit aussi à créer une vidéo: https://perso.univ-lyon1.fr/marc.buffat/2021/Mecanique L2/index.html
Notebook de cours
Marc utilise maintenant de plus en plus les notebooks durant ses séances de cours pour rendre ces séances plus interactives et susciter la participation des étudiants. Pour cela il demande à ses étudiants de venir si possible avec un PC, une tablette ou un smartphone, et il met à leur disposition sur le serveur Jupyter-nbgrader un notebook à trous sur le chapitre du cours à traiter. Marc Buffat déroule ensuite le notebook (en mode présentation) avec des explications et fait certains calculs dans des cellules vides avec les étudiants (en utilisant soit du calcul formel, du calcul numérique ou de la visualisation).
C’est ainsi qu’en master, Marc Buffat présente la théorie de la portance d’une aile. Cette théorie fait appel à une théorie mathématique relativement ardue (fonctions holomorphes, transformation conforme), qu’il ne démontre pas, mais qu’il utilise pour montrer que l’écoulement autopur d’un profil d’aile peut être obtenu comme combinaison linéaire d’écoulements élémentaires autour d’un cylindre en rotation, et d’une transformation conforme en imposant les bonnes conditions (condition de Kutta-Joukovski). La figure suivante illustre une partie de ce notebook.
Notebook pour des TPs virtuels
Dans le cadre de son cours de mécanique des fluides approfondies en licence, Marc Buffat crée un TP virtuel reproduisant un TP expérimental sur la mesure de portance d’une aile, que l’on avait pas la possibilité d’installer au département. Comme pour le TP expérimental, l’étudiant choisit les réglages pour les mesures (vitesse de débit, angle d’incidence). Il récupère les mesures de pression en des points du profil, pour ensuite les traiter pour obtenir la force de portance et la force de traînée en fonction de l’incidence (et du nombre de Reynolds).
Ce TP virtuel utilise un outil de simulation numérique, qui permet à chaque étudiant d’étudier un profil différent. Intégrer à la plateforme Jupyter, ce TP est fait en autonomie à distance et utilise un notebook d’explication avec une interface streamlit pour les mesures. La figure ci-dessous montre une partie de l’interface de mesure.
Livres interactifs Jupyter-book
Il existe un nouvel outil jupyter book, qui permet de valoriser les ressources pédagogiques développées. Ainsi à partir des notebooks d’un cours, il est possible de créer un livre interactif de qualité. Marc Buffat a ainsi crée, à partir de mes notebooks d’enseignement des livres de cours interactifs dont vous trouverez des exemples ici: JUPYTER_BOOK Articles | Marc BUFFAT (univ-lyon1.fr)https://perso.univ-lyon1.fr/marc.buffat/category/jupyter_book.html
Conclusion
En espérant que cet aperçu (limité) d’utilisation pour l’enseignement de cet environnement Jupyter-nbgrader, a pu démontrer la versatilité de cet outil.
Son plus grand intérêt, du mon point de vue de l’enseignant, est que son utilisation peut s’adapter aux besoins pédagogiques spécifiques de chaque enseignant car c’est un ensemble de logiciels libres, développés par une large communauté scientifique internationale très active.
Références
- M. Buffat, T. Dupriez, S. Di Loreto, JupyterCon 2023, Paris Mai 2023, «Flexible course management and validation system using Jupyterhub with additional services using Flask»
- Lorena A. Barba et al., 2019, «Teaching and Learning with Jupyter», url: https://jupyter4edu.github.io/jupyter-edu-book/notebooks-in-teaching-and-learning.html
- EPFL, «Jupyter Notebooks For Education», url: https://www.epfl.ch/education/educational-initiatives/jupyter-notebooks-for-education
- M. Buffat,”Exemples de Notebooks en Mécanique", url: https://perso.univ-lyon1.fr/marc.buffat
- «Jupyter book», «Build beautiful, publication-quality books and documents from computational content», url: https://jupyterbook.org