Algorithms and data structures: A systematic overview of the concepts abstract data types, stacks, queues, lists, trees, searching, sorting and recursion based on the knowledge the students acquired in the course Fundamentals of programming. Hashing, priority queues, search trees, problem trees, text searching, simple syntax analysis, encryption and automata. Algorithm analysis.
Programming: Software development methodology, programme quality, abstraction, modularisation, testing, system calls, standard libraries.
Having passed the course, the student should be able to:
- systematically test programs to discover errors,
- use abstraction as a tool to simplify the programming,
- choose appropriate algorithm to a given problem,
- describe different algorithms for searching, sorting and encryption as well as their properties,
- model problems using graphs and implement algorithms for searching in graphs,
- implement and use basic data structures,
- design and analyse simple algorithms with data structures,
in order to:
- become a good problem solver using programming,
- be able to use computational methods in application projects, and
- acquire sufficient prior knowledge to be able to take advanced courses in computer science.