diff --git a/slides/cours_11.md b/slides/cours_11.md
index 37ce2ebd9bf9fd0961d423865afd27f6d810a6f4..b3775b93beafe41435eda6f91c9973d5f2b50a54 100644
--- a/slides/cours_11.md
+++ b/slides/cours_11.md
@@ -728,20 +728,70 @@ Pas possible.
 
 # Liste doublement chaînée
 
-## Exercice
+## Exercices
 
 * Partir du dessin suivant et par **groupe de 5**
 
 ![Un schéma de liste doublement chaînée d'entiers.](figs/doubly_linked_list.svg)
 
-. . .
+1. Écrire les structures de données pour représenter la liste doublement
+   chaînée dont le type sera `dll` (pour
+   `doubly_linked_list`)
+
+# Liste doublement chaînée
 
-1. Écrire les structures de données pour représenter la liste double chaînée.
-2. Écrire les fonctionnalités suivantes
+2. Écrire les fonctionnalités de création et consultation
 
 ```C 
+// crée la liste doublement chaînée
+dll dll_create();
+// retourne la valeur à la position actuelle dans la liste
+int dll_value(dll list);
+// la liste est-elle vide?
+bool dll_is_empty(dll list);
+// Est-ce que pos est le 1er élément?
+bool dll_is_head(dll list);
+// Est-ce que pos est le dernier élément?
+bool dll_is_tail(dll list);
+// data est-elle dans la liste?
+bool dll_is_present(dll list, int data);
+// affiche la liste
+void dll_print(dll list);
+```
 
+# Liste doublement chaînée
+
+3. Écrire les fonctionnalités de manipulation 
+
+```C 
+// déplace pos au début de la liste
+list dll_move_to_head(dll list);
+// déplace pos à la position suivante dans la liste
+dll dll_next(dll list);
+// déplace pos à la position précédente dans la liste
+dll dll_prev(dll list);
 ```
 
+# Liste doublement chaînée
+
+4. Écrire les fonctionnalités d'insertion
+
+```C
+// insertion de data dans l'élément *après* pos
+dll dll_insert_after(dll list, int data);
+// insertion de data en tête de liste
+dll dll_push(dll list, int data);
+```
+
+5. Écrire les fonctionnalités d'extraction
 
+```C
+// extraction de la valeur se trouvant dans l'élément *pos*
+// l'élément *pos* est libéré
+int dll_extract(dll *list);
+// extrait la donnée en tête de liste
+int dll_pop(dll *list);
+// vide la liste
+void dll_destroy(dll *list)
+```