diff --git a/01-uvod/01-uvod.tex b/01-uvod/01-uvod.tex
index eb5857893b82513065f4703666fdbfae198b5ec8..189fc844f974aca52d87652e06fa4511e74bfdab 100644
--- a/01-uvod/01-uvod.tex
+++ b/01-uvod/01-uvod.tex
@@ -7,7 +7,7 @@
 \title{Programování 1: Úvod do Pythonu}
 \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
 \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
-\date{2019}
+\date{2020}
 \begin{document}
 \setbeamertemplate{navigation symbols}{}
 \setbeamertemplate{footline}{}
diff --git a/01-uvod/first-comments.py b/01-uvod/first-comments.py
index 7df2b95b1d4d41d1432669525df2321d71662c7e..a31a2d1f3f31df3cdee77442f5832ac409db2850 100644
--- a/01-uvod/first-comments.py
+++ b/01-uvod/first-comments.py
@@ -1,8 +1,7 @@
 #!/usr/bin/env python3
 
 # Nejprve zjistíme, do kolika počítat
-print("Do kolika chceš počítat?")
-n = int(input())
+n = int(input("Do kolika chceš počítat? "))
 
 # Aktuální číslo
 i = 1
diff --git a/01-uvod/first-input.py b/01-uvod/first-input.py
index a781154341014790df7e3c0abf4bfdf7abbbedad..3f50d1856d524bedbb277eb12191fb048a166f8a 100644
--- a/01-uvod/first-input.py
+++ b/01-uvod/first-input.py
@@ -1,5 +1,4 @@
-print("Do kolika chceš počítat?")
-n = int(input())
+n = int(input("Do kolika chceš počítat? "))
 
 i = 1
 
diff --git a/02-cykly/02-cykly.tex b/02-cykly/02-cykly.tex
index f7a424d43e1d677fab43321ec4a4f6c965afbaa9..14e2924d56f6bdbd6677f96f5ea93c5ec141e419 100644
--- a/02-cykly/02-cykly.tex
+++ b/02-cykly/02-cykly.tex
@@ -7,7 +7,7 @@
 \title{Programování 1: Podmínky a cykly}
 \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
 \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
-\date{2019}
+\date{2020}
 \begin{document}
 \setbeamertemplate{navigation symbols}{}
 \setbeamertemplate{footline}{}
@@ -30,7 +30,11 @@
 
 ~
 
-Pokud bychom chtěli {\it příkazy} vynechat, můžeme místo nich napsat {\bf pass}.
+Větev {\bf else} můžeme vynechat.
+
+~
+
+Pokud bychom chtěli vynechat {\it příkazy,} můžeme místo nich napsat {\bf pass}.
 To je prázdný příkaz.
 
 \end{frame}
diff --git a/02-cykly/posloupnost-max.py b/02-cykly/posloupnost-max2.py
similarity index 100%
rename from 02-cykly/posloupnost-max.py
rename to 02-cykly/posloupnost-max2.py
diff --git a/03-seznamy/03-seznamy.tex b/03-seznamy/03-seznamy.tex
index 9224202fe7eb6074741b16e9d3f122a57323e108..9b3ebcaa1ab070e825bf22d43098c0c3bf81c7bb 100644
--- a/03-seznamy/03-seznamy.tex
+++ b/03-seznamy/03-seznamy.tex
@@ -7,7 +7,7 @@
 \title{Programování 1: Seznamy}
 \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
 \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
-\date{2019}
+\date{2020}
 \begin{document}
 \setbeamertemplate{navigation symbols}{}
 \setbeamertemplate{footline}{}
diff --git a/04-trideni/04-trideni.tex b/04-trideni/04-trideni.tex
index 7abef0ca4933a6c05625e8282f2b4109d853d6ad..0c6fac78d700ef8b18e859515a7e1119d1d2a967 100644
--- a/04-trideni/04-trideni.tex
+++ b/04-trideni/04-trideni.tex
@@ -7,7 +7,7 @@
 \title{Programování 1: Třídění a vyhledávání}
 \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
 \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
-\date{2019}
+\date{2020}
 \begin{document}
 \setbeamertemplate{navigation symbols}{}
 \setbeamertemplate{footline}{}
diff --git a/05-funkce/05-funkce.tex b/05-funkce/05-funkce.tex
index 268b03c4898d1e4372c877a70ff4da7ece60d09b..7e6500cbf44f9515a1396c924b8c87fd1f12dc65 100644
--- a/05-funkce/05-funkce.tex
+++ b/05-funkce/05-funkce.tex
@@ -7,7 +7,7 @@
 \title{Programování 1: Funkce}
 \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
 \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
-\date{2019}
+\date{2020}
 \begin{document}
 \setbeamertemplate{navigation symbols}{}
 \setbeamertemplate{footline}{}
@@ -116,7 +116,7 @@ def stekej(n=1, zvuk="Haf!"): \\
 stekej() \\
 stekej(5) \\
 stekej(5, "HAF!") \\
-stekej(5, zvuk="HAF!") \\
+stekej(n=5, zvuk="HAF!") \\
 stekej(zvuk="HAF!")
 }
 
diff --git a/06-rezy/06-rezy.tex b/06-rezy/06-rezy.tex
index 51ce857977cbdb5f9bbf7da75225c0285ee28bfa..20b49551c0851478abe00f085425b4a381de436b 100644
--- a/06-rezy/06-rezy.tex
+++ b/06-rezy/06-rezy.tex
@@ -7,7 +7,7 @@
 \title{Programování 1: Seznamy, řezy a řetězce}
 \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
 \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
-\date{2019}
+\date{2020}
 \begin{document}
 \setbeamertemplate{navigation symbols}{}
 \setbeamertemplate{footline}{}
@@ -270,4 +270,40 @@ True  \cmt{(pozor, nerespektuje česká pravidla)}
 
 % ----------------------------------------------------------------------
 
+\begin{frame}{Převody mezi typy dat}
+
+\py{%
+int("123")
+}{%
+123
+}
+
+\py{%
+str(123)
+}{%
+"123"
+}
+
+\py{%
+list("123")
+}{%
+['1', '2', '3']
+}
+
+\py{%
+str(['1', '2', '3'])
+}{%
+"['1', '2', '3']"
+}
+
+\py{%
+list(range(1, 10))
+}{%
+[1, 2, 3, 4, 5, 6, 7, 8, 9]
+}
+
+\end{frame}
+
+% ----------------------------------------------------------------------
+
 \end{document}
diff --git a/07-compr/07-compr.tex b/07-compr/07-compr.tex
index 2e47c89599873b2aff16ad5d97cd806fe3d9afd5..28d4d1131c7ed1ac320f359b1a9f84c9c9ecd999 100644
--- a/07-compr/07-compr.tex
+++ b/07-compr/07-compr.tex
@@ -7,7 +7,7 @@
 \title{Programování 1: List comprehensions}
 \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
 \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
-\date{2019}
+\date{2020}
 \begin{document}
 \setbeamertemplate{navigation symbols}{}
 \setbeamertemplate{footline}{}
diff --git a/07-compr/priklady.py b/07-compr/priklady.py
index db3470b0250d289f24ea3dbaa281ad2bf37df1fe..dc258a9941d5eaa7dedcb24ae95685081bfc036f 100644
--- a/07-compr/priklady.py
+++ b/07-compr/priklady.py
@@ -19,5 +19,4 @@ def nasobeni_matic(x, y):
 
 def slova_podle_delky(radek):
     dvojice = [ (len(slovo), slovo) for slovo in radek.split() ]
-    for _, slovo in sorted(dvojice):
-        print(slovo)
+    return [ slovo for _, slovo in sorted(dvojice) ]
diff --git a/08-slovniky/08-slovniky.tex b/08-slovniky/08-slovniky.tex
index 4647302fed450f045439834e959263cf34d41a48..b65b2d780e3dcb871f0c26d9854d8f79b6e2ee8d 100644
--- a/08-slovniky/08-slovniky.tex
+++ b/08-slovniky/08-slovniky.tex
@@ -7,7 +7,7 @@
 \title{Programování 1: Množiny a slovníky}
 \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
 \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
-\date{2019}
+\date{2020}
 \begin{document}
 \setbeamertemplate{navigation symbols}{}
 \setbeamertemplate{footline}{}
@@ -35,7 +35,7 @@ zvířata
 }
 
 \py{%
-"kočka" in zvířata
+"kočka" in zvířata  \cmt{(na rozdíl od seznamů rychlé)}
 }{%
 True
 }
@@ -104,6 +104,12 @@ a - b
 \{'d'\}
 }
 
+\py{%
+a == b  \cmt{(obsahují tytéž prvky?)}
+}{%
+False
+}
+
 \end{frame}
 
 % ----------------------------------------------------------------------
@@ -143,6 +149,12 @@ teploty.get("Peklo", -999)
 -999
 }
 
+\py{%
+teploty == \{\}  \cmt{(mají tytéž klíče i hodnoty k~nim?)}
+}{%
+False
+}
+
 \end{frame}
 
 % ----------------------------------------------------------------------
@@ -180,7 +192,7 @@ Longyearbyen = -46
 
 % ----------------------------------------------------------------------
 
-\begin{frame}{List comprehension pro množiny a slovníky}
+\begin{frame}{Comprehension pro množiny a slovníky}
 
 \py{%
 \{ x**2 for x in range(5) \}
diff --git a/09-objekty/09-objekty.tex b/09-objekty/09-objekty.tex
index 4d38ec70bec555e1329ec64167495fa46ed7ea8f..c7bf828783094151edebd615bf27ebaa61b82082 100644
--- a/09-objekty/09-objekty.tex
+++ b/09-objekty/09-objekty.tex
@@ -7,7 +7,7 @@
 \title{Programování 1: Třídy a objekty}
 \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
 \institute{Katedra Aplikované Matematiky\\MFF UK Praha}
-\date{2019}
+\date{2020}
 \begin{document}
 \setbeamertemplate{navigation symbols}{}
 \setbeamertemplate{footline}{}
@@ -267,7 +267,7 @@ True
 
 % ----------------------------------------------------------------------
 
-\begin{frame}{Jak to funguje uvnitř}
+\begin{frame}{Jak to funguje uvnitř: namespaces a scope}
 
 {\bf Prostory jmen (namespaces):}
 
@@ -276,7 +276,7 @@ True
 \begin{itemize}
 \item Zabudované funkce (třeba {\tt print})
 \item Globální jména (proměnné, funkce)
-\item Lokální jména uvnitř funkce
+\item Lokální jména uvnitř funkce (každého zavolání)
 \item Jména definovaná v~třídě
 \item Jména definovaná v~objektu
 \end{itemize}
@@ -284,7 +284,7 @@ True
 \medskip
 
 Obyčejné jméno se hledá ve všech prostorech, které jsou na daném
-místě v~programu \uv{vidět}.
+místě v~programu \uv{vidět}. Tomu se říká {\bf scope.}
 
 \medskip
 
@@ -306,7 +306,8 @@ místě v~programu \uv{vidět}.
 \begin{frame}{Jak to funguje uvnitř: zabudované typy}
 
 {\bf Zabudované typy jako int, str apod.} jsou rovněž třídy.
-Volání {\tt int()} nebo {\tt int("1")} je prostě vytvoření objektu dané třídy.
+Volání {\tt int()} nebo {\tt int("1")} je prostě vytvoření objektu dané třídy
+(nebo recyklování existujícího u~neměnných typů).
 
 \medskip
 
diff --git a/Makerules b/Makerules
index ed3318593856dafeb72ce9ba10e1b7cde4867aaf..d1a19700a4541f412d58159225eaa05aa4a832e8 100644
--- a/Makerules
+++ b/Makerules
@@ -11,4 +11,4 @@ clean::
 	rm -rf __pycache__
 
 upload::
-	rs $(SLIDES) jw:www/static/vyuka/1920/p1m/
+	rs $(SLIDES) jw:www/static/vyuka/2021/p1m/
diff --git a/TODO b/TODO
index dc199240fef4e8e5b59a772f617735f6931c0826..361d00c2ccb5d179154c8766f80faba2c3aed22c 100644
--- a/TODO
+++ b/TODO
@@ -1,5 +1,3 @@
-- input("Prompt")
-
 - and/or vyhodnocované zkráceně
 - if jako výraz?
 - rekurze
@@ -7,4 +5,6 @@
 
 - příště u domácích úkolů napsat, jak velké vstupy mají zvládat
 
-- objektový DÚ: páry jsou hrozně matoucí
+- ukázat ipython
+
+- dataclass