Vyučující
|
-
Janeček Jindřich, doc. Ing. Ph.D.
|
Obsah předmětu
|
- Posuzování algoritmů, časová a paměťová složitost, robustnost algoritmů. - Přesnost numerických výpočtů, Hornerovo schéma, singulární případy algoritmů. - Často se vyskytující zbytečné, časově náročné operace v kódu a jejich eliminace. - Správa paměti. Alokace a dealokace paměti, garbage collector, úniky paměti. Příliš velká data (nevejdou se do paměti). - Maticové a vektorové operace (Strassen formula, skalární a vektorový součin). Řešení soustav lineárních i nelineárních rovnic (včetně přeurčených soustav). - Cache v současných počítačích a její efektivní využití (technika bricking) - Úvod do paralelního programování a programování GPU. Dělení prostoru, medián. - Rekurze a její odstraňování. Binární vs. interpolační hledání. - Redukce dimenze problému (space-filling křivky, PCA). Redukce dat vzorkováním, Sobolovy sekvence. - Reprezentace grafů, algoritmy Dijkstra a Floyd-Warshall. Porovnávání grafů - Hungarian marriage. Stavový automat, prořezávání stavů. - Praktický význam komprese, Freemanova růžice. Checksums (LUHN, CRC, Adler32, MD5).
|
Studijní aktivity a metody výuky
|
Přednáška s aktivizací, Individuální konzultace, Seminární výuka, Samostatná práce studentů
- Projekt individuální [40]
- 40 hodin za semestr
- Kontaktní výuka
- 26 hodin za semestr
- Příprava na zkoušku [10-60]
- 30 hodin za semestr
|
Předpoklady |
---|
Odborné znalosti |
---|
předpokladem studia je zájem o probíranou problematiku a znalost základů programování |
Výsledky učení |
---|
student se seznámí s problémy, které se často vyskytují u současného software, jako jsou: neefektivní využití výpočetního výkonu, přílišné paměťové nároky nebo nestabilní výpočet, a získá základní znalosti, jak navrhovat kód tak, aby se těmto problémům předešlo. V rámci předmětu student také získá praktické zkušenosti návrhu různých algoritmů jak z množiny ACM příkladů tak odjinud |
Vyučovací metody |
---|
Přednáška s aktivizací studentů, |
Samostatná práce studentů, |
Individuální konzultace, |
Seminární výuka (badatelské metody), |
Hodnotící metody |
---|
Písemná zkouška, |
Seminární práce, |
Doporučená literatura
|
-
McConnell, Jeffrey. Analysis of algorithms: an active learning approach. Jones & Bartlett Publishers, 2007. ISBN 978-0763707828.
-
McConnell, Steve. Dokonalý kód : umění programování a techniky tvorby software. Vyd. 1. Brno : Computer Press, 2005. ISBN 80-251-0849-X.
-
Sedgewick, Robert. Algorithms in Java. pt. 5, Graph algorithms. 3rd ed. Boston : Addison-Wesley, 2004. ISBN 0-201-36121-3.
-
Wróblewski, Piotr. Algoritmy : datové struktury a programovací techniky. Vyd. 1. Brno : Computer Press, 2004. ISBN 80-251-0343-9.
|