Tever
FR

Essai · Essais

Qu'est-ce qu'un notebook Jupyter (et pourquoi c'est une excellente façon de débuter en programmation)

Un notebook Jupyter mêle explication et code exécutable dans un même document. Ce que c'est, comment ça marche, et pourquoi je pense que c'est l'une des meilleures portes d'entrée vers la programmation, surtout pour enseigner.

Qu'est-ce qu'un notebook Jupyter (et pourquoi c'est une excellente façon de débuter en programmation)

Il y a un outil que j’utilise presque tous les jours et qui, la première fois que je le montre, provoque souvent la même réaction : « on pouvait faire comme ça ? ». Ce sont les notebooks Jupyter. Ce n’est ni un langage de programmation ni un logiciel compliqué : c’est une façon d’écrire du code et de l’expliquer dans le même document. Et je pense que c’est l’une des meilleures portes d’entrée vers la programmation qui existent aujourd’hui.

Qu’est-ce qu’un notebook Jupyter

Un notebook Jupyter est un document qui réunit deux choses qui vivent habituellement séparées : le texte qui explique et le code qui s’exécute. Dans un même fichier, on peut écrire un paragraphe mis en forme —titres, listes, formules, liens— et, juste en dessous, un bloc de code en Python qui s’exécute et affiche son résultat sur place : un nombre, un tableau, un graphique.

Le nom vient des trois langages avec lesquels il est né —Julia, Python et R—, même si, en pratique, l’immense majorité des notebooks sont en Python. C’est un projet libre et open source, héritier d’IPython, et il s’ouvre dans le navigateur : pas besoin d’installer un environnement compliqué pour commencer à essayer.

L’essentiel n’est pas la technologie qu’il y a dessous, mais le format. Un notebook se lit de haut en bas comme un article —sauf que c’est un article qu’on peut aussi exécuter.

Comment ça marche

Un notebook s’organise en cellules, et chaque cellule est de l’un de deux types :

  • Cellules de texte (en Markdown) : où l’on écrit l’explication. C’est là que vont la théorie, les notes, les formules, la raison de ce qui suit.
  • Cellules de code : où l’on écrit du Python. Quand on exécute la cellule, le résultat apparaît juste en dessous.

Derrière le notebook, il y a un kernel (ou noyau) : le processus qui exécute le code et garde l’état en mémoire. Si l’on définit une variable dans une cellule, les cellules suivantes la connaissent. Cela permet de construire un raisonnement par étapes : on charge des données dans une cellule, on les transforme dans la suivante, on les trace dans une troisième —et entre les deux, par du texte, on explique ce que l’on fait et pourquoi.

Tout est enregistré dans un fichier portant l’extension .ipynb qui contient à la fois le texte, le code et les résultats. Ce fichier peut être partagé, suivi dans un gestionnaire de versions et réexécuté de zéro sur un autre ordinateur.

Pourquoi je pense que c’est la meilleure façon de débuter en programmation

Quand on apprend à programmer, l’obstacle n’est presque jamais la syntaxe. C’est la distance entre l’idée et le code : comprendre ce que l’on veut faire avant de se battre avec comment l’écrire. Le notebook Jupyter raccourcit cette distance, et ce pour trois raisons.

D’abord : on peut documenter avant de programmer. Avant d’écrire une seule ligne de code, on peut rédiger en Markdown la théorie, la formulation du problème ou ses propres notes. Le code cesse d’être un texte isolé et se retrouve entouré de son explication. Pour qui apprend, cela transforme le notebook en un support d’étude qui, en plus, fonctionne.

Ensuite : le code est vivant. Comme chaque cellule s’exécute séparément, on peut changer une ligne, réexécuter et voir l’effet à l’instant, sans monter un programme entier pour tester une idée. Cette boucle —écrire, exécuter, se tromper, corriger— est exactement celle avec laquelle on apprend à programmer, et le notebook la rend confortable. Créer un petit exemple pour comprendre un concept prend quelques secondes.

Et ce que je préfère : il sert à enseigner. Un enseignant peut préparer un notebook de base —avec la théorie expliquée et le code à moitié fait— et le remettre à ses élèves. Chaque élève complète ce dont il a besoin : il remplit les cellules vides, essaie des variantes, note ses questions dans une cellule de texte. Le notebook devient un espace de travail partagé où l’explication et la pratique sont au même endroit. J’enseigne l’informatique, et je ne connais pas de façon plus nette de mettre tout un groupe à programmer dès le premier jour.

Dans mon propre travail —analyser des signaux audio, tester des modèles, observer des spectres— le notebook est l’endroit où presque tout se passe avant que quoi que ce soit ne devienne un programme formel. Mais ce n’est que mon prétexte pour les utiliser. La raison pour laquelle je les recommande est plus simple : c’est la façon la plus honnête que je connaisse d’apprendre en programmant, parce qu’elle oblige à expliquer ce que l’on fait pendant qu’on le fait.

Références

Les références sur lesquelles s’appuie cet article, et par où poursuivre la lecture :