diff --git a/serie2/ex1.md b/serie2/ex1.md
new file mode 100644
index 0000000000000000000000000000000000000000..4f20be2349a53e585b34c3e4d01420d0d56202b9
--- /dev/null
+++ b/serie2/ex1.md
@@ -0,0 +1,57 @@
+---
+lang: fr
+---
+
+# Cohérence
+
+La classe proposée ci-dessous permet de créer un compte bancaire : Une règle de
+cohérence voudrait qu'un compte soit en tout temps positif ou égal à zéro.
+
+Trouvez 3 exemples d'utilisations qui permettent de corrompre l'état d'un compte
+bancaire et proposez une solution pour éviter ce genre de problème.
+
+```java
+public class Account {
+
+    // Le champ amount est publique ce qui signifique que sa valeur peut être
+    // modifiée en "dur" à tout moment => ceci doit être impossible.
+    // Solution: rendre le champ privé
+    public int amount;
+    private String owner;
+
+    // Le constructeur accepte et ne vérifie aucunement si la valeur de l'amount
+    // est négative => ceci doit être impossible
+    // Solution: faire une vérification à l'intérieur du constructeur de la valeur
+    // passé en argument pour l'amount (if amount < 0) throw new RuntimeException
+    public Account (String owner, int amount) {
+        this.amount = amount;
+        this.owner = owner;
+    }
+    public static Account of (String owner, int amount) {
+        if (amount < 0) {
+            throw new RuntimeException("Amount must be positive");
+        }
+        return new Account (owner, amount);
+    }
+    public int amount() {
+        return this.amount;
+    }
+
+    // Cette fonction peut causer un "overflow" de la valeur de l'amount, dans
+    // cas sa valeur deviendra négative
+    // Solution: avant d'incrémenter la valeur de this.amount par value, faire
+    // une vérification si la somme de ces 2 valeurs est plus petit ou égale
+    // à la valeur maximale d'un entier signé sur 32 bits, sinon jeter une Exception
+    public void deposite (int value) {
+        this.amount += value;
+    }
+    public void withdraw(int value) {
+        if (value <= 0) {
+            throw new RuntimeException("Amount must be positive");
+        } else if (this.amount value < 0) {
+            throw new RuntimeException("operation impossible: capital would have become negative");
+        }
+        this.amount = value;
+    }
+}
+```