diff --git a/.gradebook.db b/.gradebook.db
index ae41f14af364e0ac4c1c4ac96d262606b4a632b4..89d09147a4b7306eef0c6aef2fa82a7a153b5927 100644
Binary files a/.gradebook.db and b/.gradebook.db differ
diff --git a/00-jupyter-les-types-de-cellules.md b/00-jupyter-les-types-de-cellules.md
index 6557fc6024ce44d3f76686405ba3bbc13ddcfb4c..aa7e635f726b808dc39e664d3826fe42cfeb3fc8 100644
--- a/00-jupyter-les-types-de-cellules.md
+++ b/00-jupyter-les-types-de-cellules.md
@@ -16,26 +16,25 @@ kernelspec:
 
 :::{admonition} Objectif pédagogique
 
-Mieux comprendre les deux types de cellules qui
-composent un carnet Jupyter et permettent d'alterner texte riche et
-code exécutable.
+Mieux comprendre les deux types de cellules qui composent un carnet
+Jupyter et permettent d'entrelacer texte riche et code exécutable.
 
 :::
 
 +++ {"deletable": false, "editable": false}
 
-L'intérêt des carnets numériques est de permettre d'entremêler, au
+L'intérêt des carnets numériques est de permettre d'entrelacer, au
 sein d'un même document, **narration**, **interaction**, **calcul**,
 **visualisation** et **programmation**. Pour cela, Jupyter propose un
 modèle très simple : un carnet Jupyter est une simple succession de
 cellules de deux types :
 
-* Des cellules de texte riche, au format ***Markdown*** ;
+* Des cellules de texte riche, au format ***Markdown*** / ***MyST***;
 * Des cellules de code exécutable.
 
 :::{admonition} [Markdown](https://fr.wikipedia.org/wiki/Markdown) : Kesako ?
 
-* Un langage à balisage léger pour écrire du texte riche;
+* Un langage à balisage léger pour écrire du texte riche.
 * Avec une syntaxe facile à lire et écrire.
 
 Markdown vous permet ainsi de rédiger du texte ***mis en forme*** et
@@ -56,10 +55,22 @@ structuré (sections, listes à puces, ...) avec, par exemple :
 
 :::
 
-**Exercice 1 :**
+:::{admonition} [MyST](https://mystmd.org)
 
-- Consultez les cellules de texte riche de ce document pour voir
-  comment elles ont été rédigées en Markdown.
+MyST est une extension de Markdown fournissant des structures
+supplémentaires (encarts, références croisées, citations, inclusions,
+...), doublée d'une collection d'outils pour publier des documents
+scientifiques offrant une [navigation web riche](https://mystmd.org/guide).
+
+:::
+
+
+:::{admonition} Exercice 1
+
+Consultez les cellules de texte riche de ce document pour voir comment
+elles ont été rédigées en Markdown/MyST.
+
+:::
 
 +++ {"deletable": false, "editable": false}
 
@@ -67,17 +78,19 @@ structuré (sections, listes à puces, ...) avec, par exemple :
 
 * À la souris : dans la barre d'outil de la feuille, sélectionnez
   `Markdown` ou `Code`.
-* Au clavier: passez en mode commande (voir le
-  [tutoriel](concept-mode-edition-vs-commande.md)) puis utilisez
-  <kbd>Y</kbd> pour convertir une cellule Markdown en cellule de code.
+* Au clavier : passez en [mode
+  commande](../Semaine2/00-jupyter-mode-edition-vs-commande.md) puis
+  utilisez <kbd>Y</kbd> pour convertir une cellule Markdown en cellule
+  de code.
 * Inversement, toujours en mode commande, utilisez <kbd>M</kbd> pour
   convertir une cellule de code en cellule de Markdown.
 
 +++ {"deletable": false, "editable": false}
 
-**Exercice 2 :** La cellule ci-dessous est « accidentellement » une
-cellule de texte. Changez-la en cellule de code pour pouvoir
-l'exécuter :
+:::{admonition} Exercice 2
+La cellule ci-dessous est « accidentellement » une cellule de
+texte. Changez-la en cellule de code pour pouvoir l'exécuter.
+:::
 
 +++ {"deletable": false, "editable": false}
 
@@ -86,12 +99,13 @@ codecs.decode('Oenib!', 'rot_13')
 
 +++ {"deletable": false, "editable": false}
 
-## En savoir plus sur la syntaxe Markdown
+## En savoir plus sur la syntaxe Markdown ♣
 
-Voici quelques tutoriels :
+Voici quelques tutoriels que vous pourrez explorer après le TP :
 
 * [Tutoriel Markdown (SNDS)](https://documentation-snds.health-data-hub.fr/contribuer/guide_contribution/tutoriel_markdown.html)
 * [La syntaxe Markdown (Framasoft)](https://docs.framasoft.org/fr/grav/markdown.html)
+* Le chapitre «Authoring» du [guide de MyST](https://mystmd.org/guide)
 
 +++ {"deletable": false, "editable": false}
 
diff --git a/01-fonctions.md b/01-fonctions.md
index d0f7bde76da48a974414d9069abef017cb525f7a..f71fab3a3ff561741dc8192b845b6133d0b0e398 100644
--- a/01-fonctions.md
+++ b/01-fonctions.md
@@ -14,11 +14,13 @@ kernelspec:
 
 # TP : premières fonctions
 
-+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "7c56137d066444109bb04444924dccca", "grade": false, "grade_id": "cell-8b56bb2323e686a8", "locked": true, "schema_version": 3, "solution": false}}
++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "fa28aa0e65e07eb070cacc788c8bae4d", "grade": false, "grade_id": "cell-8b56bb2323e686a8", "locked": true, "schema_version": 3, "solution": false}}
 
 :::{admonition} Exercice 1 : renvoyer versus afficher
 
-1.  Exécutez les cellules suivantes qui définissent deux fonctions.
+1.  Les deux cellules suivantes définissent respectivement les
+    fonctions `abs` et `afficheAbs`; notez les différences entre ces
+    deux fonctions, puis exécutez les cellules.
 
 :::
 
@@ -184,7 +186,7 @@ nbgrader:
 afficheAbs(-3) == 3
 ```
 
-+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "16917a0a8c100643d2750beb8dbe5e60", "grade": false, "grade_id": "cell-6f19e46ffe7ff87b", "locked": true, "schema_version": 3, "solution": false, "task": false}}
++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "11cf6cf006086fd5692ad6ced17f0884", "grade": false, "grade_id": "cell-6f19e46ffe7ff87b", "locked": true, "schema_version": 3, "solution": false, "task": false}}
 
 :::{hint} Explication
 
@@ -192,7 +194,9 @@ afficheAbs(-3) == 3
 qu'**afficher** une valeur.  On notera ci-dessus que, avec `abs(3);`,
 Jupyter ne montre pas du tout la valeur alors que, avec `abs(3)`,
 Jupyter montre la valeur avec son type (`int`). Inversement
-`afficheAbs` affiche la valeur mais ne la renvoie pas.
+`afficheAbs` affiche la valeur mais ne la renvoie pas; de ce fait, il
+n'est pas possible de réutiliser la valeur produite, que ce soit pour
+un calcul ou un test.
 
 :::
 
@@ -272,12 +276,12 @@ int distance(int a, int b) {
 }
 ```
 
-+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "04d10b0e8310abdeffc474e92f24f0e5", "grade": false, "grade_id": "cell-cf373e1ce7210f3a", "locked": true, "schema_version": 3, "solution": false}}
++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "3ebfc99e85e04e0b8acad75fefa2323d", "grade": false, "grade_id": "cell-cf373e1ce7210f3a", "locked": true, "schema_version": 3, "solution": false}}
 
 :::{admonition}
-2.  Vérifiez le comportement de votre fonction `distance` sur l'exemple
-ci-dessous; essayez sur quelques autres exemples; corrigez la fonction
-si nécessaire :
+2.  Vérifiez le comportement de votre fonction `distance` sur
+    l'exemple ci-dessous; essayez sur quelques autres exemples;
+    corrigez la fonction si nécessaire :
 :::
 
 ```{code-cell}
@@ -286,8 +290,9 @@ distance(5,3)
 
 :::{admonition}
 3.  Les tests ci-dessous automatisent partiellement la vérification du
-    comportement de votre fonction; comme la valeur attendue est
-    spécifiée. Vérifiez que l'on obtient bien `true` à chaque fois :
+    comportement de la fonction `distance`, en spécifiant chaque fois
+    la valeur attendue. Vérifiez que l'on obtient bien `true` à chaque
+    fois :
 :::
 
 ```{code-cell}
@@ -489,10 +494,10 @@ nbgrader:
 // REMPLACEZ CETTE LIGNE PAR VOTRE RÉPONSE
 ```
 
-+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "d8200e589afa199999dd08f0ab5b6ee3", "grade": false, "grade_id": "cell-d27b0a203d050706", "locked": true, "schema_version": 3, "solution": false}}
++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "e23fcc5f4ec2f1631575f1543948e0b0", "grade": false, "grade_id": "cell-d27b0a203d050706", "locked": true, "schema_version": 3, "solution": false}}
 
 :::{admonition} Exercice 4 (à la maison)
-Mêmes consignes que pour l'exercice 1 avec la fonction suivante:
+Mêmes consignes que pour l'exercice 2 avec la fonction suivante :
 :::
 
 ```{code-cell}
diff --git a/cours.md b/cours.md
index db961e6be110056cd56445f389afbb1ea7d63898..c27bad0a8e5c2604c6055e50b0e391129c703ca9 100644
--- a/cours.md
+++ b/cours.md
@@ -376,8 +376,6 @@ slideshow:
 pow(2, 3)
 ```
 
-<!-- -->
-
 +++ {"slideshow": {"slide_type": "slide"}}
 
 #### On remarque
@@ -899,8 +897,6 @@ slideshow:
 b
 ```
 
-<!-- -->
-
 +++ {"slideshow": {"slide_type": "slide"}}
 
 ### Passage des paramètres par valeur