Subject description - B4M01TAL

Summary of Study | Summary of Branches | All Subject Groups | All Subjects | List of Roles | Explanatory Notes               Instructions
B4M01TAL Theory of Algorithms
Roles:P Extent of teaching:3P+2S
Department:13101 Language of teaching:CS
Guarantors:Demlová M. Completion:Z,ZK
Lecturers:Demlová M. Credits:6
Tutors:Demlová M., Žukovec N. Semester:L


The course brings theoretical background of the theory of algorithms with the focus at first on the time and space complexity of algorithms and problems, secondly on the correctness of algorithms. Further it is dealt with the theory of complexity; the classes P, NP, NP-complete, PSPACE and NPSPACE are treated and properties of them investigated. Probabilistic algorithms are studied and the classes RP and ZZP introduced.

Course outlines:

1. Analyzing algorithms and problems, classifying functions by their growth rates, time and space complexity.
2. Correctness of algorithms, variants and invariants.
3. Decision problems and optimization problems.
4. Turing machine and its variants.
5. Relation between Turing machine and RAM machine.
6. Classes P and NP.
7. Reduction and polynomial reduction of problems.
8. NP-complete problems, Cook's Theorem.
9. Classes PSPACE and NPSPACE..
10. Randomized algorithms with polynomial time complexity.
11. Classes RP and ZZP.
12. Undecidable problems.
13. Reserve.

Exercises outline:

1. Determining time and space complexity of well known algorithms.
2. Verifying correctness of algorithms using variants and invariants.
3. Turing machines.
4. Polynomial reductions of problems.
5. Examples of randomized algorithms.
6. Examples of undecidable problems.


[1] Kozen, D. C.: The design and Analysis of Algorithms, Springer-Vrelag, 1991
[2] Harel, D: Algorithmics: The Spirit of Computing, Addison-Wesleyt Inc., Reading MA 2002
[3] Talbot, J., Welsh, D.: Complexity and Cryptography, Cambridge University Press, 2006


Webpage: pro ceskou verzi, for english version

Subject is included into these academic programs:

Program Branch Role Recommended semester
MPOI1_2016 Human-Computer Interaction P 2
MPOI9_2016 Data Science P 2
MPOI8_2016 Bioinformatics P 2
MPOI7_2016 Artificial Intelligence P 2
MPOI6_2016 Software Engineering P 2
MPOI5_2016 Computer Vision and Image Processing P 2
MPOI4_2016 Computer Engineering P 2
MPOI3_2016 Computer Graphics P 2
MPOI2_2016 Cyber Security P 2
MPOI1_2018 Human-Computer Interaction P 2
MPOI9_2018 Data Science P 2
MPOI8_2018 Bioinformatics P 2
MPOI7_2018 Artificial Intelligence P 2
MPOI6_2018 Software Engineering P 2
MPOI5_2018 Computer Vision and Image Processing P 2
MPOI4_2018 Computer Engineering P 2
MPOI3_2018 Computer Graphics P 2
MPOI2_2018 Cyber Security P 2

Page updated 17.6.2021 19:52:16, semester: L/2021-2, L/2020-1, Z,L/2022-3, Z/2021-2, Send comments about the content to the Administrators of the Academic Programs Proposal and Realization: I. Halaška (K336), J. Novák (K336)