diff --git a/sessions/python-02.md b/sessions/python-02.md
deleted file mode 100644
index 2fd25cb..0000000
--- a/sessions/python-02.md
+++ /dev/null
@@ -1,202 +0,0 @@
-# Introduction à la programmation avec Python (chapitre 2)
-
-
-
-
-E2L
-Dimitri Merejkowsky
-
-
----
-
-# Session 2
-
----
-
-Note:
-
-* Les sources sont [sur GitHub](https://github.com/E2L/cours-python/tree/master/sources).
-* Mais il vaut mieux **recopier** le code vous-mêmes.
-
-----
-
-# Plan
-
-* Retour sur le chapitre 1
-* Structures de données
-* Fonctions
-
----
-
-# Retour sur input()
-
- !python
- # À adapter
- secret = random.randint()
-
- print("Devine le nombre auquel je pense")
- while True:
- reponse = input("Ta réponse: ")
- response = int(response)
- ...
-
----
-
-
-# Retour sur print()
-
-
- !python
- a = 1
- b = 2
- print("a=", 1, "b=2")
-
-* `print()` insère des espaces
-* et va à la ligne
-
----
-
-# Retour sur print()
-
- !python
- a = 1
- b = 2
- print("a=", 1, "b=2", sep="", end="$")
-
----
-
-# Retour sur les strings
-
----
-
-# Répéter une string
-
- !pycon
- >>> "argh " * 3
- argh argh argh
----
-
-# Faire une longue string sur plusieurs lignes
-
-
- !python
- poeme = """\
- Ceci est un poème
-
- Qui contient "des quotes"
- Et parle d'autre choses ...
-
- """
-
-Marche aussi avec des "triples-simple-quotes", mais c'est moins lisible :P
-
----
-
-# Concaténer des strings
-
- !python
- message = (
- "Première ligne\n"
- "Deuxième ligne\n"
- )
-
-Les parenthèse permettent d'aller à la ligne dans le code :)
-
----
-
-# Slicer des strings
-
- !pycon
- >>> message = "Bonjour, monde !"
- >>> message[0] # ça commence à zéro
- "B"
- >>> message[15]
- "!"
- >>>> message[-1] # compter à l'envers
- "!"
-
----
-
-# Slicer des strings (2)
-
- !pycon
- >>> message = "Bonjour, monde !"
- >>> message[1:4] # début, fin
- 'onj'
- >>> message[:7] # début implicite
- 'Bonjour'
- >>> message[9:-2] # fin négative
- 'monde'
-
----
-
-# Listes
-
----
-
-# Créer une liste
-
- !pycon
- >>> my_list = [] # liste vide
- >>> primes = [2, 3, 5, 7, 11] # liste d'entiers
-
----
-
-# Listes hétérogènes
-
-On peut mettre des types différents dans une même liste:
-
- !pycon
- >>> pommes_et_carottes = [True, 2, "three"]
-
-Et même des listes dans des listes:
-
- !pycon
- >>> liste_de_liste = [[1, 2, 3], ["one", "two", "three"]]
-
-----
-
-# Slicer des listes
-
-Même principe que pour les strings!
-
- !pycon
- >>> liste = [1, 2, 3]
- >>> liste[0:2]
- [1, 2]
-
----
-
-# Modifier une liste
-
- !pycon
- >>> liste = [1, 2, 3]
- >>> liste[1] = 4
- >>> liste
- [1, 4, 3]
-
-
-*Attention*: ça ne marche pas avec les strings:
-
- !pycon
- >>> message = "Bonjour, monde !"
- >>> message[-1] = "?"
- TypeError: 'str' object does not support item assignment
-
----
-
-# Boucles for
-
-Itérer sur les éléments d'une liste:
-
-
- !python
- names = ["Alice", "Bob", "Charlie"]
- for name in names:
- print("Bonjour", name)
-
- Bonjour Alice
- Bonjour Bob
- Bonjour Charlie
-
----
diff --git a/sessions/python-02.tex b/sessions/python-02.tex
new file mode 100644
index 0000000..64e0e3d
--- /dev/null
+++ b/sessions/python-02.tex
@@ -0,0 +1,249 @@
+\documentclass{beamer}
+
+\usepackage[utf8]{inputenc}
+\usepackage{hyperref}
+\usepackage{minted}
+
+\usetheme{Madrid}
+
+\hypersetup{colorlinks=true}
+
+\title{Introduction à la programmation avec Python (chapitre 2)}
+\author{Dimitri Merejkowsky}
+\institute{E2L}
+
+\begin{document}
+
+\frame{\titlepage}
+
+\begin{frame}
+
+\frametitle{Session 2}
+
+\end{frame}
+
+\begin{frame}
+
+Note: \\~\\
+
+
+Les sources sont
+\href{https://github.com/E2L/cours-python/tree/master/sources}{sur GitHub}. \\~\\
+
+
+Mais il vaut mieux recopier le code vous-mêmes.
+
+\end{frame}
+
+
+\begin{frame}
+
+\frametitle{Plan}
+
+\begin{itemize}
+ \item Retour sur le chapitre 1
+ \item Structures de données
+ \item Fonctions
+\end{itemize}
+
+\end{frame}
+
+\begin{frame}[fragile]
+ \frametitle{Retour sur input()}
+
+
+
+\begin{minted}{python}
+# À adapter
+import random
+secret = random.randint()
+
+print("Devine le nombre auquel je pense")
+while True:
+ reponse = input("Ta réponse: ")
+ response = int(response)
+ ...
+\end{minted}
+
+\end{frame}
+
+
+
+\begin{frame}[fragile]
+ \frametitle{Retour sur print}
+
+\begin{minted}{python}
+>>> a = 1
+>>> b = 2
+>>> print("a is", a, "b is", b)
+a is 1, b is 2
+\end{minted}
+
+\begin{itemize}
+ \item On peut fournir plusieurs valeurs, séparées par des virgules
+ \item \textit{print()} insère des espaces
+ \item et va à la ligne
+\end{itemize}
+
+\end{frame}
+
+\begin{frame}[fragile]
+ \frametitle{Retour sur print (2)}
+
+\begin{minted}{python}
+a = 1
+b = 2
+print("a=", 1, "b=2", sep="", end="")
+\end{minted}
+
+\end{frame}
+
+\begin{frame}[fragile]
+ \frametitle{Retour sur les strings}
+\end{frame}
+
+\begin{frame}[fragile]
+ \frametitle{Répéter une string}
+
+\begin{minted}{python}
+>>> "argh " * 3
+argh argh argh
+\end{minted}
+
+\end{frame}
+
+
+\begin{frame}[fragile]
+ \frametitle{Faire une longue string sur plusieurs lignes}
+
+\begin{minted}{python}
+poeme = """
+Ceci est un poème
+
+Qui contient "des quotes"
+Et parle d'autre choses ...
+"""
+\end{minted}
+
+\begin{block}{Note}
+Marche aussi avec des "triples-simple-quotes", mais c'est moins lisible :P
+\end{block}
+\end{frame}
+
+
+
+
+
+
+%---
+
+%# Concaténer des strings
+
+ %!python
+ %message = (
+ %"Première ligne\n"
+ %"Deuxième ligne\n"
+ %)
+
+%Les parenthèse permettent d'aller à la ligne dans le code :)
+
+%---
+
+%# Slicer des strings
+
+ %!pycon
+ %>>> message = "Bonjour, monde !"
+ %>>> message[0] # ça commence à zéro
+ %"B"
+ %>>> message[15]
+ %"!"
+ %>>>> message[-1] # compter à l'envers
+ %"!"
+
+%---
+
+%# Slicer des strings (2)
+
+ %!pycon
+ %>>> message = "Bonjour, monde !"
+ %>>> message[1:4] # début, fin
+ %'onj'
+ %>>> message[:7] # début implicite
+ %'Bonjour'
+ %>>> message[9:-2] # fin négative
+ %'monde'
+
+%---
+
+%# Listes
+
+%---
+
+%# Créer une liste
+
+ %!pycon
+ %>>> my_list = [] # liste vide
+ %>>> primes = [2, 3, 5, 7, 11] # liste d'entiers
+
+%---
+
+%# Listes hétérogènes
+
+%On peut mettre des types différents dans une même liste:
+
+ %!pycon
+ %>>> pommes_et_carottes = [True, 2, "three"]
+
+%Et même des listes dans des listes:
+
+ %!pycon
+ %>>> liste_de_liste = [[1, 2, 3], ["one", "two", "three"]]
+
+%----
+
+%# Slicer des listes
+
+%Même principe que pour les strings!
+
+ %!pycon
+ %>>> liste = [1, 2, 3]
+ %>>> liste[0:2]
+ %[1, 2]
+
+%---
+
+%# Modifier une liste
+
+ %!pycon
+ %>>> liste = [1, 2, 3]
+ %>>> liste[1] = 4
+ %>>> liste
+ %[1, 4, 3]
+
+
+%*Attention*: ça ne marche pas avec les strings:
+
+ %!pycon
+ %>>> message = "Bonjour, monde !"
+ %>>> message[-1] = "?"
+ %TypeError: 'str' object does not support item assignment
+
+%---
+
+%# Boucles for
+
+%Itérer sur les éléments d'une liste:
+
+
+ %!python
+ %names = ["Alice", "Bob", "Charlie"]
+ %for name in names:
+ %print("Bonjour", name)
+
+ %Bonjour Alice
+ %Bonjour Bob
+ %Bonjour Charlie
+
+%---
+
+\end{document}