Classical data structures: stacks, queues, lists, priority queues, trees, graphs, hash tabels etc.
Algorithms and algorithms analysis: searching and sorting, optimization, pattern matching, complexity measures, theoretical limits.
Abstraction techniques: abstract data types, interface.
Problem solving techniques: recursion, hierarchical decomposition, abstraction.
After the course, the student should be able to
- use the algorithms and the data structures in the course to deal successfully with practical problems of the types occurring in labs and tests (these are all on the web),
- analyse the properties of algorithms in practical problems of the types occurring in labs and tests.
in order to
- develop computer scientific thinking and thereby get greater benefit from programming tasks,
- become a better programmer.