Course: Algorthms

« Back
Course title Algorthms
Course code UAI/509
Organizational form of instruction Lecture + Lesson
Level of course Bachelor
Year of study not specified
Frequency of the course In each academic year, in the winter semester.
Semester Winter
Number of ECTS credits 6
Language of instruction Czech
Status of course Compulsory, Compulsory-optional
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
Lecturer(s)
  • Geyer Jakub, Mgr. Ph.D.
  • Valdman Jan, XXX MSc.
Course content
Topics: 1. Introduction to algorithms, definitions, basic approaches. 2. Temporal and spatial complexity. 3. Data structures: linked lists, stack, queue, heap. 4. Sorting and searching algorithms. 5. Search trees: BST, AVL, Red-Black trees. 6. Graph algorithms: representation of a graph in a computer, traversing a graph, the shortest path. 7. Graph algorithms: minimal spanning tree, flows in a graph. 8. String-searching algorithms. 9. Algorithm design: Divide and conquer. 10. Algorithm design: Greedy algorithm. 11. Algorithm design: Dynamic programming. 12. Difficult problems: NP-complete problems, approximation algorithms. Content of tutorials/seminar: The content of the seminar corresponds to the topics from the lectures.

Learning activities and teaching methods
Monologic (reading, lecture, briefing), E-learning
  • Semestral paper - 70 hours per semester
  • Preparation for credit - 40 hours per semester
  • Preparation for exam - 40 hours per semester
Learning outcomes
The aim of the course is to acquaint students with basic algorithms and methods of algorithm design. Students will actively master the basic algorithmic constructions and procedures for the design of algorithms. During the course, they will get acquainted with basic abstract data types (array, list, tree, dictionary), with frequently used algorithms (sorting, graph algorithms, string-searching algorithms) and with algorithm design methods (divide and conquer, greedy algorithm, dynamic programming, etc.).
Students will understand the basic principles of algorithms; they will create simple algorithms and use them when solving their programmers' problems.
Prerequisites
Prerequisites, preconditions: Basic knowledge of mathematics in the scope of high school curriculum.

Assessment methods and criteria
Written examination

Participation in the exercise, reporting the tasks in the exercise, preparation of a seminar paper (creation of a program in any programming language including the given algorithm), passing the written final test.
Recommended literature
  • CORMEN, Thomas H. Algorithms unlocked. Cambridge, MA: MIT Press, 2013. ISBN 978-0262518802..
  • EDMONDS, J. How to Think about Algorithms, Cambridge: Cambridge University Press, 2008. ISBN 978-0521614108..
  • ERICKSON, Jeff. Algorithms. 1. Urbana-Champaign, USA: Independently published. (dostupné na https://jeffe.cs.illinois.edu/teaching/algorithms/). ISBN 978-1792644832..
  • KLEINBERG, J., TARDOS, E. Algorithm design. 3. vyd. Boston: Pearson, 2011. ISBN 978-0273752332..
  • MAREŠ, M. a T. VALLA. Průvodce labyrintem algoritmů. Praha: CZ.NIC, z.s.p.o., 2017. CZ.NIC. (dostupné na: https://knihy.nic.cz/files/edice/pruvodce_labyrintem_algoritmu.pdf). ISBN 978-80-88168-19-5..
  • MILKOVÁ, E., BERÁNEK, L., VOBORNÍK, P. Algortihms: Explanation, Exercises and Visualization of the Basic Algorithmic Constructions. Gaudeamus, Hradec Králové, 2009. ISBN 978-80-7041-635-8..
  • PROKOP, Jiří. Algoritmy v jazyku C a C++. 3., aktualizované a rozšířené vydání. Praha: Grada, 2015. Průvodce (Grada). ISBN 978-80-247-5467-3..
  • SEDGEWICK, Robert. Algoritmy v C. Praha: SoftPress, 2003. ISBN 80-86497-56-9..
  • WRÓBLEWSKI, Piotr. Algoritmy. Brno: Computer Press. 2015. ISBN 978-80-251-4126-7..


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