diff --git a/lessons/contenu_cours_4.md b/lessons/contenu_cours_4.md
index ec0a2cadc69a0f85e9ba305e4865421a7dfe0ca3..b050ccc1f51a5c0c692b52b404104c28e84027ea 100644
--- a/lessons/contenu_cours_4.md
+++ b/lessons/contenu_cours_4.md
@@ -1,9 +1,42 @@
-# Algorithmes et structures de données 2019-20
+# Algorithmes et structures de données 2020-21
 
-Contenu du cours 4 du 9.10.2019
+Contenu du cours 4 du 7.10.2020
 
 *****
 
+## Crible d’Eratosthène 
+
+-   Retour sur les tableaux à 1 dimension
+
+## Type article (enregistrement, record) : `struct`
+
+-   Un article permet de regrouper des types de nature différente (appelés champs) comme composant d'un type composé.
+
+-   Exemples de `struct`:
+```C
+      struct fraction {
+          int num;
+          int den;
+      };
+
+      enum mois {
+          jan=1,feb,mar,apr,mai,jun,jul,aug,sep,oct,nov,dec
+      };
+      struct date {
+          int day;
+          mois month;
+          int year;
+      }
+
+      enum sexe {FEM, MASC, AUTRE};
+      struct employe {
+          char nom[80];
+          sexe genre;
+          int age;
+          float salaire;
+      }
+```
+
 ##  Fonction cube d'un nombre
 
 ```C
@@ -91,52 +124,3 @@ Contenu du cours 4 du 9.10.2019
         end for
     end tri_selection
 ```
-
-##  Le tri par insertion
-
--   Algorithme appliqué au tableau:  **4 7 6 1 2**
-    -   1ère étape : 4 **7** 6 1 2
-        -   trouver la position `pos` de 7 dans le sous-tableau trié à 1 élément : **4**
-        -   décaler de 1 les éléments de la position `pos=1` à la fin du sous-tableau
-        -   insérer l'élément 7 en position `pos=1`
-
-    -   2ème étape : 4 7 **6** 1 2
-        -   trouver la position `pos` de 6 dans le sous-tableau trié à 2 éléments : **4 7**
-        -   décaler de 1 les éléments de la position `pos=1` à la fin du sous-tableau
-        -   insérer l'élément 6 en position `pos=1`
-
-    -   3ème étape : 4 6 7 **1** 2
-        -   trouver la position `pos` de 1 dans le sous-tableau trié à 3 éléments : **4 6 7**
-        -   décaler de 1 les éléments de la position `pos=0` à la fin du sous-tableau
-        -   insérer l'élément 1 en position `pos=0`
-
-    -   4ème étape : 1 4 6 7 **2**
-        -   trouver la position `pos` de 2 dans le sous-tableau trié à 4 éléments : **1 4 6 7**
-        -   décaler de 1 les éléments de la position `pos=1` à la fin du sous-tableau
-        -   insérer l'élément 2 en position `pos=1`
-
-    -   On obtient le tableau trié: **1 2 4 6 7**
-
-## Tri à bulles
-
--   Algorithme appliqué au tableau **4 7 6 2 1**
-    -   Principe : on parcours le tableau depuis et on permute les éléments successifs s'ils sont dans le désordre   
- **4   7**   6   2   1                 
- 4   **7   6**   2   1                 
- 4   6   **7   2**   1                 
- 4   6   2   **7   1**                 
- 4   6   2   1   7                 
-A la fin de cette traversée, le plus grand élément se trouve en dernière position.
-
-    -   On applique à nouveau ce principe, mais sur le tableau allant de la 1ère à l'avant-dernière case du tableau   
- **4   6**   2   1   7                  
- 4   **6   2**   1   7                  
- 4   2   **6   1**   7                  
- 4   2   1   6   7
-
-    -   Et ainsi de suite ...
-
-    -   En 4 étapes nécessitant 4, puis 3, puis 2, et finalement 1, opérations de comparaison-échange, on obtient un tableau trié.   
-    Donc en 4+3+2+1 = 5**·**4/2 = 10 opérations, on a un tableau trié.
-
-    -   Plus généralement, un tableau à N éléments se trie en N(N-1)/2 opérations avec le tri à bulles.
\ No newline at end of file