From 2a4ec7dfe6dede5e184a8cf8fe521237b099e78d Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Mon, 8 Mar 2021 12:05:31 +0100
Subject: [PATCH] =?UTF-8?q?N=C3=A1vrh=20nov=C3=A9ho=20p=C5=99edm=C4=9Btu?=
 =?UTF-8?q?=20pro=20u=C4=8Ditelsk=C3=A9=20studium?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 navrh-ADS2-ucitelske.md | 72 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)
 create mode 100644 navrh-ADS2-ucitelske.md

diff --git a/navrh-ADS2-ucitelske.md b/navrh-ADS2-ucitelske.md
new file mode 100644
index 0000000..222a229
--- /dev/null
+++ b/navrh-ADS2-ucitelske.md
@@ -0,0 +1,72 @@
+# Návrh na společné ADS2 + Automaty a gramatiky pro učitele
+
+## Anotace
+
+Přednáška o algoritmech a základech teoretické informatiky.
+Navazuje na NTIN060 (ADS1), nahrazuje NTIN061 (ADS2) a NTIN071 (Automaty a gramatiky).
+
+## Sylabus
+
+1. 	Vyhledávání v textu (1.5 přednášky)
+	* notace pro řetězce
+	* algoritmus Knuth-Morris-Pratt
+	* algoritmus Aho-Corasicková
+
+1. 	Toky v sítích (1.5 přednášky)
+	* sítě, toky a řezy
+	* Fordův-Fulkersonův algoritmus
+	* Edmondsův-Karpův algoritmus (FF s nejkratší cestou)
+	* párování v bipartitním grafu
+	* vrcholově/hranově disjunktní cesty v grafech
+
+1. 	Základní geometrické algoritmy v rovině (1 přednáška)
+	* konvexní obal
+	* princip zametání roviny řízeného událostmi
+
+1. 	Převoditelnost problémů a třídy časové složitosti (2 přednášky)
+	* polynomiální transformace a redukce mezi rozhodovacími problémy
+	* nedeterministické algoritmy, třídy P a NP
+	* NP-úplnost
+
+1. 	Aproximační algoritmy (1 přednáška)
+	* použití aproximačních algoritmů, poměrová a relativní chyba
+	* jeden až dva jednoduché příklady aproximačních algoritmů (knapsack, bin-packing, rozvrhování na paralelních strojích) včetně horního odhadu pro jejich poměrovou (nebo relativní) chybu
+	* aproximační schéma: princip a příklad
+
+1.	Konečné automaty (1 přednáška)
+	* základní pojmy: slova už známe z vyhledávání v textu,
+	  jazyk je vlastně totéž co rozhodovací problém
+	* definice konečného automatu (DFA), syntaxe a sémantika, regulární jazyk
+	* příklad: 0^n1^n není regulární, důkaz principem holubníku
+	* příklad: v KMP uvážíme uzávěr zpětných hran a máme DFA
+	* regulární pumping lemma (zobecnění myšlenky předchozího důkazu)
+	* příklad: 1^{prvočíslo} není regulární
+	* součin automatů
+
+1.	Regulární výrazy (1 přednáška)
+	* nedeterministický konečný automat (NFA)
+	* ekvivalence DFA ↔ NFA
+	* λ-přechody, ekvivalence λ-NFA ↔ NFA
+	* uzavřenost na množinové operace
+	* regulární výrazy popisují právě regulární jazyky
+
+1.	Gramatiky (1 přednáška)
+	* gramatiky, jimi generované jazyky
+	* pravé a levé lineární gramatiky generují regulární jazyky
+	* obecné lineární gramatiky generují i neregulární jazyky
+	* bezkontextové gramatiky, derivační stromy, jednoznačnost
+	* Chomského normální forma
+	* algoritmus testující příslušnost slova do bezkontextového jazyka
+	  pomocí dynamického programování
+
+1.	Turingovy stroje (1 přednáška)
+	* obousměrný konečný automat
+	* bez důkazu: obousměrné automaty jsou stejně silné jako jednosměrné
+	* Turingův stroj (TM)
+	* TM může příjímat zastavením (rekurzivně spočetné jazyky), přijímat stavem
+	  (rekurzivní jazyky) nebo vydávat výstup na pásce (vyčíslitelné funkce)
+	* neformálně: vztah mezi TM a RAMem
+	* TM jsou ekvivalentní s obecnými gramatikami
+	* univerzální Turingův stroj, kódování strojů (bez detailů konstrukce)
+	* halting problem je rekurzivně spočetný, ale není rekurzivní
+	* Postova věta => doplněk halting problemu není rekurzivně spočetný
-- 
GitLab