%%html
<style>
.admonition .admonition-title {
  font-size: xx-large;
}
</style>

Candyce :
carnets numériques
et Jupyter au service de l’enseignement#

../_images/jupyter1.png

Nicolas M. Thiéry, Enseignant-Chercheur, Laboratoire Interdisciplinaire des Sciences du Numérique (LISN), Université Paris-Saclay

29 juin 2023, Orsay

Résumé#

L’usage des carnets numériques (notebook) et de Jupyter connaît un essor rapide comme outil pour l’apprentissage de la programmation, du calcul, du traitement des données, aussi bien dans l’enseignement supérieur qu’au lycée (avec notamment Capytale).

Le programme Candyce (porté par Inria et l’Université Paris-Saclay) vise à accompagner l’adoption de Jupyter dans l’enseignement supérieur et le scolaire.

Ce diaporama présente rapidement Jupyter et Candyce

Au programme#

  1. Carnets numériques et Jupyter

  2. Exemple: utilisation et actions à Paris-Saclay

  3. Candyce

Carnet numérique (notebook)?#

Document interactif entrelaçant Narration, Calcul, Visualisation, Interaction et Programmation

Exemple 1: Étude d’un algorithme de parcours de graphes#

Définitions#

Soit \(G\) un graphe.

  • un chemin est une suite de sommets \((v_0, v_1, v_2, ...)\) tel qu’il existe une arête entre chaque paire de sommets \(v_i\) et \(v_{i+1}\)

  • la distance entre deux sommets u et v est la longueur du plus court chemin entre u et v (ou la somme des poids des arêtes).

  • On suppose ici que \(G\) est non orienté. La composante connexe d’un sommet \(u\) de \(G\) est l’ensemble des sommets atteignables depuis \(u\) en suivant un chemin dans \(G\).

L’algorithme#

%run -i graph_networkx
def parcours_visualisation(G, u):
    """
    INPUT:
    - 'G' - un graphe
    - 'u' - un sommet du graphe
    
    OUTPUT: la liste des sommets `v` de `G`
            tels qu'il existe un chemin de `u` à `v`
    """
    marked = {u} # L'ensemble des sommets déjà rencontrés
    todo   = {u} # L'ensemble des sommets déjà rencontrés, mais pas encore traités
    
    player.player.reset(copy.deepcopy(locals()))
    
    while todo:
        # Invariants:
        # - Si `v` est dans `marked`, alors il y a un chemin de `u` à `v`
        # - Si `v` est dans `marked` et pas dans `todo`
        #   alors tous les voisins de `v` sont dans dans `marked`
        v = todo.pop()
        # Observation des variables locales
        player.set_value(copy.deepcopy(locals()))
        for w in G.neighbors(v):
            
            if w not in marked:
                marked.add(w)
                todo.add(w)
                # Observation des variables locales
                player.set_value(copy.deepcopy(locals()))
        v = None
        # Observation des variables locales
        player.set_value(copy.deepcopy(locals()))
    return marked

Calcul#

G = examples.parcours_directed()
parcours_visualisation(G, "A")
{'A', 'B', 'C', 'D', 'F', 'G', 'H'}

Visualisation#

player
../_images/jupyter1.png

Jupyter?#

Une communauté internationale transverse: académie, industrie, société civile

qui développe des standards ouverts, des logiciels libres et des services web

pour le calcul avec l’humain dans la boucle

Innovations#

  • Technologies web modernes
    \(\Longrightarrow\) ubiquité, …

  • Libre, ouvert, interopérable
    Julia, Python, R, C++, et des dizaines d’autres langages et systèmes

  • Très modulaire

Massivement adopté#

  • pour l’enseignement, la recherche (sciences dures -> SHS), l’ingénierie, la science des données

  • millions d’utilisateurs et de ressources

  • Amazon SageMaker, Google Colaboratory, Microsoft Azure Notebooks, Bloomberg BQuant, Intel Trusted Analytics Platform, IBM Watson Studio, Saturn Cloud, noteable.io

Pouvoir transformant sur la pratique de la recherche, de la science#

  • Un support unique pour penser et raconter, avec du code et des données
    exploration, transmission, reproduction, réutilisation, dissémination
    \(\Longrightarrow\) Science Ouverte

  • Granger, Brian E., and Fernando Pérez. « Jupyter: Thinking and storytelling with code and data. » Computing in Science & Engineering 23.2 (2021): 7-14.

  • Perkel, Jeffrey M. « Why Jupyter is data scientists” computational notebook of choice. » Nature 563.7732 (2018): 145-147.

Pouvoir transformant sur l’enseignement#

  • Autonomie et personnalisation
    grâce à la structure narrative, à la micro-scénarisation, aux retours immédiats
    \(\Longrightarrow\) massification, gestion hétérogénéité

  • Engagement
    grâce à l’interaction et la liberté d’exploration

  • Flexibilité
    n’importe où, n’importe quand, sur n’importe quel terminal
    \(\Longrightarrow\) hybridation, publics empêchés

Pouvoir transformant sur l’enseignement par le numérique scientifique?#

2006: TED talk The best stats you have ever seen de Hans Rosling

\(\Longrightarrow\) le pouvoir de la visualisation de données pour transmettre les idées et les faits

Maintenant au bout des doigs des enseignants et étudiants pour exploration interactive:

from wealth_of_nation import application
application
../_images/ce0719e023faea32639fa37a784f965eb1f5e5d117b658bc05cd4c0344979117.png

Pouvoir transformant sur la transmission de la science#

Par sa flexibilité, Jupyter romps les silos entre experts et novices, développeurs et utilisateurs, chercheurs, enseignants et apprenants, sup et sco, …

Un terreau fertile: dissemination \(\longrightarrow\) \(\longleftarrow\) exploration et montée en compétences

via les communautés et communs numériques

Ça ne reste qu’un outil!#

Explorer, évaluer et partager les bonnes pratiques

Exemple: utilisation en enseignement à Paris-Saclay#

  • En Licence, Master, Doctorat, recherche, …

    • L1 de la faculté des sciences: >600 étudiants sur 1000

  • En Physique, Math, Info, Géophysique, Agronomie, Chimie, Médecine, STAPS, Droit, …

  • Pour:

  • Avec Python, C++, SageMath, R, shell, …

  • Depuis: salle TP, services Jupyter@Paris-Saclay, mydocker (Centrale-Supélec), CoCalc

Exemple: actions à Paris-Saclay#

Des dynamiques similaires dans de multiples universités en France et dans le monde!

Synthèse#

Jupyter#

  • Une communauté internationale transverse: académie, industrie, société civile
    qui développe des standards ouverts, des logiciels libres et des services web
    pour le calcul avec l’humain dans la boucle

  • Un écosystème riche d’outils extensibles et composables
    Le carnet en est juste une application

  • Une adoption massive qui transforme la recherche, l’enseignement, la science

La France à la pointe#

  • JupyterCon 2023 (et 2024?) à Paris!

  • Pépite QuantStack : PME, core devs Jupyter, logiciel scientifique libre

  • Capytale (porté par Académie de Paris): 500k utilisateurs dans les lycées (100k hebdomadaires)

  • Actions locales: CNAM, Grenoble Alpes, Lyon 1, Paris-Cité, Paris-Saclay, Rouen, …

Potentiel: des millions d’utilisateurs, dans le scolaire et le supérieur#

Comment pleinement réaliser ce potentiel?#

Constat à Paris-Saclay et ailleurs#

  • Gros impact des actions locales

  • qui ne tiennent que par le dévouement de quelques uns en marge de leurs missions

  • Il y aurait tant à faire, rien que sur notre déploiement local:

    • scalabilité, qualité de service

    • accessibilité

    • diversité de logiciels

    • intégration d’agents conversationnel

  • Alors que comparativement Paris-Saclay a des moyens!

  • Pas la bonne échelle!

Candyce: promouvoir Jupyter et les carnets dans l’enseignement#

https://candyce.org/

Proposition de soutien institutionnel national à un mouvement de fond

Work Package 1 du PEPR d’accélération «Enseignement et Numérique», 12M€, 2023-2027

Actions#

  1. Faire monter en gamme Jupyter pour les besoins de l’enseignement (4M€)
    accessibilité, facilité d’utilisation, besoins métiers

  2. Déployer une infrastructure nationale souveraine (1.5M€)
    pour l’enseigment scolaire et supérieur
    et la recherche

  3. Accompagner dans le scolaire (1.5M€)

  4. Accompagner dans le supérieur (1.5M€)

  5. Fortifier un écosystème public / industriel / société civile

  6. Embarquer et nourrir la recherche (1M€)

Embarquer et nourrir la recherche?#

  • Un objet de recherche : notamment évaluer et informer :

    • la pertinence et les usages pédagogiques de Jupyter

    • la conciliation éthique, sécurité et valorisation des données pour tous les acteurs (apprenants, enseignants, chercheurs)

    • l’éco-responsabilité de l’infrastructure

  • Un observatoire d’usages pédagogiques :

    • traces d’apprentissage de millions d’utilisateurs!

    • financements de projets de recherche:

      • par AAP Candyce (qq postdocs, stages, …)

      • par AAP du WP3 du PEPR «Enseignement et Numérique»

    • en lien avec la plateforme des données de l’éducation
      WP2 du PEPR «Enseignement et Numérique»

  • Un outil de recherche

Une fine équipe#

  • Inria: maîtrise d’ouvrage

  • Université Paris-Saclay: maîtrise d’œuvre, coordination accompagnement dans le supérieur

  • Direction du Numérique pour l’Enseignement (DNE), Académie de Paris: accompagnement dans le scolaire

  • Université ~~de Lorraine~~ Sciences Sorbonne Université (?): coordination recherche

  • Prestataire sur appel d’offre: développement logiciel
    Au moins un excellent candidat

  • France Université Numérique: déploiement sur cloud public souverain

  • École Polytechnique: accompagnement sup et sco

  • Établissements associés: Grenoble, Rennes, Polynésie, Paris *, CNAM, Arts et Métiers, Erlangen, Bobo Dioulasso?, …

  • et la communauté!

Conclusion#

Nous avons une communauté, un écosystème, une équipe, un plan, des valeurs fortes,
et un environnement national unique pour mutualiser et accélerer les actions locales,

pour mettre Jupyter, les carnets numériques et le numérique scientifique libre
au bout des doigts de millions d’apprenants et enseignants,

par des outils, des services et des contenus,
par un usage raisonné, éthique et souverain des traces d’apprentissage,

pour transformer demain l’enseignement du numérique scientifique,
pour transformer après-demain l’enseignement par le numérique scientifique?

en France et au delà.

Nous sommes prêts (depuis presque deux ans).

Allons-y!