diff --git a/Algorithmique/Cours/03-tableaux-statiques-et-chaines.pdf b/Algorithmique/Cours/03-tableaux-statiques-et-chaines.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..9b7b5b2113bae1feeb6d67d6f6f62dcd34e583be
Binary files /dev/null and b/Algorithmique/Cours/03-tableaux-statiques-et-chaines.pdf differ
diff --git a/Programmation/Exercices/serie_04.md b/Programmation/Exercices/serie_04.md
new file mode 100644
index 0000000000000000000000000000000000000000..40d2072c5a14993e7c91387e7dd9ee71c24b3f01
--- /dev/null
+++ b/Programmation/Exercices/serie_04.md
@@ -0,0 +1,60 @@
+---
+title: "Programmation séquentielle"
+subtitle: "Série 4 - Les tableaux statiques unidimensionnels"
+date: 04.10.2022
+---
+
+# Buts
+
+- Utilisation de tableaux statiques unidimensionnels.
+- Utilisation de fonctions.
+
+# Énoncé
+
+Une façon de déclarer un tableau d'entiers `tab`{.C} est la suivante:
+
+```C
+int size = 10;
+int tab[size];
+```
+
+Écrire un programme qui réalise les tâches suivantes.
+
+1. Demander à l'utilisateur d'entrer la valeur de `size`{.C} pour la création du tableau.
+2. Remplir le tableau `tab`{.C} de valeurs aléatoires plus petites qu'un entier
+   `val_max`{.C} qui est beaucoup plus petit que `size`{.C} (disons 10 à 100
+   fois plus petit). Par exemple, remplir `tab`{.C} qui fait une taille de
+   `100` de valeurs de `0`{.C} à `10`{.C}.
+3. Demande à l'utilisateur si il veut afficher le contenu du tableau. 
+4. Trouver le plus petit élément de `tab`{.C}.
+5. Rechercher dans `tab`{.C} un  élément entré au clavier par l'utilisateur et afficher l'indice de la première occurrence.
+6. Calculer la moyenne des éléments de `tab`{.C}.
+7. Calculer la variance des éléments de `tab`{.C}. La variance `var`{.C} des éléments de `tab`{.C} est définie par la formule:
+$$
+\mathrm{var}=\frac{1}{\mathrm{size}}\sum_{i=0}^{\mathrm{size}-1}(\mathrm{tab}[i]-\mathrm{tab}_m)^2,
+$$
+où $\mathrm{tab}_m$ désigne la moyenne des éléments de `tab`{.C} et $\mathrm{tab}[i]$ est le $i$-ème élément de `tab`{.C}.
+8. Trier les  éléments de `tab`{.C} par ordre croissant selon l'algorithme vu en cours (tri par sélection).
+9. Trouver l'élément médian du tableau `tab`{.C}. Après avoir trié le tableau `tab`{.C}, l'élément médian est défini comme étant la valeur:
+    - `tab[(size-1)/2]`{.C} si `size`{.C} est impair
+    - `(tab[(size-1)/2] + tab[size/2])/2.0`{.C} si `size`{.C} est pair.
+
+
+  Exemple: 
+    
++:--+:--+:--+:--+:--+:--+:--+:--+:--+:--+
+| 1 | 5 | 8 | 2 | 6 | 5 | 3 | 1 | 0 | 3 |
++:--+:--+:--+:--+:--+:--+:--+:--+:--+:--+
+
+: L'élément médian de ce tableau vaut: 3.
+
+10.  Écrire une fonction pour chacun des points précédents.
+11.  Vérifier que le générateur de nombres aléatoires
+`rand()`{.C} est équitable.  Pour cela, utiliser un 
+tableau d'entiers `histo`{.C} pour comptabiliser le 
+nombre de fois qu'une valeur est tirée. À noter que la  
+valeur tirée correspond à l'indice du tableau et que 
+c'est son contenu qui est incrémenté de 1. Utiliser les 
+notions précédentes (moyenne, écart-type, minimum/maximum)
+pour dire si le générateur est équitable.
+12. Visualiser le contenu du tableau `histo` verticalement et horizontalement dans le terminal.
diff --git a/Programmation/Exercices/serie_04.pdf b/Programmation/Exercices/serie_04.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..c1a8b4a62b5e4723956e125e2c8f6b55713fcc8c
Binary files /dev/null and b/Programmation/Exercices/serie_04.pdf differ