SubjectsSubjects(version: 945)
Course, academic year 2023/2024
   Login via CAS
Programming - NSZI062 (Obecná informatika Bc. - IPP2 - zaměření Programování)
Title: Programování a vývoj software
Guaranteed by: Student Affairs Department (32-STUD)
Faculty: Faculty of Mathematics and Physics
Actual: from 2021
Semester: both
E-Credits: 0
Hours per week, examination: 0/0, STEX [HT]
Capacity: unlimited
Min. number of students: unlimited
4EU+: no
Virtual mobility / capacity: no
State of the course: taught
Language: Czech
Teaching methods: full-time
Teaching methods: full-time
Note: can be fulfilled in the future
no points awarded for fulfilment
you can enroll for the course in winter and in summer semester
Requirements to the exam - Czech
Last update: 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.

 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html