Lecturer(s)
|
-
Polreich Milan, Ing. Ph.D.
|
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.
|