Algoritmy a programovanie I.

Vyučujúci

Zaradený v študijných programoch

Výsledky vzdelávania

Po absolvovaní predmetu by študenti mali získa znalosti a zručnosti:
A. znalosť orientovať sa v pojmovom aparáte v oblasti návrhu a tvorby algoritmov
B. porozumieť rôznym typom dátových štruktúr a spôsobom ako tvoriť algoritmy nad dátovými štruktúrami
C. kompetentnosť sformulovať podstatu riešenej úlohy z pohľadu zásad tvorby algoritmov
D. zručnosť transformovať algoritmus do programovacieho jazyka Python na jednoduchých úlohách
E. schopnosť porozumieť jednoduchým zdrojovým kódom vo vybraných programovacích jazykoch (porozumieť základné riadiace štruktúry algoritmu)
F. spolupracovať vo dvojiciach pri návrhu riešenia úloh
G. komunikovať a vysvetľovať svoje návrhy algoritmov

Stručná osnova predmetu

1. Pojem algoritmu, jeho vlastnosti, pojem Turingovho stroja a súvis s algoritmom, reprezentácia algoritmu
2. Základné riadiace štruktúry algoritmu a algoritmizácia slovných úloh
3. Tvorba vývojového diagramu v aplikácii PS diagram
4. Základy programovanie v jazyku Python
5. Parsovanie vývojových diagramov do jazyka Python
6. Zložitosť algoritmov a notácia Big O
7. Triediace algoritmy a ich efektivita, hash tabuľky a ich význam
8. Triediace algoritmy a ich efektivita, rekurzia v programoch
9. Rôzne typy dátových štruktúr (lineárne zoznamy, stromy, haldy, grafy) a práca s nimi
10. Stavový priestor a neinformované algoritmy prehľadávania stavového priestoru (do šírky a do hĺbky)
11. Informované algoritmy prehľadávania stavového priestoru (kvantitatívne heuristiky hill climbing a jeho modifikácie)
12. Optimalizačné algoritmy A* a jeho modifikácie
13. Práca s modulmi.

Odporúčaná literatúra

1. Wengrow, J., A common-sense Guide to Data Structures and Algorithms, 2nd edition, The pragrmatic programmers, 2020
2. Skiena, S.S., The Algorithm Design Manual (Texts in Computer Science) 3rd ed., Springer, 2020
3. Wróblewski P.: Algoritmy, dátové a programovací techniky, Computer Press, Brno 2004
4. Pšenčíková, J., Algoritmizace, Computer Media, 2021
5. Pecinovský, J., Začínáme programovat v jazyku Python, Grada, 2020
6. Pecinovský, J., Python Kompletní příručka jazyka pro verzi 3.10, Grada, 2021

Podmienky na absolvovanie predmetu

Podmienky na absolvovanie predmetu:
- záverečná skúška – písomná forma, 60% (absolvovanie skúšky znamená získanie min. 51% z hodnotenia skúšky). Skúška pozostáva z dvoch častí: overenie teoretických vedomostí (test s rôznymi typmi otázok). Teoretickou časťou sa overuje dosiahnutá úroveň výsledkov vzdelávania A, B, E. Overenie praktických zručností - tvorba vývojového diagramu v PS diagrame a programu v Pythone, kde sa overuje úroveň výsledkov vzdelávanie C, D, F, G.
Cvičenia
Priebežné testy 10%, priebežné riešenie úloh počas cvičení vo dvojiciach 10%, záverečná úloha-tvorba algoritmu 20%, ku skúške je potrebné 51% z tejto povinnosti
Hodnotením samostatnej úlohy a hodnotením práce v tímoch sa rozvíjajú a hodnotia nasledovné výsledky vzdelania C, D, F, G.

Pracovné zaťaženie študenta

Pracovné zaťaženie študenta (v hodinách):
6 kreditov x 26 hodín = 156 hodín
Rozdelenie študijného zaťaženia:
Účasť na prednáškach a seminároch: 52 hodín
Príprava na semináre: 25 hodín
Príprava projektu: 25 hodín
Príprava na záverečnú skúšku: 54 hodín

Jazyk, ktorého znalosť je potrebná na absolvovanie predmetu

Slovenský jazyk

Dátum schválenia: 10.02.2023

Dátum poslednej zmeny: 18.05.2022

Dátum schválenia: 10.02.2023

Dátum poslednej zmeny: 18.05.2022