Tato stránka vychází z podkladů pro tištěné studijní plány (tzv. Karolinku).
Informatika se zaměřením na vzdělávání
Garantující pracoviště: Katedra softwaru a výuky informatiky Garant studijního programu: doc. RNDr. Pavel Töpfer, CSc.Doporučený průběh studia
Předměty povinné jsou vytištěny tučně, povinně volitelné předměty normálním písmem, doporučené volitelné předměty kurzívou.
Hlavní studijní plán (maior)
1. rok studia
kód | Předmět | Kredity | ZS | LS | |
NDMI002 | Diskrétní matematika | 5 | 2/2 Z+Zk | — | |
NPRG062 | Algoritmizace | 4 | 2/1 Z+Zk | — | |
NPRG030 | Programování 1 | 5 | 2/2 Z | — | |
NMTM110 | Informační technologie pro učitele | 3 | 1/2 KZ | — | |
NTVY014 | Tělesná výchova I | 1 | 1 | 0/2 Z | — |
NJAZ070 | Anglický jazyk pro středně pokročilé I | 2 | 1 | 0/2 Z | — |
NTIN060 | Algoritmy a datové struktury 1 | 5 | — | 2/2 Z+Zk | |
NPRG031 | Programování 2 | 5 | — | 2/2 Z+Zk | |
NDIN019 | Dětské programovací jazyky | 4 | — | 1/2 Z | |
NTVY015 | Tělesná výchova II | 1 | 1 | — | 0/2 Z |
NJAZ072 | Anglický jazyk pro středně pokročilé II | 2 | 1 | — | 0/2 Z |
1 Místo jednoho z předmětů NTVY014, NTVY015, NTVY016, NTVY017 je možné si zapsat letní výcvikový kurz NTVY018 nebo zimní výcvikový kurz NTVY019. Tyto kurzy může student absolvovat kdykoli v průběhu studia.
2 Výuka anglického jazyka NJAZ070, NJAZ072 v rozsahu 0/2 v každém semestru je určena pro středně pokročilé a pokročilé. Pro začátečníky a mírně pokročilé jsou určeny předměty NJAZ071, NJAZ073 s rozsahem výuky 0/4 v každém semestru.
2. rok studia
kód | Předmět | Kredity | ZS | LS | |
NUIN021 | Algoritmy a automaty pro učitele | 4 | 5 | 2/2 Z+Zk | — |
NSWI120 | Principy počítačů | 3 | 2/0 Zk | — | |
NSWI141 | Úvod do počítačových sítí | 3 | 2/0 KZ | — | |
NDIN011 | Aplikační software | 4 | 2/1 KZ | — | |
NTVY016 | Tělesná výchova III | 1 | 1 | 0/2 Z | — |
NJAZ074 | Anglický jazyk pro středně pokročilé III | 2 | 1 | 0/2 Z | — |
NSWI170 | Počítačové systémy | 5 | — | 2/2 Z+Zk | |
NSWI177 | Úvod do Linuxu | 4 | — | 1/2 KZ | |
NTVY017 | Tělesná výchova IV | 1 | 1 | — | 0/2 Z |
NJAZ090 | Anglický jazyk pro středně pokročilé IV | 2 | 1 | — | 0/2 Z |
NJAZ091 | Anglický jazyk | 3 | 1 | 0/0 Zk | 0/0 Zk |
1 Místo jednoho z předmětů NTVY014, NTVY015, NTVY016, NTVY017 je možné si zapsat letní výcvikový kurz NTVY018 nebo zimní výcvikový kurz NTVY019. Tyto kurzy může student absolvovat kdykoli v průběhu studia.
2 Výuka anglického jazyka NJAZ074, NJAZ090 v rozsahu 0/2 v každém semestru je určena pro středně pokročilé a pokročilé. Pro začátečníky a mírně pokročilé jsou určeny předměty NJAZ075, NJAZ089 s rozsahem výuky 0/4 v každém semestru.
3 Povinnou zkoušku z anglického jazyka NJAZ091 je možné absolvovat v ZS nebo v LS.
4 Místo nově zařazeného povinného předmětu NUIN021 Algoritmy a automaty pro učitele si můžete zapsat dvojici předmětů NTIN061 Algoritmy a datové struktury 2, NTIN071 Automaty a gramatiky, které byly zařazeny ve studijním plánu v předchozích letech.
3. rok studia
kód | Předmět | Kredity | ZS | LS | |
NDBI025 | Databázové systémy | 5 | 2/2 Z+Zk | — | |
NUIN018 | Vývoj počítačových her — pro učitele | 4 | 2/1 KZ | — | |
NPEP301 | Úvod do psychologie | 3 | 2/0 Zk | — | |
NSWI090 | Počítačové sítě | 3 | — | 2/0 Zk | |
NPEP606 | Pedagogická propedeutika | 3 | — | 0/2 Z | |
NSZZ031 | Vypracování a konzultace bakalářské práce | 6 | — | 0/4 Z | |
NDIN006 | Pedagogická praxe z informatiky 1 | 2 | 1 týden Z | ||
Povinně volitelné předměty | 4 |
Povinně volitelné předměty (minimálně 4 kredity)
kód | Předmět | Kredity | ZS | LS | |
NPEP601 | Rétorika a komunikace s lidmi I | 2 | 0/2 Z | — | |
NPEP602 | Sociální dovednosti a práce s lidmi I | 2 | 0/2 Z | — | |
NPEP603 | Rétorika a komunikace s lidmi II | 2 | — | 0/2 Z | |
NPEP604 | Sociální dovednosti a práce s lidmi II | 2 | — | 0/2 Z |
Doporučené volitelné předměty
kód | Předmět | Kredity | ZS | LS | |
NMIN201 | Programování 3 | 5 | 2/2 Z+Zk | — | |
NPRG013 | Programování v jazyce Java | 5 | 2/2 Z+Zk | — | |
NPRG035 | Programování v jazyce C# | 5 | 2/2 Z+Zk | — | |
NAIL028 | Úvod do robotiky | 5 | 2/2 Z+Zk | — | |
NPFL012 | Úvod do počítačové lingvistiky | 3 | 2/0 Zk | — | |
NPED045 | Multimediální vzdělávání v pojetí psychologického výzkumu | 3 | 1/1 KZ | — | |
NPRG005 | Neprocedurální programování | 5 | — | 2/2 Z+Zk | |
NAIL120 | Úvod do umělé inteligence | 5 | — | 2/2 Z+Zk | |
NPRG036 | Datové formáty | 5 | — | 2/2 Z+Zk | |
NPRG003 | Metodika programování a filozofie programovacích jazyků | 3 | — | 2/0 Zk | |
NPRG045 | Ročníkový projekt | 4 | — | 0/1 Z |
Přidružený studijní plán (minor)
1. rok studia
kód | Předmět | Kredity | ZS | LS | |
NDMI002 | Diskrétní matematika | 5 | 2/2 Z+Zk | — | |
NPRG062 | Algoritmizace | 4 | 2/1 Z+Zk | — | |
NPRG030 | Programování 1 | 5 | 2/2 Z | — | |
NTIN060 | Algoritmy a datové struktury 1 | 5 | — | 2/2 Z+Zk | |
NPRG031 | Programování 2 | 5 | — | 2/2 Z+Zk | |
NDIN019 | Dětské programovací jazyky | 4 | — | 1/2 Z |
2. rok studia
kód | Předmět | Kredity | ZS | LS | |
NUIN021 | Algoritmy a automaty pro učitele | * | 5 | 2/2 Z+Zk | — |
NSWI120 | Principy počítačů | 3 | 2/0 Zk | — | |
NSWI141 | Úvod do počítačových sítí | 3 | 2/0 KZ | — | |
NDIN011 | Aplikační software | 4 | 2/1 KZ | — | |
NSWI170 | Počítačové systémy | 5 | — | 2/2 Z+Zk | |
NSWI177 | Úvod do Linuxu | 4 | — | 1/2 KZ |
* Místo nově zařazeného povinného předmětu NUIN021 Algoritmy a automaty pro učitele si můžete zapsat dvojici předmětů NTIN061 Algoritmy a datové struktury 2, NTIN071 Automaty a gramatiky, které byly zařazeny ve studijním plánu v předchozích letech.
3. rok studia
kód | Předmět | Kredity | ZS | LS | |
NDBI025 | Databázové systémy | 5 | 2/2 Z+Zk | — | |
NUIN018 | Vývoj počítačových her — pro učitele | 4 | 2/1 KZ | — | |
NSWI090 | Počítačové sítě | 3 | — | 2/0 Zk | |
NDIN006 | Pedagogická praxe z informatiky 1 | 2 | 1 týden Z |
Doporučené volitelné předměty
kód | Předmět | Kredity | ZS | LS | |
NMIN201 | Programování 3 | 5 | 2/2 Z+Zk | — | |
NPRG013 | Programování v jazyce Java | 5 | 2/2 Z+Zk | — | |
NPRG035 | Programování v jazyce C# | 5 | 2/2 Z+Zk | — | |
NAIL028 | Úvod do robotiky | 5 | 2/2 Z+Zk | — | |
NPFL012 | Úvod do počítačové lingvistiky | 3 | 2/0 Zk | — | |
NPED045 | Multimediální vzdělávání v pojetí psychologického výzkumu | 3 | 1/1 KZ | — | |
NPRG005 | Neprocedurální programování | 5 | — | 2/2 Z+Zk | |
NAIL120 | Úvod do umělé inteligence | 5 | — | 2/2 Z+Zk | |
NPRG036 | Datové formáty | 5 | — | 2/2 Z+Zk | |
NPRG003 | Metodika programování a filozofie programovacích jazyků | 3 | — | 2/0 Zk | |
NPRG045 | Ročníkový projekt | 4 | — | 0/1 Z |
Požadavky znalostí ke státní závěrečné zkoušce
1. Algoritmy a datové struktury
Časová složitost algoritmů: čas a prostor výpočtu pro konkrétní vstup, časová
a prostorová složitost algoritmu, složitost v nejlepším, nejhorším
a průměrném případě, asymptotická notace. Třídy složitosti: třídy P a NP,
převoditelnost problémů, NP-těžkost a NP-úplnost, příklady NP-úplných problémů a převodů
mezi nimi. Metoda "rozděl a panuj": princip rekurzivního dělení problému na podproblémy,
výpočet složitosti pomocí rekurentních rovnic, kuchařková věta (Master theorem),
aplikace (Mergesort, násobení dlouhých čísel, Strassenův algoritmus).
Dynamické programování. Binární vyhledávací
stromy: definice vyhledávacího stromu, operace s nevyvažovanými stromy, AVL stromy (jen
definice). Haldy: binární halda. Hešování: hešování s přihrádkami, otevřená adresace.
Třídění: primitivní třídicí algoritmy (Bubblesort, Insertsort apod.), třídění haldou (Heapsort), Quicksort, dolní odhad složitosti porovnávacích třídicích algoritmů,
přihrádkové třídění čísel a řetězců. Grafové algoritmy: prohledávání do šířky a do hloubky, detekce komponent souvislosti, topologické třídění orientovaných grafů,
nejkratší cesty v ohodnocených grafech (Dijkstrův algoritmus),
minimální kostra grafu (Kruskalův, Jarníkův a Borůvkův algoritmus), toky v sítích (algoritmus Fordův-Fulkersonův).
Algoritmy vyhledávání v textu. Algebraické algoritmy: Eukleidův algoritmus.
2. Programovací jazyky
Typické prostředky programovacích jazyků.
Pojmy a principy objektového návrhu: třídy, rozhraní, metody, atributy, dědičnost, vícenásobná dědičnost a její problémy, polymorfismus,
primitivní typy vs. objekty (implementace primitivních typů, paměťová reprezentace
složených typů a objektů), implementace virtuálních metod (tabulka virtuálních metod),
životnost objektů (alokace objektů statická, na zásobníku, na haldě),
konstruktory, explicitní delete/dispose, garbage collector,
výjimky (šíření a odchytávání výjimek: try-catch-finally). Oddělený překlad, sestavení, řízení
překladu: kompilace vs. interpretace, role sestavení.
Neprocedurální programování, logické programování.
3. Automaty a jazyky
Regulární jazyky: konečný automat, jazyk přijímaný konečným automatem, deterministický,
nedeterministický, lambda přechody, regulární výrazy, Kleeneho věta, iterační (pumping) lemma pro konečné automaty, Nerodova věta, regulární gramatiky. Bezkontextové jazyky: bezkontextová
gramatika, jazyk generovaný gramatikou, zásobníkový automat, třídy jazyků přijímaných nedeterministickými a deterministickými
zásobníkovými automaty. Turingův stroj: gramatika typu 0, diagonální jazyk, univerzální jazyk. Chomského hierarchie: určení ekvivalence či inkluze tříd jazyků generovaných
výše uvedenými automaty a gramatikami, schopnost zařazení konkrétního jazyka do Chomského hierarchie (zpravidla sestrojení odpovídajícího automatu či gramatiky a důkaz iteračním
lemmatem, že jazyk není v nižší třídě).
4. Databáze
Podstata a architektury databázových systémů. Konceptuální, logická a fyzická úroveň pohledů na data, B-stromy a jejich varianty. Relační datový model, relační algebra, normální formy, referenční integrita. Základy jazyka SQL. Transakční zpracování, vlastnosti transakcí.
5. Architektury počítačů, operačních systémů a sítí
Reprezentace dat: kódování a způsob uložení dat v paměti, bitové operace a jejich
využití. Organizace počítače: von Neumannova a harvardská architektura, operační
a sekundární paměti, adresové prostory, vstupně/výstupní zařízení. Architektura počítače:
typické architektury, instrukce procesoru, běžné konstrukce vyššího programovacícho jazyka
a jejich reprezentace pomocí instrukcí, základní představa o SMP multiprocesoru se
sdílenou pamětí. Operační systémy: boot počítače a operačního systému, jádro OS, ovladače
zařízení, privilegovaný a neprivilegovaný režim CPU, rozhraní mezi OS a programovacím
jazykem, správa uživatelů a jejich oprávnění. Rozhraní HW a OS: ovladače zařízení a driver
stack, obsluha přerušení na úrovni CPU a OS, výjimky procesoru a jejich obsloužení a vazba
na runtime programovacího jazyka. Procesy a vlákna: kontext procesu a vlákna, kooperativní
a preemptivní multitasking, plánování, typické stavy vlákna, aktivní vs. pasivní čekání.
Race condition, kritická sekce, vzájemné vyloučení, synchronizační primitiva, deadlock
a livelock (znalost konceptu). Typická rozhraní pro přístup a práci se soubory a sockety,
file descriptory, použití souborového API pro přístup k zařízením v OS, standardní vstup
a výstup a jejich přesměrování, roury (pipes) jako meziprocesová komunikace.
Bezpečnost, autentifikace, autorizace, přístupová práva. ISO/OSI vrstevnatá architektura sítí. TCP/IP. Spojované a nespojované služby, spolehlivost, zabezpečení protokolů.