Předmět Základy efektivního programování (KIV / ZEP)
Na serveru studentino.cz naleznete nejrůznější studijní materiály: zápisky z přednášek nebo cvičení, vzorové testy, seminární práce, domácí úkoly a další z předmětu KIV / ZEP - Základy efektivního programování, Fakulta aplikovaných věd, Západočeská univerzita v Plzni (ZČU).
Top 10 materiálů tohoto předmětu
Materiály tohoto předmětu
Materiál | Typ | Datum | Počet stažení |
---|
Další informace
Obsah
- 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). Úvod do RSA kryptování.
Získané způsobilosti
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.
Literatura
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.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.
Požadavky
Zápočet: Student musí vypracovat čtyři sady úloh zadávané v týdnech výuky s pevně stanoveným termínem řádného odevzdání (obvykle tři týdny). Tyto sady obsahují jak teoretické příklady (např. navrhněte efektivní algoritmus, který nalezne v zadaném poli, zda jsou tam nějaké duplicitní hodnoty), tak praktické (např. napište program, který spočte odmocninu ze dvou s přesností na 100 míst). Příklady jsou různě obtížné. Každá sada je ohodnocena 20 body. Pro získání zápočtu musí student získat minimálně 50 bodů. Zkouška: Písemný test, ve kterém student demonstruje získané znalosti na návrhu metody řešící o něco složitější problém. Test je hodnocen 20 body, které se sčítají s body ze semestru (viz zápočet). Celkem lze tedy v předmětu získat 100 bodů. Výsledná známka je stanovena takto: 1 = 86 - 100, 2 = 71 - 85, 3 = 56 - 70, 4 = < 55 bodů
Garant
Doc. Ing. Josef Kohout, Ph.D.
Vyučující
Doc. Ing. Josef Kohout, Ph.D.