Lecturer(s)
|
-
Slánský Vlastimil, doc. Ing. Ph.D.
|
Course content
|
1. Algorithmic thinking, abstract data types. Flowchart. Computational complexity. 2. Stack, queue, solving sample tasks. 3. Priority queue, solving sample tasks. 4. List, dictionary, invertex list, solving sample tasks. 5. Sorting, searching, classification, solving sample tasks. Median, quantils. 6. Hash table, hash function, solving sample tasks. 7. Trees and tree-like structures, elementary terms. 8. Solving sample tasks using trees. 9. Graphs and graph structures. 10. Solving sample tasks using graphs. 11. Set algorithms: generating permutations, subsets, solving sample tasks. 12. Text algorithms, solving sample tasks. 13. Recursion, examples, solving sample tasks.
|
Learning activities and teaching methods
|
- Contact hours
- 52 hours per semester
- Preparation for formative assessments (2-20)
- 8 hours per semester
- Preparation for an examination (30-60)
- 30 hours per semester
- Individual project (40)
- 39 hours per semester
|
prerequisite |
---|
Knowledge |
---|
to understand simple programs written in an imperative programming language (Java, python) |
to understand the basic control flow structures of iperative programming (cycles, conditions) |
to understand the basics of computer data representation (the concept of a variable, array, data types) |
Skills |
---|
to write simple programs in an impertaive programming language |
Competences |
---|
N/A |
N/A |
learning outcomes |
---|
Knowledge |
---|
to have basic orientation in elemntary data structures (stack, queue, table, graph, tree) |
to describe the interface of elementary data structures |
to have a basic orientation in algorithms for processing of sets (permutation generation etc.) |
to have a basic orientation in text string processing algorithms (substring searchning etc.) |
to understand recursive program notation and execution |
Skills |
---|
to use elementary data structures for solving common programming tasks |
to independently desingn algorithms for solving common programming tasks |
to identify basic programming patterns in common programming tasks |
to read simple programs that use elementary data structures and to understand their function |
Competences |
---|
N/A |
teaching methods |
---|
Knowledge |
---|
Lecture |
Lecture with visual aids |
Lecture supplemented with a discussion |
Skills |
---|
Practicum |
Competences |
---|
Lecture |
assessment methods |
---|
Knowledge |
---|
Written exam |
Test |
Continuous assessment |
Skills |
---|
Skills demonstration during practicum |
Competences |
---|
Written exam |
Recommended literature
|
-
Lafore, Robert. Data structures & algorithms in Java. Corte Madera : Waite Group Press, 1998. ISBN 1-57169-095-6.
-
Mareš, Martin; Valla, Tomáš. Průvodce labyrintem algoritmů. 1. vydání. 2017. ISBN 978-80-88168-19-5.
-
Ryant, Ivan. Algoritmy a datové struktury objektově. Vydání první. 2017. ISBN 978-80-270-1660-0.
|