- Practical Work 1 - Complexity evalutation
- Practical Work 2 - Recursion
- Practical Work 3 - Sorting algorithms
- Practical Work 4 - Dynamic memory allocation
- Practical Work 5 - Variable-length circular buffers
- Practical Work 6 - Singly-linked lists
- Practical Work 7 - Arithmetic expressions
- Practical Work 8 - Nearest value iterators
- Practical Work 9 - AVL trees