Course: Algorithms and Programming in Cybernetic

« Back
Course title Algorithms and Programming in Cybernetic
Course code KKY/APK
Organizational form of instruction Lecture + Tutorial
Level of course Bachelor
Year of study not specified
Semester Winter
Number of ECTS credits 5
Language of instruction Czech
Status of course unspecified
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
Lecturer(s)
  • Šmídl Luboš, 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.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester