Vyučující
|
-
Pinc Jiří, doc. Ing. Ph.D.
|
Obsah předmětu
|
1. Algoritmické myšlení, abstraktní datové typy. Vývojový diagram. Výpočetní složitost. 2. Zásobník, fronta, řešení úloh. 3. Prioritní fronta, řešení úloh. 4. Seznam, slovník, invertovaný seznam, řešení úloh. 5. Řazení, vyhledávání, třídění a řešení úloh. Mediány, kvantily. 6. Rozptylové tabulky se zřetězením. Hashovací funkce, řešení úloh 7. Stromy, stromové struktury, základní pojmy. 8. Použití stromů pro řešení úloh. 9. Grafy a grafové struktury. 10. Použití grafů pro řešení úloh. 11. Množinové algoritmy - generování permutací, podmnožin, řešení úloh 12. Textové algoritmy, řešení úloh. 13. Rekurze, příklady rekurze, řešení úloh.
|
Studijní aktivity a metody výuky
|
- Kontaktní výuka
- 52 hodin za semestr
- Příprava na dílčí test [2-10]
- 8 hodin za semestr
- Příprava na zkoušku [10-60]
- 30 hodin za semestr
- Projekt individuální [40]
- 39 hodin za semestr
|
Předpoklady |
---|
Odborné znalosti |
---|
rozumět jednoduchým programům zapsaným v imperativním programovacím jazyce (Java, python) |
rozumět významu a použití základních řídících struktur imperativního programování (cykly, podmínky) |
rozumět základům reprezentace dat v počítači (koncept proměnné, pole, datové typy) |
Odborné dovednosti |
---|
psát jednoduché programy v imperativním programovacím jazyce |
Obecné způsobilosti |
---|
bc. studium: efektivně využívá různé strategie učení k získání a zpracování poznatků a informací, hledá a rozvíjí účinné postupy ve svém učení, |
bc. studium: zvažuje možné klady a zápory jednotlivých variant řešení, včetně posouzení jejich rizik a důsledků, |
Výsledky učení |
---|
Odborné znalosti |
---|
orientovat se v základních datových strukturách (zásobník, fronta, tabulka, graf, strom) |
popsat rozhraní základních datových struktur |
orientovat se v základních algoritmech pro zpracování množin (generování permutací apod.) |
orientovat se v základních algoritmech pro zpracování textových řetězců (vyhledání podřetězce apod.) |
porozumět způsobu zápisu a vykonání rekurzivního programu |
Odborné dovednosti |
---|
využívat základní datové struktury pro řešení běžných programátorských úkolů |
samostatně navrhovat algoritmy pro řešení běžných programátorských úloh |
identifikovat základní programátorské vzory v běžných úlohách |
číst jednoduché programy využívající základní datové struktury a porozumět jejich funkci |
Obecné způsobilosti |
---|
bc. studium: samostatně a odpovědně se na základě rámcového zadání rozhodují v souvislostech jen částečně známých, |
Vyučovací metody |
---|
Odborné znalosti |
---|
Přednáška založená na výkladu, |
Přednáška s demonstrací, |
Přednáška s diskusí, |
Odborné dovednosti |
---|
Cvičení (praktické činnosti), |
Obecné způsobilosti |
---|
Přednáška založená na výkladu, |
Hodnotící metody |
---|
Odborné znalosti |
---|
Písemná zkouška, |
Test, |
Průběžné hodnocení, |
Odborné dovednosti |
---|
Demonstrace dovedností (praktická činnost), |
Obecné způsobilosti |
---|
Písemná zkouška, |
Doporučená literatura
|
-
Lafore, Robert. Data structures & algorithms in Java. Corte Madera : Waite Group Press, 1998. ISBN 1-57169-095-6.
-
Mareš, Martin; Valla, Tomáš. Průvodce labyrintem algoritmů. 1. vydání. 2017. ISBN 978-80-88168-19-5.
-
Ryant, Ivan. Algoritmy a datové struktury objektově. Vydání první. 2017. ISBN 978-80-270-1660-0.
|