diff --git a/.gradebook.db b/.gradebook.db
index 39e4067a72eccc06a9aeddecf01a832f4d3bcf9d..f11c26e80b9ec060d4f948e2daad893b602006bb 100644
Binary files a/.gradebook.db and b/.gradebook.db differ
diff --git a/cours.md b/cours.md
index 7c0526e688a6826a499e65af7b5cf3f293be02cb..5a835b3789a5d5d00120bee395f960f1af3b7621 100644
--- a/cours.md
+++ b/cours.md
@@ -63,15 +63,15 @@ semantic:
 
 :::{prf:definition} Programmes
 
-***Programme*** : suite d'instructions exécutées de manière
-séquentielle (les unes après les autres)
+***Programme*** : séquence d'instructions qui
+spécifie étape par étape les opérations à effectuer pour obtenir à
+partir des ***entrées*** un résultat (la
+***sortie***).
 
 :::
 
 +++ {"slideshow": {"slide_type": "fragment"}}
 
-<!-- TODO IMG -->
-
 ::::::{prf:example}
 :::::{grid}
 :gutter: 0
@@ -117,7 +117,7 @@ ouvre()
 
 +++ {"slideshow": {"slide_type": "fragment"}}
 
--   Découper en petits programmes : les *[fonctions](fonction_informelle)*
+-   Découper en petits programmes : les *[fonctions](fonction_informel)*
 
 +++ {"slideshow": {"slide_type": "fragment"}}
 
@@ -204,7 +204,7 @@ appelée une ***condition***.
 
 +++ {"slideshow": {"slide_type": "fragment"}}
 
-**Exemples:**
+**Exemples :**
 
 ```{code-cell}
 ---
@@ -217,12 +217,12 @@ true
 ```{code-cell}
 ---
 slideshow:
-  slide_type: fragment
+  slide_type: null
 ---
 false
 ```
 
-+++ {"slideshow": {"slide_type": "fragment"}}
++++ {"slideshow": {"slide_type": null}}
 
 - `regarde() == Vide`
 - `x > 3.14`
@@ -273,27 +273,15 @@ slideshow:
 ```
 
 ```{code-cell}
----
-slideshow:
-  slide_type: fragment
----
 1./2 * 14.5 * 10 * 10
 ```
 
 ```{code-cell}
----
-slideshow:
-  slide_type: fragment
----
-1./2 * 14.5 * 10 * 10
+1./2 * 14.5 * 100 * 100
 ```
 
 ```{code-cell}
----
-slideshow:
-  slide_type: fragment
----
-1./2 * 14.5 * 100 * 100
+1./2 * 14.5 * 1000 * 1000 
 ```
 
 +++ {"slideshow": {"slide_type": "fragment"}}
@@ -310,20 +298,12 @@ double m;
 ```
 
 ```{code-cell}
----
-slideshow:
-  slide_type: fragment
----
 v = 1000;
 m = 14.5;
 ```
 
 ```{code-cell}
----
-slideshow:
-  slide_type: fragment
----
-1.0/2.0 * m * v * v
+1./2 * m * v * v
 ```
 
 +++ {"slideshow": {"slide_type": "slide"}}
@@ -555,14 +535,10 @@ y
 
 **Exemple : incrémentation**
 
-```{code-cell}
----
-slideshow:
-  slide_type: fragment
----
++++ {"slideshow": {"slide_type": "fragment"}}
+
 int x;
 x = 1;
-```
 
 ```{code-cell}
 ---
@@ -570,9 +546,6 @@ slideshow:
   slide_type: fragment
 ---
 x = x + 1;
-```
-
-```{code-cell}
 x
 ```
 
@@ -585,17 +558,32 @@ Variantes :
 slideshow:
   slide_type: fragment
 ---
-x -= 2
-```
-
-```{code-cell}
-x--;
+x -= 2;
+x
 ```
 
 ```{code-cell}
+---
+slideshow:
+  slide_type: fragment
+---
+x++;
 x
 ```
 
++++ {"slideshow": {"slide_type": "fragment"}}
+
+:::{admonition} Quelques raccourcis pratiques
+
+| Syntaxe  | Sémantique             | Syntaxe équivalente |
+| -------  | ----------             | ---                    |
+| `x += a` | Incrémenter `x` de `a` | `x = x + a`         |
+| `x -= a` | Décrémenter `x` de `a` | `x = x - a`         |
+| `x++`    | Incrémenter `x`        | `x = x + 1`         |
+| `x--`    | Décrémenter `x`        | `x = x - 1`         |
+
+:::
+
 +++ {"slideshow": {"slide_type": "slide"}}
 
 :::{warning} Affectation et égalité : deux concepts différents
@@ -641,11 +629,11 @@ Comment éviter de retaper chaque fois la formule?
 
 ### Fonctions
 
-(fonction_informelle)=
+(fonction_informel)=
 :::{prf:definition} Fonctions
 
 Informellement, une ***fonction*** est un
-petit [programme](programme) :
+petit [programme](programme_informel) :
 -   Entrées
 -   Traitement
 -   Sortie
@@ -659,17 +647,17 @@ petit [programme](programme) :
 ```{code-cell}
 ---
 slideshow:
-  slide_type: fragment
+  slide_type: null
 ---
 double energie_cinetique(double m, double v) {
-    return 0.5 * m * v * v;
+    return 1./2 * m * v * v;
 }
 ```
 
 ```{code-cell}
 ---
 slideshow:
-  slide_type: fragment
+  slide_type: null
 ---
 energie_cinetique(14.5, 10)
 ```
@@ -677,10 +665,8 @@ energie_cinetique(14.5, 10)
 +++ {"slideshow": {"slide_type": "fragment"}}
 
 -   Entrées : la masse et la vitesse (des nombres réels)
-
 -   Sortie : l'énergie cinétique (un nombre réel)
-
--   Traitement : `0.5 * m * v * v`
+-   Traitement : `1./2 * m * v * v`
 
 +++ {"slideshow": {"slide_type": "slide"}}
 
diff --git a/index.md b/index.md
index ee64816ffc224c75ae7fcd9afeaca8f8643597e4..afbb06c9be79d71cc4295b994060dbe30c4a29e5 100644
--- a/index.md
+++ b/index.md
@@ -11,29 +11,31 @@ kernelspec:
   name: xcpp17
 ---
 
-+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "ff657c59b200e50d261c063a9775dbc5", "grade": false, "grade_id": "cell-65f24a4fe8c153b9", "locked": true, "schema_version": 3, "solution": false, "task": false}}
++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "56ec0a4cabda6c0696ea19160d6d7e34", "grade": false, "grade_id": "cell-65f24a4fe8c153b9", "locked": true, "schema_version": 3, "solution": false, "task": false}}
 
-# Semaine 2: Programmation impérative: premier aperçu
+# Semaine 2: Premiers éléments de programmation impérative
 
-La semaine dernière, Laby nous a amené à la découverte des premiers
+La semaine dernière, Laby nous a amené à la découverte de premiers
 éléments de la programmation impérative: programmes, fonctions,
-expressions conditionnelles et itératives. Cette semaine, nous allons
+instructions conditionnelles et itératives. Cette semaine, nous allons
 commencer à formaliser ces éléments, en y ajoutant expressions et
 variables.
 
-+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "2c35c1c7542efe699c052d8014954324", "grade": false, "grade_id": "cell-65f24a4fe8c153c0", "locked": true, "schema_version": 3, "solution": false, "task": false}}
++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "4e2d6846c80331c1469f58ec637e7e4a", "grade": false, "grade_id": "cell-65f24a4fe8c153c0", "locked": true, "schema_version": 3, "solution": false, "task": false}}
 
 ## [Cours](cours.md)
 
-## [TD](TD.md)
+## [TD : affectations, instructions conditionnelles](TD.md)
 
 +++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "6b66466b7f04d30b80167a5b5f733e1f", "grade": false, "grade_id": "cell-65f24a4fe8c153c1", "locked": true, "schema_version": 3, "solution": false, "task": false}}
 
 ## TP
 
-+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "4225cf9a77f610bff1cadee460f19ddd", "grade": false, "grade_id": "cell-65f24a4fe8c153c2", "locked": true, "schema_version": 3, "solution": false, "task": false}}
++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "9510d5dd72e75753d592cc04121c4d9f", "grade": false, "grade_id": "cell-65f24a4fe8c153c2", "locked": true, "schema_version": 3, "solution": false, "task": false}}
 
-**Rappel :** Tout exercice non marqué d'un ♣ est à terminer pour la semaine prochaine.**
+:::{attention} Rappel
+Tout exercice non marqué d'un ♣ est à terminer pour la semaine prochaine.
+:::
 
 +++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "16d262add0837e4334ab87b904b85f8f", "grade": false, "grade_id": "cell-bf0808a9dcb0b572", "locked": true, "schema_version": 3, "solution": false, "task": false}}
 
@@ -101,24 +103,26 @@ Travaillez successivement sur les feuilles suivantes :
 3.  N'oubliez pas de déposer à nouveau votre travail en fin de séance,
     afin que tout soit bien sauvegardé.
 
-+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "3f7ea34bb4fe2ce23ec7d6a49f3c5ae9", "grade": false, "grade_id": "cell-bf0808a9dcb0b576", "locked": true, "schema_version": 3, "solution": false, "task": false}}
++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "e5203c02432c8ea4b5dc0d24105bc30d", "grade": false, "grade_id": "cell-bf0808a9dcb0b576", "locked": true, "schema_version": 3, "solution": false, "task": false}}
 
 ### Exercice 4 : Service JupyterHub@Paris-Saclay
 
-Rappel : l'université a déployé un service `JupyterHub` (expérimental)
+:::{hint} Rappel
+L'université a déployé un service `JupyterHub` (expérimental)
 vous permettant de travailler en dehors des séances avec simplement
 une connexion internet et un navigateur web (firefox, chrome, safari,
 ...).
-
-**Cet exercice n'est à faire que si vous n'avez pas encore utilisé ce
-service ou si vous avez rencontré des difficultés.**
+:::
+:::{attention}
+Cet exercice n'est à faire que si vous n'avez pas encore utilisé ce
+service ou si vous avez rencontré des difficultés. Demandez de l'aide au besoin à votre enseignant.
+:::
 
 1.  Suivez les instructions de la page
 	[Case départ](https://nicolas.thiery.name/Enseignement/Info111/ComputerLab/index.html)
 	du site web
-    pour vous connecter au service JupyterHub; téléchargez-y vos TP 1
-    et 2 et consultez les; demandez de l'aide au besoin à votre
-    enseignant.
+    pour vous connecter au service JupyterHub;
+2.  Téléchargez-y vos TP 1 et 2 et consultez les;
 
 <!--
 2.  Fermez votre serveur avec `Control Panel -> Stop My Server`, puis
@@ -146,11 +150,9 @@ Travaillez successivement sur les deux feuilles suivantes :
     de l'université, soit depuis chez vous en utilisant le service
     JupyterHub.
 
-+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "72cd89adbc36aa95e2dcc50f3cd6e55d", "grade": false, "grade_id": "cell-bf0808a9dcb0b57a", "locked": true, "schema_version": 3, "solution": false, "task": false}}
-
-<div class="alert alert-info">
++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "76412fe4e07321dadd3cc05830f425fc", "grade": false, "grade_id": "cell-bf0808a9dcb0b57a", "locked": true, "schema_version": 3, "solution": false, "task": false}}
 
-**Note :**
+:::{note}
 
 Vous pouvez aborder les exercices ♣ suivants dans l'ordre que vous
 souhaitez.
@@ -160,13 +162,15 @@ feuilles de travail (notebook). Pour cela : utilisez le menu `Fichier
 -> Nouveau -> Notebook` et sélectionnez le noyau `Python 3` ou `C++
 17`. Vous noterez dans le titre de l'onglet que votre feuille
 s'appelle `Untitled.ipynb`; utilisez un clic droit sur le titre de
-l'onglet et choisissez `Renomer` dans le menu pour donner un nom
+l'onglet et choisissez `Renommer` dans le menu pour donner un nom
 informatif à la feuille.
 </div>
 
-<div class="alert alert-info">
+:::
 
-**Indication :**
++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "0e5590c0564fa84b30aec895de9bf212", "grade": false, "grade_id": "cell-bf0808a9dcb0b57c", "locked": true, "schema_version": 3, "solution": false, "task": false}}
+
+:::{tip} Astuce
 
 Pour que le dépôt sur GitLab tienne compte de vos nouveaux fichiers,
 vous devez au préalable les déclarer au système de gestion de version
@@ -179,8 +183,9 @@ vous ouvrirez un terminal et ferez :
 
 Il sera alors inclus dans tous les dépôts ultérieurs.
 
-</div>
+:::
 
++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "d2ac8dc671e598607d2d1c2dff7cc736", "grade": false, "grade_id": "cell-bf0808a9dcb0b57b", "locked": true, "schema_version": 3, "solution": false, "task": false}}
 
 ### Exercice ♣ : Euler forever!
 
@@ -193,7 +198,7 @@ combinaison de réflexion sur feuille et de programmation (voir
 Essayez de résoudre les problèmes 1, 2, 5 et tous ceux qui vous
 plairont!
 
-+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "1265a7c7fccab11b7f710a2d6abf74be", "grade": false, "grade_id": "cell-bf0808a9dcb0b579", "locked": true, "schema_version": 3, "solution": false, "task": false}}
++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "ea53bc2ad33d30f8800bbf95e6f35dd1", "grade": false, "grade_id": "cell-bf0808a9dcb0b579", "locked": true, "schema_version": 3, "solution": false, "task": false}}
 
 ### Exercice ♣ : Python
 
@@ -201,9 +206,8 @@ Dans le cours «Introduction à la programmation», vous (re)découvrirez
 le langage de programmation Python. Pour prendre un peu d'avance,
 refaites le TP en utilisant cette fois `Python`.
 
-Vous pouvez consulter la feuille «Résumé de la syntaxe de base
-Python», fournie dans la <a href="TD.pdf">feuille de TD</a> en
-parallèle à celle pour C++.
+Vous pouvez consulter la feuille [Résumé de la syntaxe de base
+Python](fiche-resume-python.md).
 
 <!--
 Vous trouverez un cours complet sur `Python` à cette adresse: