2.1. Jupyter Notebook: un espace scientifique interactif et open-source#
Marc BUFFAT département mécanique, Université Lyon 1
2.1.1. Notebook Jupyter#
Application web pour créer et partager des documents numériques incluant des cellules avec:
du code (en JUlia, PYthon, R et autres..)
le résultat d’exécution du code
du texte avec mise en page et formule mathématique (\(\LaTeX\))
des images et de la vidéo
possibilité de création de livre de cours avec jupyter-book
2.1.1.1. Exemples de notebook#
TP Licence L2 traitement de données climatique
Autres exemples de notebook: https://perso.univ-lyon1.fr/marc.buffat
Livre de cours avec Jupyter-book: livre INtroduction à la PRogrammation Scientifique
Site Jupyter: https://jupyter.org
Teaching and Learning with Jupyter (L. Barba): https://jupyter4edu.github.io/jupyter-edu-book
Large communautés internationale (universitaire / logiciels libres) (partage sous github/gitlab)
2.1.1.2. avantages#
format standard
format standard XML incluant les résultats d’exécution
conversion en HTML ou PDF
application web standard
utilise un navigateur web
et un serveur web
local sur son PC (sous Linux, Windows, Mac)
ou distribué multi-utilisateurs (serveur jupyterhub)
2.1.1.3. intérêt pour l’enseignement#
traitement numérique dans tous les domaines scientifiques
pour la modélisation et la simulation numérique
pour l’analyse et le traitement de données
pour l’IA et le machine learning
utilisation flexible en cours
TP numérique ou TP virtuel
devoirs ou compte rendu de projet
cours interactif
2.1.2. Serveurs Jupyter Hub#
plateforme numérique pour les étudiants / enseignants / chercheurs donnant accès à
la puissance des notebooks
des environnements et ressources de calcul
un espace de travail personnel
mais avec des ressources partagées
2.1.2.1. intérêt pour l’utilisateur (étudiant)#
aucune installation sur son PC
aucune administration, ni mise à jour
nécessite uniquement un navigateur web (PC/tablette/smartphone)
accès 24h/24h
2.1.2.2. intérêt pour l’enseignement#
environnement uniforme (bibliothèques)
inclusif (indépendant du matériel / accès 24h/24h)
serveurs de calcul partagés (dans un DataCenter)
gestion centralisée (/ salles informatiques)
plus écologique (/ salles informatiques)
accès 24h/24h
passage à l’échelle
2.1.3. Serveurs Jupyter: utilisation classique#
mise en place d’un serveur Jupyterhub accessible à tous les étudiants
serveur jupyter.mecanique.univ-lyon1.fr
utilisation classique en complément de cours (devoir / CR TP)
consigne de l’enseignant sur le portail pédagogique
chaque étudiant travaille sur son notebook sur le serveur
transmet son travail sur le portail pédagogique (format pdf)
utilisation de type TP / devoir
accès en dehors des séances
version JupyterLab pour un environnement de programmation
travail en autonomie
mais pas de gestion de cours sur le serveur
échange de données très lourd (nécessité de conversion)
pas de test ou d’évaluation automatique du travail
pas de test de similarité
2.1.4. Serveurs Jupyter avec gestion de cours#
système basé sur
la version jupyter / nbgrader
des outils de configuration / gestion / évaluation par cours avec
une gestion des étudiants et équipe pédagogique
des bibliothéques python d’outils et d’exercices
une interface web de gestion / évaluation des cours
2.1.4.1. interface web de gestion du cours (nbgrader + gestion_cours)#
distribuer et récupérer simplement les TP des étudiants
gestion des étudiants
détection de plagiat
accès simple au travail des étudiants (format html, pdf)
notation / évaluation semi-automatique du travail des étudiants
interface simple avec Tomuss
accès interactif aux dossiers de TP des étudiants
2.1.4.2. logiciel libre#
développé au départ pour des besoins pédagogiques personnels
partagé dans l’esprit du logiciel libre et de Linux.
basé sur la philosophie UNIX et Python
KISS, Keep it simple, stupid (Art of Unix Programming)
simple is better than complex (zen du python)
utilisation serveur gitlab
2.1.5. Prototype existant#
2.1.5.1. serveurs de cours Jupyter (cours/classe)#
jupyterL2.mecanique (~ 100 utilisateurs simultanés)
jupyterL3.mecanique {~ 80 utilisateurs simultanés)
jupyterM1.mecanique (~ 50 utilisateurs simultanés)
jupyterM2.mecanique (~ 40 utilisateurs simultanés)
jupyterL1.mecanique (serveur de test)
2.1.5.2. serveur Jupyterhub (Python/R/Octave/SageMath)#
2.1.5.3. large possibilité de structure de cours suivant les besoins#
un seul intervenant avec peu d’étudiants
cours avec une équipe pédagogique
cours avec de nombreux étudiants: structuration en groupes de TP
ensemble de cours (meta-cours) liés à une formation
2.1.5.4. large type de notebooks suivant les besoins#
notebook classique à trous
notebook de cours à trous avec questionnaire
notebook avec des tests unitaires pour le code (nbgrader)
notebook avec des tests sur les commentaires (texte / orthographe / pertinence)
notebook avec test de similitude
notebook avec exercices tirés au hasard (avec validation)
jupyterlab avec librairie (test de validation)
jupyterlab avec CR en \(\LaTeX\) (similarité)
2.1.5.5. matériels pédagogiques#
notebooks développés sur son ordinateur
installation de Jupyter avec anaconda ou pip
ou utilisation du serveur Jupyter (accessible à tous les enseignants)
ressources sur le web
exemples de notebooks sur nbviewer.jupyter.org
galerie de notebooks sur github.com/jupyter/jupyter/wiki
exemple basique TP1.ipynb
livre de cours avec Jupyter-book: livre INtroduction à la PRogrammation Scientifique
2.1.5.6. exemples de cours#
cours L2 : jupyterL2.mecanique
outils informatique pour la méca., mécanique des solides indéformables
cours L3 : jupyterL3.mecanique
mécanique des fluides, calcul scientifique
cours M1 : jupyterM1.mecanique
éléments finis, atelier numérique
cours M2 : jupyterM2.mecanique
méthodes numériques avancées, data science, machine learning
2.1.5.7. exemples de notebook de cours (suite)#
notebook TP outils info. en L2 05-TP_regression_lineaire
notebook TP virtuel meca fluide TP2_profil
notebook cours atelier num. en M1 base Python
notebook de NEW_COURSE
2.1.5.8. gitlab#
2.1.5.9. prometeus (supervision)#
2.1.6. Projet « Include: axe 11 »#
mise à l’échelle de la solution
virtualisation des serveurs (openstack ,KVM)
automatisation / amélioration de la solution
formation des enseignants
aide aux développement de ressources pédagogiques