|
Lecturer(s)
|
|
|
|
Course content
|
1.-4.: Problem analysis, decomposition, algorithmization. Programming language as a tool for problem solving, Python programming language. 5.-7.: Standard and advanced data structures (vector, matrix, sparse matrix, graph), data structures optimization - principle of locality, a proper choice of data types. 8.-10.: Numerical algorithms and their implementation (notion of numerical algorithm stability, artificial stabilization, convolution, filtration, numerical optimization). Standard libraries of linear algebra (BLAS, LAPACK) 11.-13.: Parallel programming (parallelization, vectorization and their differences, compiler specific features, automatic parallelization, automatic vectorization), heterogeneous and distributed systems, multi-core and many-core architectures with shared memory, parallel constructs (parallel for, tasks, pipelines).
|
|
Learning activities and teaching methods
|
Lecture supplemented with a discussion, Task-based study method, Students' self-study, Lecture, Practicum
- Undergraduate study programme term essay (20-40)
- 40 hours per semester
- Preparation for an examination (30-60)
- 38 hours per semester
- Contact hours
- 26 hours per semester
- Practical training (number of hours)
- 26 hours per semester
|
| prerequisite |
|---|
| Knowledge |
|---|
| 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 |
| Skills |
|---|
| 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 |
| Competences |
|---|
| N/A |
| learning outcomes |
|---|
| Knowledge |
|---|
| 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 |
| Skills |
|---|
| 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 |
| Competences |
|---|
| N/A |
| teaching methods |
|---|
| Knowledge |
|---|
| Lecture |
| Practicum |
| Lecture supplemented with a discussion |
| Skills |
|---|
| Practicum |
| Individual study |
| Task-based study method |
| Competences |
|---|
| Lecture supplemented with a discussion |
| Students' portfolio |
| Individual study |
| assessment methods |
|---|
| Knowledge |
|---|
| Oral exam |
| Written exam |
| Test |
| Skills |
|---|
| Skills demonstration during practicum |
| Project |
| Continuous assessment |
| Competences |
|---|
| Written exam |
|
Recommended literature
|
-
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.
|