diff --git a/donnees_structurees/tp_decouverte_csv/liste_descripteurs.png b/donnees_structurees/tp_decouverte_csv/liste_descripteurs.png
new file mode 100644
index 0000000..cf61d89
Binary files /dev/null and b/donnees_structurees/tp_decouverte_csv/liste_descripteurs.png differ
diff --git a/donnees_structurees/tp_decouverte_csv/programme.py b/donnees_structurees/tp_decouverte_csv/programme.py
index d489dae..4dac1fd 100644
--- a/donnees_structurees/tp_decouverte_csv/programme.py
+++ b/donnees_structurees/tp_decouverte_csv/programme.py
@@ -3,7 +3,8 @@ import csv
 def afficher_descripteurs ():
     """ Cette fonction affiche la première ligne du fichier csv """
     with open('centres-vaccination.csv', 'r', encoding='utf8') as f:
-        print(f.readline())
+        for champs in f.readline().strip().split(';'):
+            print(champs)
 
 def compter_les_colonnes ():
     """ Cette fonction compte le nombre d’entrées renseignées pour chaque colonne """
@@ -13,15 +14,31 @@ def compter_les_colonnes ():
         for ligne in f.readlines():
             for (index, element) in zip(title,ligne.strip().split(';')):
                 if index not in compte:
-                    compte[index] = 0
+                    compte[index] = []
                 if element.strip() != '':
-                    compte[index] += 1
+                    compte[index].append(element)
     return compte
 
 def afficher_compte_colonnes ():
+    """ Cette fonction affiche le nombre d’élément d’une colonne """
     colonnes = compter_les_colonnes()
     for index in colonnes:
-        print(index, ' : ', colonnes[index])
+        print(index, ' : ', len(colonnes[index]))
+
+def afficher_contenu_colonne (colonne):
+    """ Cette fonction affiche les différentes valeurs d’une colonne """
+    colonnes = compter_les_colonnes()
+    resultat = {}
+    for element in colonnes[colonne]:
+        if element not in resultat:
+            resultat[element] = 0
+        resultat[element] += 1
+    for element in resultat:
+        print(element, ' : ', resultat[element])
+
+
+# ------------------------------------------------------------------------------------------------------
+#                       Écrivez votre code en dessous de cette ligne
+# ------------------------------------------------------------------------------------------------------
 
 
-afficher_compte_colonnes()
diff --git a/donnees_structurees/tp_decouverte_csv/sujet.pdf b/donnees_structurees/tp_decouverte_csv/sujet.pdf
new file mode 100644
index 0000000..705e340
Binary files /dev/null and b/donnees_structurees/tp_decouverte_csv/sujet.pdf differ
diff --git a/donnees_structurees/tp_decouverte_csv/sujet.tex b/donnees_structurees/tp_decouverte_csv/sujet.tex
new file mode 100644
index 0000000..e431d73
--- /dev/null
+++ b/donnees_structurees/tp_decouverte_csv/sujet.tex
@@ -0,0 +1,155 @@
+\documentclass[11pt,a4paper]{../../template_cours}
+\usepackage{listings}
+
+\usepackage{minted}
+
+\title{Introduction aux données structurées — Le format CSV}
+\author{Adrian Amaglio}
+\def\thesequence{Données structurées}
+
+\begin{document}
+Durée : 1h
+
+% Retours: 
+% Les élèves galèrent, ça ne les passionne pas, ils ont du mal à copier le CSV en ligne (il vaudrait mieux laisser tomber pandas et leur fournir le python complèt à télécharger).
+% Il n’y a rien à « faire » dans le TP, juste des copier-coller sans intérêt et de la réflexion. Ça doit être rageant de bloquer sur des copier-coller
+% UPDATE :
+
+
+% ---
+\section{Préparation}
+Faire chaque activité dans un nouveau dossier est une bonne pratique dans toutes les matières et en dehors du lycée.
+Prenez l’habitude de bien organiser vos dossiers pour retrouver vos documents plus tard.
+\begin{exercice}
+    Créez un dossier nomé « tp-csv » dans votre zone personnelle.
+    \\
+    Téléchargez-y le fichier à l’adresse : \url{https://git.jean-cloud.net/adrian/cours-snt/raw/branch/master/donnees_structurees/tp_decouverte_csv/programme.py}.
+    \\
+    Ouvrez ce programme avec pyzo ou edupython.
+\end{exercice}
+
+%\begin{exercice}
+%    Dans ce dossier, téléchargez le fichier « noms.csv » disponible à cette adresse :
+%    \url{https://git.jean-cloud.net/adrian/cours-snt/raw/branch/master/donnees_structurees/tp_decouverte_csv/noms.csv}
+%\end{exercice}
+
+
+% ---
+%\section{Découverte du format CSV}
+%Un fichier CSV contient des données structurées.
+%\begin{exercice}
+%    Ouvrez le fichier « noms.csv » avec un éditeur de texte (notepad++ ou bloc-note) puis ouvrez le avec le tableur libreoffice calc.\\
+%    Comparez le rendu dans les deux logiciels.
+%    Comment est structurée l’information ?
+%\end{exercice}
+
+
+% ---
+%\section{Avec Python}
+%Il est également possible d’écrire un programme Python qui lit un fichier CSV.
+%\begin{exercice}
+%    Ouvrez l’éditeur de python à l’adresse \url{https://www.online-python.com}.
+%    Créez un nouveau fichier « noms.csv » grâce au bouton « + » :
+%    \includegraphics[width=\textwidth]{screen_ide.png}
+%    Dans ce fichier CSV, insérez le contenu du fichier CSV précédent.
+%\end{exercice}
+%
+%\begin{exercice}
+%    Sur votre IDE, dans le fichier python, supprimer le code et remplacez-le par le suivant :
+%    \begin{minted}{Python}
+%import pandas
+%noms=pandas.read_csv("noms.csv")
+%print(noms)
+%    \end{minted}
+%    Vous éxécuterez ensuite votre programme à l’aide du bouton « run ».
+%    Vous devriez avoir un affichage similaire à celui-ci :\\
+%    \includegraphics[]{affichage_noms.png}
+%\end{exercice}
+%
+%\begin{exercice}
+%    Ajoutez à votre programme la ligne suivante :
+%    \begin{minted}{Python}
+%print(noms.loc[1,'prenom'])
+%    \end{minted}
+%    Que fait cette instruction ?
+%\end{exercice}
+%
+%\begin{exercice}
+%    Modifiez votre programme pour qu’il affiche la date de naissance de Janelle Monáe du fichier « noms.csv ».
+%\end{exercice}
+
+
+% ---
+Depuis quelques années, l’état et les collectivités locales sont tenues de mettre des données relatives à leurs activités en libre accès.
+Cette données sont dites « ouvertes » car libre d’accès pour tous et toutes.
+%\begin{exercice}
+%    Allez à l’adresse suivante pour ouvrir un environnement python :\\\url{https://www.online-python.com}.
+%    \\Créez un nouveau fichier nommé exactement « centres-vaccination.csv » grâce au bouton « + » :
+%    \includegraphics[width=\textwidth]{screen_ide.png}
+%\end{exercice}
+
+\begin{exercice}
+    Rendez-vous à cette adresse :
+    \url{https://www.data.gouv.fr/fr/datasets/lieux-de-vaccination-contre-la-covid-19/}
+    \\Téléchargez le fichier CSV « centres-vaccination.csv » et copiez son contenu dans le fichier CSV « centres-vaccination.csv ».
+    \\Téléchargez la documentation de ce fichier, disponible sur la même page web, et essayez de comprendre la signification des trois premiers descripteurs.
+\end{exercice}
+
+Ce fichier CSV n’utilise pas la virgule comme séparateur, car c’est un caractère trop commun en français, il utilise le point virgule.
+Avoir un séparateur dans un champs empêcherait un programme de le lire correctement, il aurait l’impression qu’il y a plus de valeurs que prévu.
+\begin{exercice}
+    En bas du fichier python que vous avez téléchargé, appellez la fonction « afficher\_descripteurs » comme suit :
+    \begin{minted}{python}
+afficher_descripteurs()
+    \end{minted}
+    Vérifiez que vous avez bien une liste de champs qui s’affiche comme sur l’exemple suivant :
+    \includegraphics{liste_descripteurs.png}
+\end{exercice}
+
+%\begin{exercice}
+%    Pour lire ce nouveau fichier, copiez ces lignes de Python dans le fichier « main.py » de l’environnement, en ayant supprimé son contenu avant.
+%    Puis exécutez le en cliquant sur « Run ».
+%    \begin{minted}{Python}
+%import pandas
+%centres=pandas.read_csv("centres-vaccination.csv", sep=";")
+%print(centres)
+%    \end{minted}
+%\end{exercice}
+%Vous pouvez constater que l’affichage est tronqué pour éviter d’envahir l’écran.
+
+% ---
+\section{Identifier un problème social}
+
+\begin{exercice}
+    La ligne suivante permet de compter le nombre de valeurs renseignées pour chaque champs :
+    \begin{minted}{Python}
+afficher_compte_colonnes()
+    \end{minted}
+    Quels sont les trois champs les moins renseignés ? Cela vous semble t’il normal ?
+\end{exercice}
+
+
+% ---
+\section{Identifier les incohérences techniques}
+
+% ---
+\begin{exercice}
+    Remplacez votre affichage par le code suivant :
+    \begin{minted}{Python}
+afficher_contenu_colonne('lieu_accessibilite')
+    \end{minted}
+    Il permet d’afficher les différentes valeurs reseignées dans le champs « lieu\_accessibilite » et le nombre de fois qu’elles apparaissent dans le fichier CSV.
+    \\Selon vous, pourquoi les valeurs sont aussi hétérogènes ? Quelles valeurs devrait-on pouvoir trouver dans ce champs selon la documentation disponible avec le fichier CSV ?
+\end{exercice}
+
+\begin{exercice}
+    L’URL suivante est extraite du fichier CSV et permet de réserver dans un centre de vaccination :
+    \\\url{https://partners.doctolib.fr/centre-depistage-covid/chateauroux/centre-de-vaccination-covid-ssr-chateauroux-36?speciality_id=5494&enable_cookies_consent=1}
+    \\Les paramètres qui sont passés à la page via cette url sont les suivants :
+    \\speciality\_id=5494
+    \\enable\_cookies\_consent=1
+    \\Que peut signifier le dernier paramètre ? Quelles implications peut-il avoir ?
+\end{exercice}
+
+
+\end{document}