Data structures and algorithms

Exam topics

Here is a detailed list what topics you should know for the exam, and also what you do not need to know. Grouped by categories:

Note: An exam question (particular advanced ones) may still touch on a topic not explicitly listed (or even listed as not required to know). But if that happens, solving the question does not require prior knowledge of that topic.

Note for old students: This list is sometimes updated, so there might be differences from when you took the course! If you plan to write a reexam, please make sure you know all topics in this list, even if it was not part of your course instance.

Algorithms and programming

Sorting an array

Searching in an array or a list

Algorithms on graphs

Solving coding problems

Abstract data types and data structures

Abstract data types (ADTs)

Data structures to know

Lists: dynamic arrays, linked lists, stacks, queues

Trees in general: properties

Search trees: BSTs, 2-3 trees, AVL trees

Priority queues: binary heaps

Hash tables: separate chaining, linear probing

Graphs: properties, features and algorithms

Algorithm analysis

Order of growth

Complexity: definitions, variations

Asymptotic complexity: how to analyse it

Complexity cheat sheet

Life hack: Do not memorize the below asymptotic complexities. Instead, focus on how the algorithms and data structures work. If you understand that, you can regenerate the asymptotic complexities on demand. So just use the below to double-check what you got.