|
Vyučující
|
-
Klíma Antonín, 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.
|