PředmětyPředměty(verze: 945)
Předmět, akademický rok 2023/2024
   Přihlásit přes CAS
Programování a vývoj software - NSZI062 (Obecná informatika Bc. - IPP2 - zaměření Programování)
Anglický název: Programming
Zajišťuje: Studijní oddělení (32-STUD)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2021
Semestr: oba
E-Kredity: 0
Rozsah, examinace: 0/0, SZ [HT]
Počet míst: 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
Způsob výuky: prezenční
Způsob výuky: prezenční
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
Požadavky ke zkoušce
Poslední úprava: Mgr. Dina Novotná Obeidová (07.02.2024)

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 Programování a vývoj software budou navíc zkoušeni z těchto tematických okruhů:

1. Architektura počítačů, operačních systémů a sítí

Organizace paměti za běhu programů. Paměťová reprezentace datových struktur. Cache a její vliv na výkonnost. Provádění instrukcí procesorem. Operační systémy.

2. Programovací jazyky

Programování v C++. Programování v dynamických jazycích. Statický vs. dynamický polymorfismus, generické programování, typová dedukce. Paralelní programování a synchronizace. Komponenty, dependency injection. Reflexe a introspekce. Návrhové vzory. Principy WWW, HTTP, HTTPS, URL, statické webové stránky. Principy webových aplikací. Programování na straně klienta. API webových aplikací. Základy bezpečnosti webových aplikací.

3. Softwarové inženýrství

Procesy vývoje software. Analýza požadavků. Testování. Údržba (Software evolution). Analýza rizik. Správa verzí. Sestavování. Měření výkonnosti. Návrh API, tříd a metod, objektový návrh. Základy bezpečnosti webových aplikací.

4. Databáze

Architektury databázových systémů. Transakční zpracování. Přehled SQL. Moderní databázové systémy.

 
Univerzita Karlova | Informační systém UK