diff --git a/TD04/INF-TC1-td04.ipynb b/TD04/INF-TC1-td04.ipynb
index 9281dbc40bee16fec225d12af756e723ce6b0aa3..a434bec031041fe53ff33765b5ab6f83765f8c7e 100644
--- a/TD04/INF-TC1-td04.ipynb
+++ b/TD04/INF-TC1-td04.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "54466d2f",
+   "id": "c51c2e29",
    "metadata": {},
    "source": [
     "NAME:"
@@ -62,9 +62,9 @@
    "source": [
     "## Objectif du TD\n",
     "\n",
-    "Ce TD vous fera manipuler des images en Python, et réaliser un algorithme de remplissage basé sur le contenu. Nous verrons en particulier la structure de données matricielle et les méthodes de parcours associées. Enfin ce TD sera une préparation au TD 5 qui fera l'objet d'un rendu à réaliser à partir des concepts et du code abordés. \n",
+    "Ce TD vous fera manipuler des images en Python, et réaliser un algorithme de remplissage basé sur le contenu. Nous verrons en particulier la structure de données matricielle et les méthodes de parcours associées. Enfin ce TD sera une préparation au TD 5 qui fera l'objet d'un rendu à réaliser à partir des concepts abordés dans ce TD. \n",
     "\n",
-    "IMPORTANT : Dans le cadre de ce TD, nous n'autorisons pas l'utilisation des modules [OpenCV](https://docs.opencv.org/4.x/) ou [NumPy](https://numpy.org/) (ou toute fonction de [Pillow](https://pillow.readthedocs.io/en/stable/) sauf celles indiquées).\n"
+    "IMPORTANT : Dans le cadre de ce TD, nous n'autorisons pas l'utilisation des modules [OpenCV](https://docs.opencv.org/4.x/) ou [NumPy](https://numpy.org/) (et concernant le module [Pillow](https://pillow.readthedocs.io/en/stable/) seules celles indiquées sont autorisées).\n"
    ]
   },
   {
@@ -74,11 +74,11 @@
    "source": [
     "## Exercice 1 : Charger une image et dessiner\n",
     "\n",
-    "Une image en informatique est stockée sous forme d'une matrice de pixels qui contiennent les couleurs. Le model classique de couleurs est dit \"RGB\" (Red, Green, Blue) [(doc)](https://fr.wikipedia.org/wiki/Rouge-vert-bleu) où chaque pixel contient une information colorimétrique encodée sous forme de triplets `(r, g, b)` (red, green, blue). Les valeurs de couleur peuvent varier de 0 à 255 pour chaque composante de couleur. Par exemple le rouge est encodé en `(255, 0, 0)`, le gris en `(128, 128, 128)`, etc. Ces couleurs sont organisées en matrice de dimension égale à celle de l'image, les couleurs sont indépendantes les unes des autres.\n",
+    "Une image en informatique est stockée sous forme d'une matrice de pixels qui contiennent les couleurs. Le model classique de couleurs est dit \"RGB\" (Red, Green, Blue) [(doc)](https://fr.wikipedia.org/wiki/Rouge-vert-bleu) où chaque pixel contient une information colorimétrique encodée sous forme de triplets `(r, g, b)` (red, green, blue). Les valeurs de couleur peuvent varier de 0 à 255 pour chaque composante de couleur. Par exemple le rouge est encodé en `(255, 0, 0)`, le gris en `(128, 128, 128)`, etc. Ces couleurs sont organisées en une matrice de dimension égale à celle de l'image, les couleurs sont indépendantes les unes des autres.\n",
     "\n",
-    "Dans ce TD nous allons utiliser un module Python appelé PIL (Pillow [doc](https://pillow.readthedocs.io/en/stable/)). Ce module permettra également de créer des images. Il est possible de l'initialiser comme suit pour charger une image dans une variable `px` dite d'accès de pixel `PixelAccess` [(doc)](https://pillow.readthedocs.io/en/stable/reference/PixelAccess.html). Le module Pillow est normalement installé, si ce n'est pas le cas, vous devez exécuter la commande suivante dans une fenêtre de terminal Anaconda (Menu Démarrer / Anaconda 64bit / Anaconda PowerShell Prompt) : `pip3 install Pillow`.\n",
+    "Dans ce TD nous allons utiliser un module Python appelé PIL (Pillow [doc](https://pillow.readthedocs.io/en/stable/)). Ce module permettra de créer et manipuler des images. Il est possible de l'initialiser avec le code ci-dessous en important le module correspondant. Une fois le module importé, vous pourrez charger une image dans une variable `px` dite d'accès de pixel `PixelAccess` [(doc)](https://pillow.readthedocs.io/en/stable/reference/PixelAccess.html). Le module Pillow est normalement installé, si ce n'est pas le cas, vous devez exécuter la commande suivante dans une fenêtre de terminal Anaconda (Menu Démarrer / Anaconda 64bit / Anaconda PowerShell Prompt) : `pip3 install Pillow`.\n",
     "\n",
-    "Pour tester sur le module est présent sur votre ordinateur, charger une image comme suit :"
+    "Pour tester si le module est présent sur votre ordinateur, charger une image comme suit :"
    ]
   },
   {
@@ -134,7 +134,7 @@
    "id": "482f0b25-342e-403c-975b-65a42283e1cc",
    "metadata": {},
    "source": [
-    "**Question 1.1 -** Définissez une fonction de lecture qui renvoie la couleur d'un pixel à la position $(x, y)$ d'une image donnée. Inspirez vous du code précédent ou de la documentation Pillow [(doc)](https://pillow.readthedocs.io/en/stable/))."
+    "**Question 1.1 -** Ecrire une fonction de lecture d'une image donnée, qui renvoie la couleur d'un pixel à la position $(x, y)$. Inspirez vous du code précédent ou de la documentation Pillow [(doc)](https://pillow.readthedocs.io/en/stable/))."
    ]
   },
   {
@@ -240,7 +240,7 @@
    "id": "69c1f988-3e28-45a7-a6c2-e0a7075c19f6",
    "metadata": {},
    "source": [
-    "**Question 1.2 -** Définissez une fonction d'écriture d'un pixel à une position $(x, y)$ d'une image avec une couleur donnée en argument sous forme de `tuple` $(r, g, b)$."
+    "**Question 1.2 -** Définissez une fonction d'écriture d'un pixel à une position $(x, y)$ dans une image avec une couleur donnée en argument sous forme de `tuple` $(r, g, b)$."
    ]
   },
   {
@@ -294,7 +294,7 @@
    "id": "a46817a7-f6be-4f1b-b79f-0347669844cc",
    "metadata": {},
    "source": [
-    "**Question 1.3 -** Écrire une fonction permettant de peindre un rectangle de l'image avec une même couleur. Coloriez avec la couleur moyenne de cette région (et donc définir une fonction qui calcule cette couleur `moyenne`)."
+    "**Question 1.3 -** Écrire une fonction permettant de remplir une région de l'image avec une même couleur qui sera la moyenne des couleurs. Dans un premier temps définissez cette fonction de calcule de `moyenne` d'une région donnée."
    ]
   },
   {
@@ -305,7 +305,7 @@
     "deletable": false,
     "nbgrader": {
      "cell_type": "code",
-     "checksum": "d0e4f213559e0908072783a660e82b8f",
+     "checksum": "655e66460b01e25816d17c8d3a44d6a2",
      "grade": false,
      "grade_id": "cell-f7def1afc171201e",
      "locked": false,
@@ -317,7 +317,7 @@
    },
    "outputs": [],
    "source": [
-    "def moyenne(corner_x, corner_y, region_w, region_h, px) -> tuple:\n",
+    "def moyenne(corner_x: int, corner_y: int, region_w: int, region_h, px: int) -> tuple:\n",
     "    \"\"\"Compute the average color of a region.\n",
     "    Args:\n",
     "        corner_x (int): top left corner x coordinate\n",
@@ -337,7 +337,7 @@
    "id": "913c742d-04ba-4220-adce-861bf39d999d",
    "metadata": {},
    "source": [
-    "Dans la fonction de dessin de région `setRegion`la variable `color` contient le triplet de couleurs à utiliser."
+    "Ensuite écrire la fonction `setRegion` qui permet de remplir une région donnée avec une couleur (par exemple la couleur moyenne de cette région."
    ]
   },
   {
@@ -348,7 +348,7 @@
     "deletable": false,
     "nbgrader": {
      "cell_type": "code",
-     "checksum": "ca32834808187e8ea21aec1ad48c72ec",
+     "checksum": "e2b46b95bfa437a8b49c5ab8145c5465",
      "grade": false,
      "grade_id": "cell-d04057cb7104c7e7",
      "locked": false,
@@ -360,7 +360,7 @@
    },
    "outputs": [],
    "source": [
-    "def setRegion(x, y, w, h, color, px) -> None:\n",
+    "def setRegion(x: int, y: int, w: int, h: int, color: tuple, px) -> None:\n",
     "    \"\"\"Set the color of a region.\n",
     "    Args:\n",
     "        x (int): top left corner x coordinate\n",
@@ -415,7 +415,7 @@
    "id": "38f3a987-f93a-4119-a1fa-d87eaf55f9d1",
    "metadata": {},
    "source": [
-    "Nous allons maintenant réaliser un remplissage un peu plus intéressant de l'image à partir de son contenu (dans notre cas nous nous baserons sur les couleurs contenues dans l'image)."
+    "Nous allons maintenant réaliser un remplissage un peu plus avancé de l'image à partir de son contenu (dans notre cas nous nous baserons sur les couleurs contenues dans l'image). Avant de commencer, nous avons besoin d'une fonction de calcul de distance entre deux couleurs."
    ]
   },
   {
@@ -438,7 +438,7 @@
     "deletable": false,
     "nbgrader": {
      "cell_type": "code",
-     "checksum": "5126daebaac55c6c0b2b9fb037e951a1",
+     "checksum": "dc0a4e65a0e88262f989ea34fc543cd1",
      "grade": false,
      "grade_id": "cell-ee98beb234607988",
      "locked": false,
@@ -450,6 +450,7 @@
    },
    "outputs": [],
    "source": [
+    "from math import sqrt\n",
     "def distance(c1: tuple, c2: tuple) -> float:\n",
     "    \"\"\"Compute the distance between two colors.\n",
     "    Args:\n",
@@ -479,7 +480,7 @@
    "id": "3e09490e-9955-4639-b149-53c16855e8df",
    "metadata": {},
    "source": [
-    "**Question 1.5 -**  Nous allons désormais travailler sur une méthode de remplissage de région basée sur l'homogénéité des couleurs dans la région. Pour cela nous allons ré-utiliser les méthodes ci-dessus en particulier la distance Euclidenne, en utilisant l'algorithme dit de _flood fill_ [(doc)](https://en.wikipedia.org/wiki/Flood_fill) et qui fonctionne comme suit :\n",
+    "**Question 1.5 -**  Nous allons désormais travailler sur une méthode de remplissage de région basée sur son contenu, en utilisant un critère d'homogénéité des couleurs dans la région. Pour cela nous allons ré-utiliser les méthodes ci-dessus en particulier la distance Euclidenne, en utilisant l'algorithme dit de _flood fill_ [(doc)](https://en.wikipedia.org/wiki/Flood_fill) et qui fonctionne comme suit :\n",
     "\n",
     "1. Charger une image et initialiser deux listes vides : une liste de pixels à visiter et une liste de pixels déjà visités\n",
     "2. Définir un pixel de départ $p_{(x, y)}$ et le rajouter dans la liste de pixels à visiter\n",
@@ -583,7 +584,7 @@
    "source": [
     "## Exercice 2 : Traitement d'image par filtre\n",
     "\n",
-    "Nous allons aborder un deuxième aspect de manipulation d'image : le traitement d'image, afin d'en extraire des informations intéressantes (contours, formes, etc.). En particulier nous allons créer différents _filtres_ dont le but sera de transformer les valeurs des pixels afin de par exemple réduire le bruit que les images peuvent contenir (à savoir les variations locales de valeur).\n",
+    "Nous allons aborder un deuxième aspect de la manipulation d'image : le traitement d'image, afin d'en extraire des informations intéressantes (contours, formes, etc.). En particulier nous allons créer différents _filtres_ dont le but sera de transformer les valeurs des pixels afin de par exemple réduire le bruit que les images peuvent contenir (à savoir les variations locales de valeur).\n",
     "\n",
     "La plupart de ces méthodes étant couteuses en temps, nous travaillerons sur une version en niveau de gris."
    ]
@@ -932,6 +933,14 @@
     "print(f\"nombre de couleurs utilisées {colors}\")\n",
     "display(im2)"
    ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "980dfda1-8ac9-49da-ac66-6b460d91b5f2",
+   "metadata": {},
+   "outputs": [],
+   "source": []
   }
  ],
  "metadata": {
diff --git a/TD05/INF-TC1-td05.ipynb b/TD05/INF-TC1-td05.ipynb
index cec93176da9f6c994fa5779926af98cf6a3a21b0..e6b78cc60a0d8a303926d5a5f880b91621c67cac 100644
--- a/TD05/INF-TC1-td05.ipynb
+++ b/TD05/INF-TC1-td05.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "052d9fc3",
+   "id": "4b2f9189",
    "metadata": {},
    "source": [
     "NAME:"
@@ -121,10 +121,10 @@
     "\n",
     "Le but de ce devoir est de **déterminer automatiquement une palette de couleurs optimale** pour une image donnée. Cette palette devra valider les contraintes suivantes : \n",
     "\n",
-    "1. de taille réduite par rapport au nombre initial de couleurs\n",
-    "2. la plus représentative possible des couleurs initiales. \n",
+    "1. avoir une taille réduite par rapport au nombre initial de couleurs de l'image\n",
+    "2. être la plus représentative possible des couleurs initiales. \n",
     "\n",
-    "En effet une image affichée sur un ordinateur peut être encodée sur 8 bits par composantes rouge, verte et bleue (soit 256 valeurs possibles par composante) ainsi potentiellement utiliser $256 \\times 256 \\times 256 = 16 777 216$ couleurs. En réalité, beaucoup moins sont utilisées et surtout perceptibles par l'humain. Réduire le nombre de couleur ou réaliser une \"_quantification de couleurs_\" est une tâche fréquente et c'est une fonctionnalité classique des outils éditeurs d'images (Photoshop, Gimp, etc.) implémentée aussi dans le module Pillow de Python. A noter que cette réduction s'effectue avec perte de couleurs et doit être réalisée avec les bons paramètres (nombre et choix des couleurs) ce qui est votre objectif. \n",
+    "Comme nous l'avons vu dans le TD 4, les couleurs peuvent être encodée sur 8 bits par composantes rouge, verte et bleue (soit 256 valeurs possibles par composante) ainsi potentiellement utiliser $256 \\times 256 \\times 256 = 16 777 216$ couleurs. En réalité, beaucoup moins sont utilisées et surtout perceptibles par l'humain. Réduire le nombre de couleur ou réaliser une \"_quantification de couleurs_\" est une tâche fréquente et c'est une fonctionnalité classique des outils éditeurs d'images (Photoshop, Gimp, etc.) implémentée aussi dans le module Pillow de Python. A noter que cette réduction s'effectue avec perte de couleurs et doit être réalisée avec les bons paramètres (nombre et choix des couleurs) ce qui est votre objectif. \n",
     "\n",
     "La figure ci-dessous illustre le problème à résoudre : étant donnée une image en entrée, proposer une liste de couleurs (que l'on appellera la palette), afin de re-colorier une image en sortie.\n",
     "\n",