Předmět: Aplikace datových struktur

« Zpět
Název předmětu Aplikace datových struktur
Kód předmětu KIV/ADT
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Bakalářský
Rok studia nespecifikován
Semestr Letní
Počet ECTS kreditů 5
Vyučovací jazyk Čeština
Statut předmětu Povinný
Způsob výuky Kontaktní
Studijní praxe Nejedná se o pracovní stáž
Doporučené volitelné součásti programu Není
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.


Studijní plány, ve kterých se předmět nachází
Fakulta Studijní plán (Verze) Kategorie studijního oboru/specializace Doporučený ročník Doporučený semestr