PředmětyPředměty(verze: 996)
Předmět, akademický rok 2026/2027
   
Systémové programování - NSZI063 (Obecná informatika Bc. - IPP3 - zaměření Systémové programování)
Anglický název: Programming
Podoba výuky: nic
Zajišťuje: Studijní oddělení (32-STUD)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2024
Počet semestrů výuky: 1
Semestr: oba
E-Kredity: 0
Rozsah, examinace: 0/0, SZ [HT]
Počet míst: neomezen
Maximální kapacita předmětu: neomezen
Minimální obsazenost: neomezen
4EU+: ne
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Stav předmětu: vyučován
Jazyk výuky: čeština
Forma uskutečňování: prezenční
Možnost opakovaného zápisu: 2 / 2 / 2 / 2
Poznámka: student může plnit i v dalších letech
za splnění nejsou body
předmět lze zapsat v ZS i LS
Kontroly studia předmětu a podmínky pro jejich úspěšné vykonání, způsob hodnocení

Požadavky znalostí ke státní závěrečné zkoušce společné pro všechny specializace

Matematika

1. Základy diferenciálního a integrálního počtu

Posloupnosti reálných čísel a jejich limity. Řady. Reálné funkce jedné reálné proměnné. Derivace a její aplikace. Integrály a jejich aplikace.

2. Algebra a lineární algebra

Algebraické struktury. Soustavy lineárních rovnic. Matice. Vektorové prostory. Lineární zobrazení. Skalární součin. Determinanty. Vlastní čísla a vlastní vektory. Positivně semidefinitní a positivně definitní matice.

3. Diskrétní matematika

Relace. Ekvivalence a rozkladové třídy. Částečná uspořádání. Funkce. Permutace a jejich základní vlastnosti. Kombinační čísla a vztahy mezi nimi, , binomická věta a její aplikace. Princip inkluze a exkluze. Hallova věta o systému různých reprezentantů a její vztah k párování v bipartitním grafu.

4. Teorie grafů

Základní pojmy teorie grafů. Základní příklady grafů. Souvislost grafů, komponenty souvislosti, vzdálenost v grafu. Stromy, jejich vlastnosti, ekvivalentní charakteristiky stromů. Rovinné grafy. Barevnost grafů. Hranová a vrcholová souvislost grafů. Orientované grafy, silná a slabá souvislost. Toky v sítích.

5. Pravděpodobnost a statistika

Pravděpodobnostní prostor, náhodné jevy, pravděpodobnost. Náhodné veličiny a jejich rozdělení. Limitní věty. Bodové odhady. Intervalové odhady: metoda založená na aproximaci normálním rozdělením. Testování hypotéz.

6. Logika

Syntaxe. Sémantika. Extenze teorií. Dokazatelnost. Věty o kompaktnosti a úplnosti výrokové a predikátové logiky. Rozhodnutelnost.

Informatika

1. Automaty a jazyky

Regulární jazyky. Bezkontextové jazyky. Rekurzivně spočetné jazyky. Chomského hierarchie.

2. Algoritmy a datové stuktury

Časová složitost algoritmů. Třídy složitosti. Metoda rozděl a panuj. Binarní vyhledávací stromy. Třídění. Grafové algoritmy.

3. Programovací jazyky

Koncepty pro abstrakci, zapouzdření a polymorfizmus. Primitivní a objektové typy a jejich reprezentace. Generické typy a funkcionální prvky. Manipulace se zdroji a mechanizmy pro ošetření chyb. Životní cyklus objektů a správa paměti. Vlákna a podpora synchronizace. Implementace základních prvků objektových jazyků. Nativní a interpretovaný běh, řízení překladu a sestavení programu.

4. Architektura počítačů a operačních systémů

Základní architektura počítače, reprezentace čísel, dat a programů. Instrukční sada, vazba na prvky vyšších programovacích jazyků. Podpora pro běh operačního systému. Rozhraní periferních zařízení a jejich obsluha. Základní abstrakce, rozhraní a mechanizmy OS pro běh programů, sdílení prostředků a vstup/výstup. Paralelismus, vlákna a rozhraní pro jejich správu, synchronizace vláken.

***************************

Studenti specializace Systémové programování budou navíc zkoušeni z těchto tematických okruhů:

Architektura počítačů

Výkonnost počítače a procesoru, metriky a omezení. Zpracování instrukcí procesorem, paralelismus, predikce a spekulace. Architektura paměťového subsystému, architektura cache. Multi-core a multi-socket systémy, koherence cache. Komunikace se zařízeními.

Související předměty:

NSWI143 Architektura počítačů

Operační systémy

Správa procesů a vláken, plánování, komunikace, synchronizace. Správa paměti, stránkování, správa paměti uvnitř procesů, sdílení paměti. Souborové systémy, koncepty a rozhraní, typické diskové struktury. Správa periferií, ovladače zařízení.

Související předměty:

NSWI200 Operační systémy

Počítačové sítě

Linková vrstva, adresace v Ethernetu, VLAN. Síťová vrstva, adresace v IPv4 a IPv6, statické směrování, NAT, IP tunely, VPN. Transportní vrstva, adresace v TCP a UDP, spolehlivost, řízení toku. Aplikační rozhraní a abstrakce pro síťovou komunikaci. Zabezpečení komunikace, autentizace, šifrování.

Související předměty:

NSWI090 Počítačové sítě

Překladače a programovací jazyky

Architektura překladače, AOT a JIT překlad. Vnitřní reprezentace programu. Optimalizace programu překladačem. Generování kódu pro cílový procesor.

Související předměty:

NSWI098 Principy překladačů

Správa paměti v běhových prostředích, životní cyklus objektů. Polymorfismus, generické programování, typová inference. Významné prvky standardních knihoven a jejich aplikace.

Související předměty:

Témata jsou pokryta povinnými a povinně volitelnými předměty zaměřenými na programovací jazyky. V rámci specializace je nutné absolvovat minimálně 3 takové předměty:

NPRG041 Programování v C++

V rámci PV předmětů skupiny 1: NPRG013 Programování v jazyce Java nebo NPRG035 Programování v jazyce C#.

V rámci PV předmětů skupiny 2: NPRG051 Pokročilé programování v C++ nebo NPRG021 Pokročilé programování v jazyce Java nebo NPRG038 Pokročilé programování v jazyce C#.

Návrh a tvorba software

Principy objektového návrhu, návrh API, tříd a metod, návrhové vzory.

Související předměty:

Téma prostupuje řadou povinných a povinně volitelných předmětů zaměřených na programování. Specificky v tomto případě se očekává doplnění znalostí absolvováním vhodné kombinace PV předmětů ze skupiny 3.

NPRG043 Doporučené postupy v programování nebo NPRG024 Návrhové vzory

NSWI041 Úvod do softwarového inženýrství nebo NSWI130 Architektury softwarových systémů nebo NSWI054 Softwarové inženýrství pro spolehlivé systémy

Paralelní programování, paměťový model, atomické operace a neblokující datové struktury.

Související předměty:

NPRG042 Programování v paralelním prostředí

Správa verzí, systémy pro sestavování software, nástroje pro testování software.

Související předměty:

NSWI154 Nástroje pro vývoj software

V rámci specializace se očekává, že získání potřebných znalostí a dovedností v této oblasti bude primárně výsledkem absolvování předmětů, u kterých je tvorba programů důležitým aspektem hodnocení. Základem jsou povinné a povinně volitelné předměty (skupiny 1 a 2) věnované programovacím jazykům doplněné o vhodný výběr povinně volitelných předmětů ze skupiny 3.

Poslední úprava: Novotná Obeidová Dina, Mgr. (12.06.2026)
 
Univerzita Karlova | Informační systém UK