Informatika - Teoretická informatika
Tato stránka vychází z podkladů pro tištěné studijní plány (tzv. Karolinku).
Garantující pracoviště: Katedra teoretické informatiky a matematické logiky, Informatický ústav Univerzity Karlovy
Oborový garant: Prof. Mgr. Michal Koucký, Ph.D.
Program se nedělí na zaměření
Cílem tohoto studijního programu je poskytnout studentům široké vzdělání v teoretických základech informatiky. Program předpokládá dobré matematické základy a rozvíjí schopnosti přesného myšlení. Absolventi a absolventky získají přehled a porozumění v mnoha oblastech současné teoretické informatiky - od kryptografie a limitů výpočetních systémů po pokročilé algoritmické techniky. Zároveň se dostanou v oblastech svého zájmu ke hranicím současného poznání. Součástí studia tak může být práce v mezinárodních týmech vedených předními odborníky například při řešení diplomové práce. Absolventi a absolventky jsou vyhledáváni firmami vyvíjející technologie pro budoucnost založené na nynějším výzkumu. Zároveň je studijní program znamenitě připraví pro doktorské studium na kterékoliv světové univerzitě.
Část výuky může probíhat v anglickém jazyce.
Povinné předměty
kód | Předmět | Kredity | ZS | LS | |
NTIN090 | Základy složitosti a vyčíslitelnosti | 4 | 2/1 Z+Zk | — | |
NTIN066 | Datové struktury 1 | 6 | 2/2 Z+Zk | — | |
NTIN022 | Pravděpodobnostní techniky | 5 | 2/2 Z+Zk | — | |
NTIN063 | Složitost | 4 | — | 2/1 Z+Zk | |
NTIN100 | Základy přenosu a zpracování informace | 4 | — | 2/1 Z+Zk | |
NSZZ023 | Diplomová práce I | 6 | — | 0/4 Z | |
NSZZ024 | Diplomová práce II | 9 | 0/6 Z | — | |
NSZZ025 | Diplomová práce III | 15 | — | 0/10 Z |
Povinně volitelné předměty
Je požadováno splnění povinně volitelných předmětů z následujícího seznamu v rozsahu alespoň 35 kreditů. Posluchači, kteří zahájili studium před rokem 2022, musí získat alespoň 47 kreditů.
kód | Předmět | Kredity | ZS | LS | |
NAIL021 | Booleovské funkce a jejich aplikace | 3 | 2/0 Zk | — | |
NTIN096 | Pseudo-Booleovská optimalizace | 3 | — | 2/0 Zk | |
NAIL094 | Rozhodovací procedury a SAT/SMT řešiče | 5 | — | 2/2 Z+Zk | |
NDMI010 | Grafové algoritmy | 3 | 2/0 Zk | — | |
NDMI018 | Aproximační a online algoritmy | 5 | — | 2/2 Z+Zk | |
NDMI025 | Pravděpodobnostní algoritmy | 5 | — | 2/2 Z+Zk | |
NSWI072 | Algoritmy komprese dat | 3 | 2/0 Zk | — | |
NTIN067 | Datové struktury 2 | 3 | — | 2/0 Zk | |
NDMI074 | Algoritmy a jejich implementace | 5 | — | 2/2 Z+Zk | |
NTIN081 | Výpočetní složitost a interaktivni protokoly | 3 | — | 2/0 Zk | |
NTIN082 | Neuniformní výpočetní modely | 3 | — | 2/0 Zk | |
NTIN087 | Textové algoritmy | 3 | 2/0 Zk | — | |
NTIN097 | Struktury v hyperkrychlích | 3 | 2/0 Zk | — | |
NTIN099 | Algoritmy pro reprezentaci znalostí | 3 | — | 2/0 Zk | |
NTIN103 | Introduction to Parameterized Algorithms | 5 | 2/2 Z+Zk | — | |
NOPT034 | Matematické programování a polyedrální kombinatorika | 4 | — | 2/1 Z+Zk | |
NTIN104 | Foundations of theoretical cryptography | 4 | 2/1 Z+Zk | — | |
NDMI067 | Toky, cesty a řezy | 3 | 2/0 Zk | — | |
NDMI077 | Algoritmy pro specifické třídy grafů | 3 | — | 2/0 Zk | |
NDMI088 | Grafové algoritmy 2 | 3 | — | 2/0 Zk | |
NMAG536 | Důkazová složitost a P vs. NP problém | 3 | — | 2/0 Zk | |
NMAI067 | Logika v informatice | 3 | 2/0 Zk | — | |
NTIN017 | Paralelní algoritmy | 3 | — | 2/0 Zk | |
NTIN023 | Dynamické grafové datové struktury | 3 | 2/0 Zk | — | |
NTIN064 | Vyčíslitelnost | 3 | — | 2/0 Zk | |
NTIN073 | Rekurze | 3 | 2/0 Zk | — | |
NTIN084 | Bioinformatické algoritmy | 5 | 2/2 Z+Zk | — | |
NTIN085 | Vybrané kapitoly z výpočetní složitosti I | 4 | 2/1 Z+Zk | — | |
NTIN086 | Vybrané kapitoly z výpočetní složitosti II | 4 | — | 2/1 Z+Zk | |
NTIN101 | Selected Topics in Algorithms | 3 | 2/0 Zk | — | |
NTIN111 | Selected Topics in Algorithms II | 3 | — | 2/0 Zk | |
NTIN110 | Vybrané kapitoly z datových struktur | 3 | 2/0 Zk | — | |
NTIN088 | Algoritmická náhodnost | 3 | — | 2/0 Zk | |
NTIN102 | Seminář z teoretické informatiky | 3 | 0/2 Z | 0/2 Z | |
NDMI093 | Seminář z algoritmů a datových struktur | 3 | — | 0/2 Z | |
NTIN106 | Implementace algoritmů a datových struktur | 3 | 0/2 Z | — | |
NOPT059 | Optimalizace velkých problémů: přesné metody | 5 | — | 2/2 Z+Zk | |
NOPT061 | Optimalizace velkých problémů: metaheuristiky | 5 | — | 2/2 Z+Zk |
Některé předměty jsou vyučovány pouze jednou za dva roky.
Doporučené volitelné předměty
Uvedený seznam volitelných předmětů obsahuje předměty, které přímo navazují a rozšiřují látku relevantní pro tento studijní program. Student má dále možnost vybrat si další předměty volitelně ze široké nabídky informatických předmětů nabízených MFF UK.
kód | Předmět | Kredity | ZS | LS | |
NDMI007 | Kombinatorické algoritmy | 5 | — | 2/2 Z+Zk | |
NAIL116 | Sociální sítě a jejich analýza | 5 | 2/2 Z+Zk | — | |
NOPT042 | Programování s omezujícími podmínkami | 5 | 2/2 Z+Zk | — | |
NAIL076 | Logické programování 1 | 3 | 2/0 Zk | — |
Státní závěrečná zkouška
Student si zvolí tři okruhy z následující nabídky, z nichž dostane po jedné otázce. Otázky k jednotlivým okruhům vychází z látky probrané v rámci povinných předmětů a předmětů doporučených k jednotlivým okruhům. Celkem tedy každý student dostane tři otázky.
Zkušební okruhy
- 1. Složitost a kryptografie
- 2. Reprezentace znalostí v binární doméně
- 3. Algoritmy
- 4. Datové struktury
- 2. Reprezentace znalostí v binární doméně
Zkušební požadavky
1. Složitost a kryptografie
Výpočty s orákuly a relativizované výpočetní třídy.
Polynomiální hierarchie.
Pravděpodobnostní výpočetní třídy.
Neuniformní modely výpočtu.
Interaktivní protokoly.
Komunikační složitost.
Vztahy a separace různých tříd složitosti.
Kryptografie založená na předpokladech výpočetní obtížnosti.
Jednosměrné funkce a hard-core predikáty.
Pseudonáhodné generátory.
Integrita dat (message authentication codes).
Kryptografické hašovací funkce.
Schémata pro commitment.
Zero-knowledge důkazové systémy.
Doporučené předměty
kód | Předmět | Kredity | ZS | LS | |
NTIN063 | Složitost | 4 | — | 2/1 Z+Zk | |
NTIN081 | Výpočetní složitost a interaktivni protokoly | 3 | — | 2/0 Zk | |
NTIN082 | Neuniformní výpočetní modely | 3 | — | 2/0 Zk | |
NTIN104 | Foundations of theoretical cryptography | 4 | 2/1 Z+Zk | — |
2. Reprezentace znalostí v binární doméně
Rezoluce a její úplnost.
Dualizace.
Třídy booleovských funkcí a formulí se speciálními vlastnostmi.
Exponenciální algoritmy pro k-SAT a obecný SAT.
Parametrizované algoritmy pro SAT.
Algoritmy pro MAXSAT.
Reprezentace znalostí založené na NNF.
Řešiče pro SAT založené na DPLL a CDCL a jejich využití pro SMT.
Parciální krychle a mediánové grafy.
Grayovy kódy.
Isoperimetrické nerovnosti a lineární rozvržení.
Turánovské problémy.
Obvody, třída P/poly a její vlastnosti.
QBF a jejich vlastnosti vzhledem k polynomiální hierarchii a třídě PSPACE.
Algoritmy pro rozhodování QBF.
Samo-opravné kódy.
Doporučené předměty
kód | Předmět | Kredity | ZS | LS | |
NTIN099 | Algoritmy pro reprezentaci znalostí | 3 | — | 2/0 Zk | |
NAIL094 | Rozhodovací procedury a SAT/SMT řešiče | 5 | — | 2/2 Z+Zk | |
NTIN097 | Struktury v hyperkrychlích | 3 | 2/0 Zk | — | |
NAIL021 | Booleovské funkce a jejich aplikace | 3 | 2/0 Zk | — |
3. Algoritmy
Pokročilé grafové algoritmy, toky v síti.
Lineární a semidefinitní programování, polynomiální algoritmy pro ně, použití v grafových a aproximačních algoritmech.
Kombinatorické aproximační algoritmy a schémata.
Pseudopolynomiální algoritmy, silná NP-úplnost.
Parametrizované algoritmy - FPT, parametrizované dolní odhady, parametrizované aproximační algoritmy.
Pravděpodobnostní algoritmy, přibližné počítání, hašování a jeho aplikace.
Interaktivní protokoly a verifikace, PCP věta a její aplikace.
Doporučené předměty
kód | Předmět | Kredity | ZS | LS | |
NDMI010 | Grafové algoritmy | 3 | 2/0 Zk | — | |
NDMI018 | Aproximační a online algoritmy | 5 | — | 2/2 Z+Zk | |
NDMI025 | Pravděpodobnostní algoritmy | 5 | — | 2/2 Z+Zk | |
NTIN103 | Introduction to Parameterized Algorithms | 5 | 2/2 Z+Zk | — |
4. Datové struktury
Výpočetní modely (RAM a jeho varianty).
Entropie a informace.
Samoopravné kódy.
Komprese dat.
Vyhledávací stromy.
Hešování.
Pokročilé haldy.
Datové struktury pro práci s celými čísly.
Vícerozměrné datové struktury.
Datové struktury pro práci s řetězci.
Textové algoritmy.
Struktury pro práci s grafy. Dynamizace a persistence.
Práce s paměťovou hierarchií.
Data-streamové problémy.
Doporučené předměty
kód | Předmět | Kredity | ZS | LS | |
NTIN100 | Základy přenosu a zpracování informace | 4 | — | 2/1 Z+Zk | |
NTIN067 | Datové struktury 2 | 3 | — | 2/0 Zk | |
NTIN087 | Textové algoritmy | 3 | 2/0 Zk | — | |
NDMI010 | Grafové algoritmy | 3 | 2/0 Zk | — | |
NSWI072 | Algoritmy komprese dat | 3 | 2/0 Zk | — |