Vyučující
|
-
Polreich Milan, Ing. Ph.D.
|
Obsah předmětu
|
1.-4.: Analýza, dekompozice a algoritmizace. Programování jako nástroj pro řešení problémů, úvod do jazyka Python. 5.-7.: Standardní datové struktury (matice, vektor, řídká matice, graf), optimalizace datových struktur s ohledem na specifika architektury počítače - lokalita struktur v paměti, vhodná volba datových typů. 8.-10.: Numerické algoritmy a jejich implementace (pojem stabilita numerického algoritmu, umělá stabilizace, konvoluce a filtrace, numerická optimalizace), standardní knihovny lineární algebry (BLAS, LAPACK). 11.-13.: Paralelní programování (paralelizace, vektorizace, jejich rozdíly, specifika kompilátorů, automatická vektorizace, paralelizace), heterogenní a distribuované systémy, vícejádrové a mnohojádrové architektury se sdílenou pamětí, paralelní konstrukty (paralelní for, tasky, pipelines).
|
Studijní aktivity a metody výuky
|
Přednáška s diskusí, Studium metodou řešení problémů, Samostudium studentů, Přednáška, Cvičení
- Vypracování seminární práce v bakalářském studijním programu [5-40]
- 40 hodin za semestr
- Příprava na zkoušku [10-60]
- 38 hodin za semestr
- Kontaktní výuka
- 26 hodin za semestr
- Praktická výuka [vyjádření počtem hodin]
- 26 hodin za semestr
|
Předpoklady |
---|
Odborné znalosti |
---|
disponovat základními znalosti jednoho programovacího jazyka |
porozumět základním matematickým algoritmům |
vysvětlit základní problematiku architektury počítače |
Odborné dovednosti |
---|
aplikovat základní matematické znalosti (matematická analýza, linearní algebra) |
číst a prozumět dokumentaci programovacího jazyka |
vytvořit program dle zadání v jednom prgramovacím jazyce |
Obecné způsobilosti |
---|
bc. studium: kriticky přistupuje ke zdrojům informací, informace tvořivě zpracovává a využívá při svém studiu a praxi, |
Výsledky učení |
---|
Odborné znalosti |
---|
popsat základní problémy numerických algoritmů |
popsat datové a řídící struktury programovacího jazyka |
vysvětlit problematiku analýzy, dekompozice a algoritmizace zadaného problému |
charakterizovat datové struktury pro daný problém |
Odborné dovednosti |
---|
provést analýzu daného problému a dekomponovat ho na dílčí úlohy |
implementovat základní numerické algoritmy |
optimalizovat datové struktury s ohledem na specifika architektury počítače |
navrhnout algoritmus řešící daný problém/úlohu |
Obecné způsobilosti |
---|
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í, |
Vyučovací metody |
---|
Odborné znalosti |
---|
Přednáška založená na výkladu, |
Cvičení (praktické činnosti), |
Přednáška s diskusí, |
Odborné dovednosti |
---|
Cvičení (praktické činnosti), |
Samostatná práce studentů, |
Řešení problémů, |
Obecné způsobilosti |
---|
Přednáška s diskusí, |
Prezentace práce studentů, |
Samostatná práce studentů, |
Hodnotící metody |
---|
Odborné znalosti |
---|
Ústní zkouška, |
Písemná zkouška, |
Test, |
Odborné dovednosti |
---|
Demonstrace dovedností (praktická činnost), |
Výstupní projekt, |
Průběžné hodnocení, |
Obecné způsobilosti |
---|
Písemná zkouška, |
Doporučená literatura
|
-
Cormen, Thomas H. Introduction to algorithms. Cambridge : MIT Press, 2001. ISBN 0-262-03293-7.
-
Herout, Pavel. Učebnice jazyka C. 1. díl. České Budějovice : Kopp, 2004. ISBN 80-7232-220-6.
-
Herout, Pavel. Učebnice jazyka C. 2. díl. České Budějovice : Kopp, 2004. ISBN 80-7232-221-4.
-
Knuth, Donald E. The art of computer programming. Vol. 1, fundamental algorithms. Massachusetts : Addison-Wesley, 1973. ISBN 0-201-03809-9.
-
Pecinovský, Rudolf; Virius, Miroslav. Učebnice programování - základy algoritmizace : Učebnice s příklady v turbo Pascalu a Borland C++. Praha : Grada, 1997. ISBN 80-7169-577-7.
-
Racek, Stanislav; Ježek, Karel. Paralelní programování. Plzeň : ZČU, 1994. ISBN 80-7082-128-0.
-
Virius, Miroslav. Základy algoritmizace. Praha : ČVUT, 1995. ISBN 80-01-01346-4.
|