This is a preliminary plan. Especially the distribution of topics may change.

week date time place topics material
1(12)
21/3 13:15 EA introduction, dynamic arrays, complexity slides - intro, dyn arrays, slides - complexity, CopyString, CopyStringBuilder, CopyNaive, Copy100, CopyDouble, sample text - War and Peace
22/3 13:15 EL41 complexity slides - complexity
2(13)
29/3 13:15 EL41 complexity, searching, sorting slides - complexity, slides - searching, sorting 1, Sort.hs
31/3 13:15 EC more sorting slides - searching, sorting 1, slides - sorting 2
3(14)
7/4 13:15 EC stacks, queues slides - stacks, queues, Queue.hs
4(16)
19/4 10:00 EC priority queues, binary heaps, heap sort, invariants, generics slides, code
5(17)
26/4 13:15 EE priority queues, skew heaps, binary search trees, AVL trees slides - skew heaps, slides - BST, AVL, visualisations, visualisation - skew heaps
28/4 13:15 EC Skew heaps, AVL trees slides - skew heaps, slides - BST, AVL, visualisation - AVL
6(18)
3/5 13:15 EA 2-3 trees, AA trees, B-trees slides - 2-3, AA, B-trees, code - 2-3-treeimplementation
7(19)
10/5 13:15 EA iterators, linked lists, skip lists slides, code - binary tree properties in Haskell, code - iterator for binary trees
12/5 13:15 EC hash tables slides
8(20)
17/5 13:15 EA graphs slides
9(21)
22/5 10:00 EE graphs slides
24/5 13:15 EA summary, exam preparation slides

Slides and other material, such as example code, will be published for each lecture around the time when it is given. The material is based on slides and code developed by Nick Smallbone.