2.6. Engineering computation with Jupyter/nbgrader/Python#

../_images/jupyter1.png

Un retour d’expérience

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

../_images/logo_lyon1dpt.png

2.6.1. Basé sur l” EcoSystème Jupyter (pour l’éducation)#

C’est un ensemble d’outils open source pour l’informatique interactive et exploratoire, et une plate-forme pour créer des récits informatiques pour impliquer nos étudiants dans leurs démarche d’apprentissage (en sciences)

../_images/jupyter.jpg

2.6.2. Objectifs pédagogique#

  1. Apprentissage d’une méthode (et pas d’un langage)

    • approche algorithmique

    • méthode scientifique (rigueur, validation)

  2. Maîtrise de l’utilisation de l’informatique scientifique

    • pour du traitement de données

    • pour comprendre la modélisation / simulation

    • pour l’analyse des données de simulation

  3. Mais pas forcement axé sur le développement !

2.7. Approche pédagogique: Learning by doing#

constat inculture en informatique de nombreux étudiants en licence (mécanique)

  1. Laurena Barba « Computational Thinking »

  2. Seymour Papert’s Power Principle (MIT 1980)

  • What comes first, « using » or « understanding »? The natural mode of learning is to first use, leading slowly to understanding.

  1. Apprentissage par problème

    • méthode scientifique alliant rigueur, validation, analyse

2.7.1. Enseignements concernées en Mécanique#

2.7.1.1. Master Mécanique#

  • MGC1056M Éléments finis M1 Mécanique (~50 étudiants)

  • MGC1061M Atelier numérique M1 Mécanique (~50 étudiants)

  • MGC2367M Méthodes numériques avancées M2 MAM (~30 étu)

2.7.1.2. Licence Mécanique L3/L2#

  • MGC3079L Programmation & signal (~90 étudiants)

  • MGC3062L Complément mécanique des fluides (~60 étudiants)

  • MGC2014L Mécanique des systèmes de solide (~380 étudiants)

  • MGC2005L Outils informatiques pour la méca. (~ 100 étudiants)

2.7.2. Outils / mise en oeuvre#

logiciels libres pour adapter les outils aux besoins et non l’inverse

2.7.2.1. Infrastructure Jupyter/nbgrader adaptée aux cours#

  • gestion de cours

    • distribution / récupération des documents (notebook/fichiers…)

  • validation/évaluation (semi-automatique)

    • évaluation automatique de code Python

    • gestion de banques d’exercices avec notations automatiques

    • détection de plagiat (pge / compte rendu)

  • intégration de TP virtuels (axés modélisation et/ou traitement/analyse des données)

2.7.3. Infrastructure mise en place au département (accés 24/24)#

2.7.3.1. serveurs jupyterhub (cours/classe)#

  • jupyterL2.mecanique (~ 300 utilisations simultanées)

  • jupyterL3.mecanique {~ 100 utilisations simultanées)

  • jupyterM1.mecanique (~ 80 utilisations simultanées)

  • jupyterM2.mecanique (~ 80 utilisations simultanées)

2.7.3.2. serveur jupyter (Python/R/Octave/SageMath)#

2.7.3.3. serveur X2GO (accès distance logiciels prof. sous Linux)#

2.7.4. Cours Outils Informatique en L2#

[Laurena Barba] engineering computations for undergraduate students

2.7.4.1. Cours en mode comodal#

  • 2 vidéos d’introduction de 1h30 sur Jupyter et Python

  • utilisation de notebooks fait en séance avec les étudiants

2.7.4.2. TP en distanciel avec évaluation systématique#

  • traitement de données: prédiction du réchauffement planétaire

  • exercices de programmation avec numpy

  • modélisation numérique: système de vibration avec amortissement

  • modélisation avec calcul symbolique: expérience du pendule de Foucault

  • système dynamique complexe: pendule double -> chaos

2.7.5. Bilan#

2.7.5.1. Bilan très positif: a killer app for education [L. Barba]#

  • L’environnement Jupyter et les notebooks constituent un outil extrêmement flexible qui peut être utilisé de très nombreuses manières pour atteindre ses objectifs de cours.

  • Les notebooks sont suffisamment flexibles pour pouvoir être utiliser dans des apprentissages relativement passifs à très actifs: pour illustrer un cours, en classe inversée, en TP virtuels ou non, …

2.7.5.2. Mais ce n’est qu’un outil au service de la pédagogie de l’enseignant#

2.7.5.3. Besoin de partage d’expériences#

2.7.6. Merci#

../_images/jupyter-notebook.png

2.7.6.1. quelques références: https://jupyter.org#