diff --git a/Makefile b/Makefile
index 880cbce712d5512d23b2d3fa6a90c96c08496507..8c5f83f91a479392aaae977c3966bee27bd3abb2 100644
--- a/Makefile
+++ b/Makefile
@@ -29,7 +29,7 @@ REVEALOPRIONS += --self-contained
 SVG=$(wildcard figs/*.svg)
 PNG=$(SVG:%.svg=%.png)
 
-all: $(PNG) intro.html variables.html
+all: $(PNG) intro.html variables.html types.html
 
 figs/%.png: figs/%.svg
 	convert \-flatten $< $@
@@ -40,5 +40,8 @@ intro.html: intro.md Makefile
 variables.html: variables.md Makefile
 	pandoc -s $(REVEALOPRIONS) -o $@ $<
 
+types.html: types.md Makefile
+	pandoc -s $(REVEALOPRIONS) -o $@ $<
+
 clean:
 	rm -rf intro.html variables.html
diff --git a/types.md b/types.md
new file mode 100644
index 0000000000000000000000000000000000000000..ad625b0967254246f9ee3841193c0e017903ea83
--- /dev/null
+++ b/types.md
@@ -0,0 +1,69 @@
+---
+title: Cours de programmation séquentielle
+subtitle: Types
+author: Orestis Malaspinas
+<!-- date: 25 avril 2018 -->
+sansfont: Sans Serif
+header-includes:
+	<link rel="stylesheet" href="reveal.js/lib/css/zenburn.css" >
+  	<link rel="stylesheet" href="reveal.js/css/theme/simple.css" id="theme">
+  	<link rel="stylesheet" href="css/console.css" id="theme">
+  	<script src="jquery/dist/jquery.min.js"></script>
+    <!-- <script src="reveal.js/lib/js/classList.js"></script> -->
+    <!-- <script src="reveal.js/plugin/zoom-js/zoom.js"></script> -->
+    <!-- <script src="reveal.js/plugin/highlight/highlight.js"></script> -->
+    <!-- <script src="js/remote-diagrams.js"></script> -->
+    <!-- <script src="reveal.js/plugin/notes/notes.js"></script> -->
+include-after:
+	<script src="js/playRust.js"></script>
+	<script src="js/remote-code.js"></script>
+	<script src="js/remote-diagrams.js"></script>
+	<script src="js/em-artiste.js"></script>
+width:
+	1500
+height:
+	1500
+<!-- slide-numbers: true -->
+---
+
+# Les types
+
+## Les types en rust
+
+- Langage **statiquement typé**: tous les types sont connus **à la compilation**.
+- Les types sont **inférés** quand cela est possible.
+- Il est parfois nécessaire d'annoter le type explicitement.
+<pre><code data-trim="hljs rust" class="lang-rust">
+fn main() {
+    let x = 5; // entier 32 bits dont le type est inféré
+
+    let y:i32 = 5; // entier 32 bits dont le type est annoté
+    println!("Ces deux lignes sont équivalentes x est: {} et y est: {}", x, y); // affichage
+}
+</code></pre>
+- Il exits plusieurs types de base:
+    - Les entiers.
+    - Les nombres à virgule flottante.
+    - Les booléens.
+    - Les charactères.
+
+
+## Les entiers
+
+- Il existe 4 tailles d'entiers (8, 16, 32, et 46 bits) qui viennent en signé ou non-signé.
+
++---------------+---------------+--------------------+
+|Longueur       | Signé         | Non-signé          |
++===============+===============+====================+
+| 8 bits        | `i8`{.rust}   | `u8`{.rust}        |
++---------------+---------------+--------------------+
+| 16 bits       | `i16`{.rust}  | `u16`{.rust}       |
++---------------+---------------+--------------------+
+| 32 bits       | `i32`{.rust}  | `u32`{.rust}       |
++---------------+---------------+--------------------+
+| 64 bits       | `i64`{.rust}  | `u64`{.rust}       |
++---------------+---------------+--------------------+
+
+- Également en taille dépendant de l'architecture
+    - `isize`{.rust} entier signé 32 ou 64 bits.
+    - `usize`{.rust} entier signé 32 ou 64 bits.
\ No newline at end of file