To obtain basic knowledge about data structures, algorithmic design, and
worst-case time complexity.
Concerning data structures:
Linear data structures:
stacks, queues, linked lists.
Tree-like data structures:
binary trees, binary search trees, heaps, red-black trees or AVL-trees.
Graphs-like data structures.
the divide-and-conquer programming paradigm,
big-Oh notation, worst-case time complexity, amortized analysis.
Form of tuition
Lectures: 4 hours per week (in total 28 hours).
Exercise classes: 4 hours per week (in total 28 hours).
There is also obligatory practical work.
Type of assessment
A mid-term exam (bot obligatory) and a final exam.
The written exam contributes for at least 80% to the final grade.
Moreover, there are probably obligatory programming assignments
contributing for at most 20% to the final grade.
Introduction to Algorithms
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford
Stein, MIT Press 2009.
recursive procedures, arrays, elementary Java.
For instance the course Programming (X-400554) of year I of the Bachelor
Concerning discrete mathematics:
some familiarity with mathematical reasoning in general and induction in
For instance the course Logic and Sets (X_401090) of year I of the
Bachelor Computer Science.
Moreover elementary knowledge of graphs.
For instance the course Networks and Graphs of year I of the Bachelor
2CS, 2BA, 3IMM, 3LI, 3W, 3Ect