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

« Zpět
Název předmětu Základy efektivního programování
Kód předmětu KIV/ZEP-E
Organizační forma výuky Přednáška
Úroveň předmětu Bakalářský
Rok studia nespecifikován
Semestr Letní
Počet ECTS kreditů 4
Vyučovací jazyk Angličtina
Statut předmětu Povinný, Povinně-volitelný
Způsob výuky Kontaktní
Studijní praxe Nejedná se o pracovní stáž
Doporučené volitelné součásti programu Není
Dostupnost předmětu Předmět je nabízen přijíždějícím studentům
Vyučující
  • Schlecht Miroslav, doc. Ing. Ph.D.
Obsah předmětu
- Posuzování algoritmů, časová a paměťová složitost. Master theorem. - Často se vyskytující zbytečné, časově náročné operace v kódu a jejich eliminace. - Robustnost algoritmů, singulární případy, přesnost numerických výpočtů. - 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). - Správa paměti. Alokace a dealokace paměti, garbage collector, úniky paměti. Příliš velká data (nevejdou se do paměti). - Cache v současných počítačích a její efektivní využití (technika bricking) - Rozděl a panuj. Binární vs. interpolační hledání, Medián. Dělení prostoru. - Práce s velkými daty. Redukce dimenze problému. Redukce dat vzorkováním, Sobolovy sekvence. Vlastní správa paměti. Komprese. Checksums (LUHN, CRC, Adler32, MD5). - Reprezentace grafů, algoritmy Dijkstra a Floyd-Warshall. - Heuristické přístupy k řešení. Stavový automat, prořezávání stavů. Problém optimálního přiřazení - Hungarian marriage.

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
popsat principy vykonávání programu počítačem
popsat principy programování v imperativních jazycích, tj. řídící struktury, cykly, metody, aj.
orientovat se v matematických pojmech na úrovni středoškolské matematiky
Odborné dovednosti
vytvořit počítačový program v libovolném programovacím jazyce pro řešení jednoduchého problému (např. rozhodnutí, zda v poli čísel se nachází duplicity)
Obecné způsobilosti
bc. studium: své učení a pracovní činnost si sám plánuje a organizuje,
Výsledky učení
Odborné znalosti
posuzování časové a paměťové složitosti rekurentních i nerekurentních algoritmů
základních principů užívaných pro návrh efektivního algoritmu (např. řazení, rozděl a panuj, dělení prostoru)
základních principů využívaných pro zvýšení efektivity nebo robustnosti implementace (např. eliminace konstatních výpočtů v cyklu, zarovnání dat pro lepší využití cache, komprese dat, apod.)
Odborné dovednosti
navrhnout algoritmus řešící zadaný netriviální problém (např. volba optimálního umístění obchodů ve městě)
posoudit očekávanou složitost navrženého algoritmu
Obecné způsobilosti
bc. studium: používají své odborné znalosti, odborné dovednosti a obecné způsobilosti alespoň v jednom cizím jazyce,
Vyučovací metody
Odborné znalosti
Přednáška s aktivizací studentů,
Samostatná práce studentů,
Individuální konzultace,
Seminární výuka (badatelské metody),
Odborné dovednosti
Přednáška s aktivizací studentů,
Samostatná práce studentů,
Obecné způsobilosti
Přednáška s aktivizací studentů,
Diskuse,
Individuální konzultace,
Hodnotící metody
Odborné znalosti
Písemná zkouška,
Seminární práce,
Odborné dovednosti
Písemná zkouška,
Seminární práce,
Obecné způsobilosti
Písemná zkouška,
Seminární práce,
Doporučená literatura
  • Alsuwaiyel, M. H. Algorithms: Design Techniques and Analysis (Revised Edition). 2016. ISBN 978-981-4723-64-0.
  • Alsuwaiyel, M. H. Algorithms: design techniques and analysis. 1st pub. Singapore : World Scientific, 1999. ISBN 981-02-3740-5.
  • McConnell, Jeffrey. Analysis of algorithms: an active learning approach. Jones & Bartlett Publishers, 2007. ISBN 978-0763707828.


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