Course: Applications of Data Structures

« Back
Course title Applications of Data Structures
Course code KIV/ADT
Organizational form of instruction Lecture + Tutorial
Level of course Bachelor
Year of study not specified
Semester Summer
Number of ECTS credits 5
Language of instruction Czech
Status of course Compulsory
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
Lecturer(s)
  • Vítová Natálie, Ing. M.Sc.
  • Konopík Miloslav, Ing. Ph.D.
  • Sido Jakub, Ing.
Course content
1. Problem, algorithm, program. Programming language. Program execution. 2. Generic programming. Recursve programs. 3. Computational complexity. O-notation, Omega-notation, Theta-notation. Practical examples. 4. Sorting - algoritms, their complexity. 5. Abstract data types, ADT Stack. 6. ADT Queue. Using ADTs for solving problems. 7. List. Iterator. 8. Set. Table. Dictionary. Hash function. 9. Ordered data structures. 10. Graphs, solving problems by breadth-first search. 11. Graphs, solving problems by depth-first search. Topological ordering. 12. Priority queue. Paradigm and properties of greedy algorithms. 13. Composite data structures and their application for problem solving.

Learning activities and teaching methods
  • Contact hours - 52 hours per semester
  • Undergraduate study programme term essay (20-40) - 39 hours per semester
  • Preparation for an examination (30-60) - 26 hours per semester
  • Preparation for comprehensive test (10-40) - 13 hours per semester
prerequisite
Knowledge
to understand the representation of numbers, characters and strings in a computer
to understand the work with user input and output, including using input and output files
to describe the process of exection of a simple program on a computer
to decompose problems into simpler problems and to write the decomposition down in a form of a program with subroutines
to understand the meaning of subroutine parameters and return value
Skills
to build simple computer programs in an imperative programming language
to perform elemntary mathematical derivations
to interpret simple computer programs and to understand their function from the source code
Competences
N/A
N/A
N/A
N/A
N/A
N/A
learning outcomes
Knowledge
to describe the function of basic data structures from the user point of view
to interpret expressions on computational complexity of algorithms in terms of O, Omega and Theta notation
to determine the expected computational complexity of operations performed on basic data structures
Skills
to analyze simple programs and to determine their computational complexity
to build algorithms that use exiting implementations of basic data structures
to build compound data structures tailored for particular programming tasks
to choose appropriate data structures for solving programming tasks
Competences
N/A
N/A
N/A
teaching methods
Knowledge
Lecture
Lecture with visual aids
Lecture supplemented with a discussion
Practicum
E-learning
Task-based study method
Self-study of literature
Discussion
Skills
Lecture
Lecture with visual aids
Lecture supplemented with a discussion
Practicum
E-learning
Task-based study method
Self-study of literature
Competences
Lecture
Lecture with visual aids
Task-based study method
Practicum
assessment methods
Knowledge
Oral exam
Written exam
Combined exam
Test
Continuous assessment
Skills
Oral exam
Written exam
Combined exam
Test
Seminar work
Continuous assessment
Competences
Oral exam
Written exam
Combined exam
Test
Recommended literature
  • Cormen, Thomas H. Introduction to algorithms. 3rd ed. Cambridge : MIT Press, 2009. ISBN 978-0-262-03384-8.
  • Hunt, Andrew; Thomas, David. Programátor pragmatik : jak se stát lepším programátorem a vytvářet kvalitní software. Vyd. 1. Brno : Computer Press, 2007. ISBN 978-80-251-1660-9.
  • Kučera, Luděk. Kombinatorické algoritmy. 2. nezm. vyd. Praha : SNTL, 1989.
  • Mareš, Martin; Valla, Tomáš. Průvodce labyrintem algoritmů. 1. vydání. 2017. ISBN 978-80-88168-19-5.


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