Vyučující
|
-
Řezáčková Olga, Ing. M.Sc.
-
Šimůnek Ladislav, Ing. Ph.D.
-
Skupa Miroslav, Ing.
|
Obsah předmětu
|
1. Problém, algoritmus, program. Program a programovací jazyk. Vykonání programu. 2. Generické programování. Rekurzivní programy. 3. Výpočetní složitost. O-notace. Praktické příklady. 4. Řazení - algoritmy, jejich složitost. 5. Abstraktní datové typy, ADT Zásobník. 6. ADT Fronta. Použití ADT pro řešení problémů. 7. Seznam. 8. Množina. Tabulka. Slovník. Rozptylovací funkce. 9. Struktury udržující pořadí prvků. 10. Grafy, řešení úloh prohledáváním do šířky. 11. Grafy, řešení úloh prohledáváním do hloubky, topologické řazení. 12. Prioritní fronta. Paradigma a vlastnosti greedy algoritmů. 13. Komponované datové struktury a jejich využití pro řešení úloh.
|
Studijní aktivity a metody výuky
|
- Kontaktní výuka
- 52 hodin za semestr
- Vypracování seminární práce v bakalářském studijním programu [5-40]
- 39 hodin za semestr
- Příprava na zkoušku [10-60]
- 26 hodin za semestr
- Příprava na souhrnný test [6-30]
- 13 hodin za semestr
|
Předpoklady |
---|
Odborné znalosti |
---|
rozumět způsobu reprezentace čísel, znaků a řetězců v počítači |
rozumět způsobu práce s uživatelským vstupem a výstupem včetně použití konzole a vstupních a výstupních souborů |
popsat způsob vykonání jednoduchého programu v počítaci |
dekomponovat složitější problémy na jednodušší a zapsat dekompozici ve formě programu s podprogramy |
rozumět významu parametrů a návratové hodnoty podprogramu |
Odborné dovednosti |
---|
sestavovat jednoduché počítačové programy v imperativním programovacím jazyce |
provádět základní matematická odvození |
interpretovat jednoduché počítačové programy a porozumět jejich funkci z programového kódu |
Obecné způsobilosti |
---|
bc. studium: své učení a pracovní činnost si sám plánuje a organizuje, |
bc. studium: rozpozná problém, objasní jeho podstatu, rozčlení ho na části, |
bc. studium: uplatňuje při řešení problémů vhodné metody a dříve získané vědomosti a dovednosti, kromě analytického a kritického myšlení využívá i myšlení tvořivé s použitím představivosti a intuice, |
bc. studium: používá s porozuměním odborný jazyk a symbolická a grafická vyjádření informací různého typu, |
bc. studium: efektivně využívá moderní informační technologie, |
bc. studium: je otevřený k využití různých postupů při řešení problémů, nahlíží problém z různých stran, |
Výsledky učení |
---|
Odborné znalosti |
---|
popsat funkci základních datových struktur z uživatelského hlediska |
interpretovat výroky o výpočetní složitosti algoritmů v termínech O, Omega a Theat notace |
určit očekávanou složitost operací nad základními datovými strukturami |
Odborné dovednosti |
---|
analyzovat jednoduché programy a určit jejich výpočetní složitost |
sestavovat algoritmy s využitím existujících implementací základních datových struktur |
sestavovat složené datové struktury přizpůsobené konkrétním řešeným programátorským úlohám |
zvolit vhodné datové struktury pro řešení programátorských úloh |
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, |
bc. studium: srozumitelně a přesvědčivě sdělují odborníkům i laikům informace o povaze odborných problémů a vlastním názoru na jejich řešení, |
bc. studium: samostatně získávají další odborné znalosti, dovednosti a způsobilosti na základě především praktické zkušenosti a jejího vyhodnocení, ale také samostatným studiem teoretických poznatků oboru, |
Vyučovací metody |
---|
Odborné znalosti |
---|
Přednáška založená na výkladu, |
Přednáška s demonstrací, |
Přednáška s diskusí, |
Cvičení (praktické činnosti), |
E-learning, |
Řešení problémů, |
Samostudium, |
Diskuse, |
Odborné dovednosti |
---|
Přednáška založená na výkladu, |
Přednáška s demonstrací, |
Přednáška s diskusí, |
Cvičení (praktické činnosti), |
E-learning, |
Řešení problémů, |
Samostudium, |
Obecné způsobilosti |
---|
Přednáška založená na výkladu, |
Přednáška s demonstrací, |
Řešení problémů, |
Cvičení (praktické činnosti), |
Hodnotící metody |
---|
Odborné znalosti |
---|
Ústní zkouška, |
Písemná zkouška, |
Kombinovaná zkouška, |
Test, |
Průběžné hodnocení, |
Odborné dovednosti |
---|
Ústní zkouška, |
Písemná zkouška, |
Kombinovaná zkouška, |
Test, |
Seminární práce, |
Průběžné hodnocení, |
Obecné způsobilosti |
---|
Ústní zkouška, |
Písemná zkouška, |
Kombinovaná zkouška, |
Test, |
Doporučená literatura
|
-
Cormen, Thomas H. Introduction to algorithms. 3rd ed. Cambridge : MIT Press, 2009. ISBN 978-0-262-03384-8.
-
Hunt, Andrew; Thomas, David. Programátor pragmatik : jak se stát lepším programátorem a vytvářet kvalitní software. Vyd. 1. Brno : Computer Press, 2007. ISBN 978-80-251-1660-9.
-
Kučera, Luděk. Kombinatorické algoritmy. 2. nezm. vyd. Praha : SNTL, 1989.
-
Mareš, Martin; Valla, Tomáš. Průvodce labyrintem algoritmů. 1. vydání. 2017. ISBN 978-80-88168-19-5.
|