diff --git a/Nvidia_STL.typ b/Nvidia_STL.typ
index fb4c9866073d960bf7a66f26c4fac33488c87d81..def78de248aca3fd0f67a458cb7112c8ace63a05 100644
--- a/Nvidia_STL.typ
+++ b/Nvidia_STL.typ
@@ -34,4 +34,6 @@
 
 #new-section-slide("Le futur avec C++23 (views et mdspans)")
 
+#new-section-slide("Notions à retenir")
+
 #new-section-slide("Questions ?")
\ No newline at end of file
diff --git a/cpp_basics_for_STL.typ b/cpp_basics_for_STL.typ
index 68f6ac370c8238f16ab2beadef1f5f58d90ac0f3..4dff1903760e47802798c37e93395d7e54c8433d 100644
--- a/cpp_basics_for_STL.typ
+++ b/cpp_basics_for_STL.typ
@@ -18,12 +18,72 @@
 
 #new-section-slide("Introduction")
 
-#slide(title: "Contenu")[
-
+#slide(
+  title: "Contenu",
+)[
+  Nous allons voir succinctement quels sont les outils de C++ indispensables pour
+  pouvoir utiliser la parallélisation sur GPU avec les algorithmes STL.
 ]
 
 #new-section-slide("Itérateurs")
 
+#slide(
+  title: "Qu'est-ce qu'un itérateur en C++",
+)[
+  Le concept n'est pas strictement similaire au design pattern itérateur.
+
+  Les itérateurs en C++ sont des objets qui permettent de parcourir une
+  collection.
+
+  La collection peut-être virtuelle ou il peut s'agir d'une zone mémoire contigüe.
+
+  On peut également concevoir l'itérateur comme une généralisation du pointeur en
+  C++.
+]
+
+#slide(title: "Les types d'itérateurs")[
+  Il existe plusieurs types d'itérateurs en C++
+
+  #set align(center + horizon)
+  #rect(inset: 8pt)[
+    Contiguous (C++ 20)
+    #rect(inset: 8pt)[
+      Random access
+      #rect(inset: 8pt)[
+        Bidirectional
+        #rect(inset: 8pt, width: 25%, height: 50%)[
+          Forward
+          #rect(inset: 8pt)[
+            Input
+          ]
+          #rect(inset: 8pt)[
+            Output
+          ]
+        ]
+      ]
+    ]
+  ]
+]
+
+#slide(
+  title: "Comment utiliser un itérateur",
+)[
+Toutes les collections de la STL proposent une méthode `begin` et `end`. Elles
+permettent d'obtenir un itérateur sur le début et la fin de la collection.
+
+L'itérateur le plus basique peut être incrémenté `it++` ou `++it`.
+
+L'itérateur bidirectionnel peut aussi être décrémenté `it--` ou `--it`
+
+Selon le type d'itérateur, il est également possible de le déréférencer `*it`.
+
+S'il est possible d'y accèder aléatoirement, on peut utiliser l'opérateur
+`it[i]` pour accèder au ième élément.
+
+Je vous recommande de lire cette page pour plus d'exemples :
+#link("https://cplusplus.com/reference/iterator")
+]
+
 #new-section-slide("Vecteurs")
 
 #new-section-slide("Tableaux et Spans")
@@ -32,4 +92,6 @@
 
 #new-section-slide("Algorithmes STL")
 
+#new-section-slide("Notions à retenir")
+
 #new-section-slide("Questions ?")
\ No newline at end of file
diff --git a/intro.typ b/intro.typ
index cd6171748b2c4ddf71bf4207a8ab58844e023bb0..9c7174388a4b7750f15edf03a7a472a9972c7b2d 100644
--- a/intro.typ
+++ b/intro.typ
@@ -45,7 +45,7 @@
     + Les itérateurs C++
     + Les vecteurs, les tableaux et les spans
     + Les captures
-    + Les algorithmes STL #pause
+    + Les algorithmes de la Standard Template Library (STL) #pause
     + Présentation du kit HPC Nvidia
       + Le compilateur nvc++
       + Comment paralléliser son code avec nvc++