Předmět: Základy efektivního programování

» Seznam fakult » FAV » KIV
Název předmětu Základy efektivního programování
Kód předmětu KIV/ZEP
Organizační forma výuky Přednáška
Úroveň předmětu Bakalářský
Rok studia nespecifikován
Semestr Zimní a letní
Počet ECTS kreditů 3
Vyučovací jazyk Čeština
Statut předmětu nespecifikováno
Způsob výuky Kontaktní
Studijní praxe Nejedná se o pracovní stáž
Doporučené volitelné součásti programu Není
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.


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