Lectures are twice a week:
-
Monday 8-10, room HC4 (Hörsalsvägen).
-
Friday 13-15, room HA4 (first three weeks), Wednesday 8-10, room HB2 (rest of course).
You can find the full schedule on TimeEdit.
Lecture notes will appear here around the time of the lecture. The topics listed for future lectures are liable to change!
-
Monday 5th November. Introduction, dynamic arrays, binary search. Reading: Weiss chapter 1 (except 1.4), 3.1-3.4 (except the parts about linked lists). Code used in the lecture: CopyString.java, CopyStringBuilder.java, CopyNaive.java, Copy100.java, CopyDouble.java. Sample input: War and Peace (run with e.g. java CopyDouble < pg2600.txt).
-
Friday 9th November, 13-15, room HA4. Complexity. Reading: Weiss chapter 2. Very optional: Finite calculus: a tutorial for solving nasty sums.
-
Monday 12th November, 8-10, room HC4. Sorting, complexity of recursive functions (if time). We didn’t have time for complexity of recursive functions and will do it on Friday. Reading: Weiss chapter 7.1-7.2, 7.6, 7.7.
-
Friday 16th November, 13-15, room HA4. Finish sorting, stacks, queues. Reading: Weiss chapter 3 (except sections about linked lists).
-
Monday 19th November, 8-10, room HC4. Trees, priority queues, binary heaps. Reading: Weiss chapter 4.1-4.2, 6.1-6.4.
-
Friday 23th November, 13-15, room HA4. Leftist heaps, binary search trees, AVL trees. Reading: Weiss chapter 6.6, 4.3-4.4, 4.6, 4.8. Web sites for data structure visualisation: Data structure visualisation, VisuAlgo.
-
Monday 26th November, 8-10, room HC4. 2-3 trees, AA trees, B-trees, tree traversals. Reading: Weiss chapters 4.6, 4.7. AA trees on Wikipedia. For those who are interested, here are some nice notes I found on 2-3 trees, which include deletion. Visualising B-trees; by setting k to 3, you get 2-3 trees.
-
Wednesday 28th November, 8-10, room HB2. Graphs, depth-first search, topological sort, and related algorithms. Reading: Weiss chapter 9.1, 9.2, 9.6.1, 9.6.4, 9.6.5.
-
Monday 3rd December, 8-10, room HC4. Breadth-first-search, Dijkstra’s algorithm, Prim’s algorithm. Optional: A* search. Reading: Weiss chapter 9.3.1, 9.3.2, 9.5.1.
-
Wednesday 5th December, 8-10, room HB2. Linked lists, skip lists. Reading: Weiss chapter 3.2.2, 3.3.3-3.3.4, 3.5, 10.4.2. Extra: Skip lists done right.
-
Monday 10th December, 8-10, room HC4. Hash tables. Optional: Bloom filters. We didn’t have time to cover Bloom filters in the lecture, but if you are interested you can read the notes. Reading: Weiss chapter 5.1-5.6. Optional: rest of chapter 5. Bloom filters on Wikipedia. Extra: A nice page about different hashing algorithms, Bloom filter calculator.
-
Wednesday 12th December, 8-10, room HB2. Tries, radix trees, suffix trees, radix sorting. Reading: Weiss chapter 12.4.2 (not the part about suffix arrays), 7.11.
-
Monday 17th December, 8-10, room HC4. The Java collections framework, summing up, the exam.