2.1. Jupyter Notebook: un espace scientifique interactif et open-source#

../_images/jupyter1.png

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

../_images/dptmeca1.png../_images/logo_lyon1col.jpg

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#

../_images/jupyter-notebook.png

2.1.1.2. avantages#

  1. format standard

  • format standard XML incluant les résultats d’exécution

  • conversion en HTML ou PDF

  1. 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#

  1. 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

  1. 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#

  1. mise en place d’un serveur Jupyterhub accessible à tous les étudiants

  2. 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)

  3. utilisation de type TP / devoir

    • accès en dehors des séances

    • version JupyterLab pour un environnement de programmation

    • travail en autonomie

  4. 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

  1. la version jupyter / nbgrader

  2. 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#

2.1.5.6. exemples de cours#

2.1.5.7. exemples de notebook de cours (suite)#

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

2.1.7. Questions ?#