diff --git a/slides/cours_5.md b/slides/cours_5.md
index 1f7c472da9570a3383d5b2b23cd9fb9f5c05f880..6d78fb64a3335279816b2bad01c3de11de0e4c24 100644
--- a/slides/cours_5.md
+++ b/slides/cours_5.md
@@ -769,7 +769,6 @@ void recurse(int n) {
         printf("\n");
     }
 }
-
 recurse(13); 
 ```
 
@@ -784,113 +783,4 @@ binaire(13): n = 13, n % 2 = 1, n / 2 = 6,
 // affiche: 1 1 0 1
 ```
 
-# Exercice: réusinage et récursivité (1/4)
-
-## Réusiner le code du PGCD avec une fonction récursive
-
-## Étudier l'exécution
-
-```C
-42 = 27 * 1 + 15
-27 = 15 * 1 + 12
-15 = 12 * 1 + 3
-12 = 3  * 4 + 0
-```
-
-# Exercice: réusinage et récursivité (2/4)
-
-## Réusiner le code du PGCD avec une fonction récursive
-
-## Étudier l'exécution
-
-```C
-42 = 27 * 1 + 15   |   PGCD(42, 27) 
-27 = 15 * 1 + 12   |   PGCD(27, 15) 
-15 = 12 * 1 +  3   |   PGCD(15, 12) 
-12 =  3 * 4 +  0   |   PGCD(12,  3) 
-```
-
-# Exercice: réusinage et récursivité (3/4)
-
-## Réusiner le code du PGCD avec une fonction récursive
-
-## Étudier l'exécution
-
-```C
-42 = 27 * 1 + 15   |   PGCD(42, 27) 
-27 = 15 * 1 + 12   |   PGCD(27, 15) 
-15 = 12 * 1 +  3   |   PGCD(15, 12) 
-12 =  3 * 4 +  0   |   PGCD(12,  3) 
-```
-
-## Effectuer l'empilage - dépilage
-
-. . .
-
-```C
-PGCD(12,  3)    |     3
-PGCD(15, 12)    |     3
-PGCD(27, 15)    |     3
-PGCD(42, 27)    |     3
-```
-
-# Exercice: réusinage et récursivité (4/4)
-
-## Écrire le code
-
-. . .
-
-```C
-int pgcd(int n, int m) {
-    if (n % m > 0) {
-        return pgcd(m, n % m);
-    } else {
-        return m;
-    }
-}
-```
-
-# La suite de Fibonacci
-
-## Règle
-
-$$
-\mathrm{Fib}(n) = \mathrm{Fib}(n-1) + \mathrm{Fib}(n-2),\quad
-\mathrm{Fib}(0)=0,\quad \mathrm{Fib}(1)=1.
-$$
-
-## Exercice: écrire la fonction $\mathrm{Fib}$ en récursif et impératif
-
-```C
-int fib(int n) {
-    if (n > 1) {
-        return fib(n - 1) + fib(n - 2);
-    } else {
-        return n;
-    }
-}
-```
-
-```C
-int fib_imp(int n) {
-    int fib0 = 1;
-    int fib1 = 1;
-    int fib  = n == 0 ? 0 : fib1;
-    for (int i = 2; i < n; ++i) {
-        fib  = fib0 + fib1;
-        fib0 = fib1;
-        fib1 = fib;
-    }
-    return fib;
-}
-```
-
-
-# Exercices pour les semaines sans cours
-
-## Quelques algorithmes à réaliser et poster sur matrix
-
-1. Algorithme du PPCM.
-2. La puissance indienne.
-3. La suite de Fibonacci.
 
diff --git a/slides/cours_6.md b/slides/cours_6.md
new file mode 100644
index 0000000000000000000000000000000000000000..4940d6a6232c7c00a03cff1df90e21ea6eede040
--- /dev/null
+++ b/slides/cours_6.md
@@ -0,0 +1,196 @@
+---
+title: "Récursivité"
+date: "2021-11-03"
+patat:
+  eval:
+    tai:
+      command: fish
+      fragment: false
+      replace: true
+    ccc:
+      command: fish
+      fragment: false
+      replace: true
+  images:
+    backend: auto
+...
+
+# La récursivité (1/2)
+
+* Code récursif
+
+    ```C
+    int factorial(int n) {
+        if (n > 1) { // Condition de récursivité
+            return n * factorial(n - 1);
+        } else {     // Condition d'arrêt
+            return 1;
+        }
+    }
+```
+
+. . .
+
+* Code impératif
+
+    ```C
+    int factorial(int n) {
+        int f = 1;
+        for (int i = 1; i < n; ++i) {
+            f *= i;
+        }
+        return f;
+    }
+    ```
+
+# Exercice: réusinage et récursivité (1/4)
+
+## Réusiner le code du PGCD avec une fonction récursive
+
+## Étudier l'exécution
+
+```C
+42 = 27 * 1 + 15
+27 = 15 * 1 + 12
+15 = 12 * 1 + 3
+12 = 3  * 4 + 0
+```
+
+# Exercice: réusinage et récursivité (2/4)
+
+## Réusiner le code du PGCD avec une fonction récursive
+
+## Étudier l'exécution
+
+```C
+42 = 27 * 1 + 15   |   PGCD(42, 27) 
+27 = 15 * 1 + 12   |   PGCD(27, 15) 
+15 = 12 * 1 +  3   |   PGCD(15, 12) 
+12 =  3 * 4 +  0   |   PGCD(12,  3) 
+```
+
+# Exercice: réusinage et récursivité (3/4)
+
+## Réusiner le code du PGCD avec une fonction récursive
+
+## Étudier l'exécution
+
+```C
+42 = 27 * 1 + 15   |   PGCD(42, 27) 
+27 = 15 * 1 + 12   |   PGCD(27, 15) 
+15 = 12 * 1 +  3   |   PGCD(15, 12) 
+12 =  3 * 4 +  0   |   PGCD(12,  3) 
+```
+
+## Effectuer l'empilage - dépilage
+
+. . .
+
+```C
+PGCD(12,  3)    |     3
+PGCD(15, 12)    |     3
+PGCD(27, 15)    |     3
+PGCD(42, 27)    |     3
+```
+
+# Exercice: réusinage et récursivité (4/4)
+
+## Écrire le code
+
+. . .
+
+```C
+int pgcd(int n, int m) {
+    if (n % m > 0) {
+        return pgcd(m, n % m);
+    } else {
+        return m;
+    }
+}
+```
+
+# La suite de Fibonacci (1/2)
+
+## Règle
+
+$$
+\mathrm{Fib}(n) = \mathrm{Fib}(n-1) + \mathrm{Fib}(n-2),\quad
+\mathrm{Fib}(0)=0,\quad \mathrm{Fib}(1)=1.
+$$
+
+## Exercice: écrire la fonction $\mathrm{Fib}$ en récursif et impératif
+
+. . .
+
+## En récursif (6 lignes)
+
+```C
+int fib(int n) {
+    if (n > 1) {
+        return fib(n - 1) + fib(n - 2);
+    } 
+    return n;
+}
+```
+
+# La suite de Fibonacci (2/2)
+
+## Et en impératif (11 lignes)
+
+```C
+int fib_imp(int n) {
+    int fib0 = 1;
+    int fib1 = 1;
+    int fib  = n == 0 ? 0 : fib1;
+    for (int i = 2; i < n; ++i) {
+        fib  = fib0 + fib1;
+        fib0 = fib1;
+        fib1 = fib;
+    }
+    return fib;
+}
+```
+
+# Exponentiation rapide ou indienne (1/N)
+
+## But: Calculer $x^n$
+
+* Algorithme naîf et impératif
+
+    ```C
+    int pow(x, n) {
+        if (0 == n) {
+            return 1;
+        }
+        for (int i = 1; i < n; ++i) {
+            x *= x;
+        }
+        return x;
+    }
+    ```
+
+. . .
+
+* Complexité? Combien de multiplication en fonction de `n`?
+
+# Exponentiation rapide ou indienne (1/N)
+
+* Algorithme naïf et récursif
+
+    ```C
+    int pow(x, n) {
+        if (n != 0) {
+            return x * pow(x, n-1);
+        } else {
+            return 1;
+        }
+    }
+    ```
+
+# Exercices pour les semaines sans cours
+
+## Quelques algorithmes à réaliser et poster sur matrix
+
+1. Algorithme du PPCM.
+2. La puissance indienne.
+