2.3. TP virtuel avec Jupyter Notebook#
Marc BUFFAT dpt Mécanique, UCB Lyon 1
2.3.1. Présentation (avec jupyter notebook)#
Contexte au département de mécanique
présentation de Jupyter (historique)
TP virtuel mesure en soufflerie des forces aérodynamiques (étudiant)
Implementation (enseignant)
avec jupyter
avec Jupyter + Nbgrader
2.3.2. Plateformes au département de Mécanique#
plateforme pédagogique moodle.mecanique.univ-lyon1.fr
plateforme jupyter.mecanique.univ-lyon1.fr
noyaux python / R / SageMath / Octave
plateforme Jupyter-exam.mecanique.univ-lyon1.fr
plateforme de cours nbgrader avec python / Octave
salon de discussion (authentifié) xmpp.mecanique.univ-lyon1.fr
2.3.3. Jupyter Notebook#
import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
2.3.3.1. Historique#
Project Jupyter’s operating philosophy is to support interactive data science and scientific computing across all programming languages via the development of open-source software.
Python (1980 par Guido Von Rossum / Benevolent Dictator For Life)
IPython (2001 par Fernando Pérez / Physicien Berkeley)
Jupyter (2014 par Fernando Pérez and many others / Free software fundation..)
Jupyter lab / Jupyter nbgrader (2018)
Teaching and Learning with Jupyter jupyter4edu.github.io
2.3.3.2. Jupyter and its moons: Julia Python R#
2.3.3.3. Nbviewer.jupyter.org#
2.3.4. Objectif des TP virtuels#
donnez une expertise sur le traitement de données issues d’expériences (mème virtuelles) pour en déduire des lois générales
expérience en soufflerie sur un modèle réduit pour en déduire le comportement sur un avion réel
analyse sans dimension
apprendre à rédiger un rapport sur l’analyse de ces données
pas un TP de programmation !!!!
temps pour réfléchir et rédiger le rapport
normalement, un travail sur ces TP est payant
TP individualisé
2.3.4.1. Etude des efforts aérodynamiques sur un profil d’aile#
TP L3 Mécanique
2.3.4.1.1. objectifs#
simulation d’une expérience en soufflerie
choix des mesures à effectuer (paramètres)
analyse sans dimension
rapport d’analyse
TP individualisé (un profil / étudiant)
2.3.4.2. Version étudiant#
salon de discussion
plateforme jupyter
2.3.4.3. Version enseignant simple#
utilisation de la plateforme jupyter
nécessite un programme modèle pour générer les données
écrit sous python, matlab/octave, scilab ou R
génére des données individualisées (fonction du numéro étudiant)
écriture d’un notebook simple avec les instructions, l’appel au programme de génération des donnéees et les instructions pour le rapport
distribution manuel du notebook et du programme aux étudiants
envoyer à chaque étudiant
ou partager sur le répertoire commun
récupération des comptes rendus (par les étudiants)
sous TOMUSS
dépôts sous Claroline connect ou Moodle
…
la plateforme Jupyter accepte plusieurs centaines d’étudiants en même temps
2.3.4.4. Version enseignant plus complexe#
plateforme jupyter + nbgrader
gestion automatique de la distribution des TP
récupération automatique des devoirs
mais nécéessite la mise en place d’un cours sous jupyter + nbgrader