diff --git a/05-funkce/05-funkce.tex b/05-funkce/05-funkce.tex
new file mode 100644
index 0000000000000000000000000000000000000000..6d444e36717a41a0e74439d8384bf236f91f39a1
--- /dev/null
+++ b/05-funkce/05-funkce.tex
@@ -0,0 +1,164 @@
+\documentclass{beamer}
+\usepackage[utf8]{inputenc}
+\usepackage[czech]{babel}
+\usepackage{palatino}
+\usepackage{verbatim}
+\usetheme{Warsaw}
+\title{Programování 1: Funkce}
+\author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}}
+\institute{Katedra Aplikované Matematiky\\MFF UK Praha}
+\date{2019}
+\begin{document}
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{footline}{}
+\setbeamerfont{title page}{family=\rmfamily}
+\shorthandoff{"}
+
+\begin{frame}
+\titlepage
+\end{frame}
+
+\input ../slidemac.tex
+
+% ----------------------------------------------------------------------
+
+\begin{frame}{Definice funkce}
+
+{\tt
+def stekej(): \\
+~~~~print("Haf!") \\
+~ \\
+stekej() \\
+stekej()
+}
+
+\bigskip
+
+\begin{itemize}
+\item Opakující se část programu stačí napsat jednou \\
+      a spustit vícekrát.
+\item Také jsme tím část programu pojmenovali, \\
+      takže je při čtení jasné, co má dělat.
+\end{itemize}
+
+\end{frame}
+
+% ----------------------------------------------------------------------
+
+\begin{frame}{Funkce s parametrem}
+
+{\tt
+def stekej(n): \\
+~~~~for i in range(n): \\
+~~~~~~~~print("Haf!") \\
+~ \\
+stekej(5)
+}
+
+\bigskip
+
+\begin{itemize}
+\item Funkci můžeme předat parametr.
+\item Když zavoláme {\tt stekej(5)}, funkce se spustí s~proměnnou~{\tt n}
+      nastavenou na~{\tt 5}.
+\item Proměnné {\tt n} a~{\tt i} existují jen lokálně uvnitř funkce, \\
+      zvenčí nejsou vidět.
+\end{itemize}
+
+\end{frame}
+
+% ----------------------------------------------------------------------
+
+\begin{frame}{Funkce s výsledkem}
+
+{\tt
+def minimum(a, b): \\
+~~~~if a < b: \\
+~~~~~~~~return a \\
+~~~~else: \\
+~~~~~~~~return b \\
+~ \\
+print(minimum(3, 5))
+}
+
+\bigskip
+
+\begin{itemize}
+\item Příkaz {\bf return} ukončí vykonávání funkce a vrátí výsledek.
+\item Můžeme použít i {\bf return} bez výsledku (vrátí {\bf None}).
+\end{itemize}
+
+\end{frame}
+
+% ----------------------------------------------------------------------
+
+\begin{frame}{Ještě o~parametrech}
+
+{\bf Nepovinné parametry:}
+
+\bigskip
+
+{\tt
+def stekej(n=1, zvuk="Haf!"): \\
+~~~~for i in range(n): \\
+~~~~~~~~print(zvuk)
+}
+
+\bigskip
+
+{\bf Různé způsoby volání:}
+
+\bigskip
+
+{\tt
+stekej() \\
+stekej(5) \\
+stekej(5, "HAF!") \\
+stekej(5, zvuk="HAF!") \\
+stekej(zvuk="HAF!")
+}
+
+\end{frame}
+
+% ----------------------------------------------------------------------
+
+\begin{frame}{Viditelnost proměnných: chyták}
+
+{\tt
+zvuk = "Kuku!" \\
+kolik\_hodin = 0 \\
+~ \\
+def zakukej(): \\
+~~~~print(zvuk) \\
+~~~~kolik\_hodin += 1
+}
+
+\bigskip
+
+\begin{itemize}
+\item Funkce vidí globální proměnnou {\bf zvuk}
+\item Proměnná {\bf kolik\_hodin} je ale lokální, \\
+      protože funkce do ní přiřazuje.
+\end{itemize}
+
+\end{frame}
+
+% ----------------------------------------------------------------------
+
+\begin{frame}{Viditelnost proměnných: řešení}
+
+{\tt
+zvuk = "Kuku!" \\
+kolik\_hodin = 0 \\
+~ \\
+def zakukej(): \\
+~~~~{\color{blue}global kolik\_hodin} \\
+~~~~print(zvuk) \\
+~~~~kolik\_hodin += 1
+}
+
+\end{frame}
+
+% ----------------------------------------------------------------------
+
+\end{document}
diff --git a/05-funkce/Makefile b/05-funkce/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..6b5d751586285f738a0313dc853d860ee2b5dc07
--- /dev/null
+++ b/05-funkce/Makefile
@@ -0,0 +1,3 @@
+SLIDES=05-funkce.pdf
+
+include ../Makerules
diff --git a/SYLLABUS b/SYLLABUS
index 85aa0d82818a07acce8a3bcc110cdd8c2c183ee4..58135dd2b08e7d75204f4cf8861918a560997ad1 100644
--- a/SYLLABUS
+++ b/SYLLABUS
@@ -46,10 +46,10 @@ Značení:
 ## Funkce (1)
 - definice a volání funkcí
 - nepovinné parametry
-- abstrakce a modularita programů
+* abstrakce a modularita programů
 - lokální identifikátory a jejich viditelnost
-- princip rekurze
-- předávání funkcí jiným funkcím
+* princip rekurze
+* předávání funkcí jiným funkcím
 
 ## Knihovny I a grafika (1)
 - používání knihoven, import
@@ -59,7 +59,7 @@ Značení:
 - seznamy a operace s nimi
 - fronta a zásobník
 - iterování přes seznam
-- řezy
+- řezy a přiřazování do nich
 - list comprehension
 - stringy
 - formátování