Teaching
Algorithms — Michaelmas Term 2023
Role: Tutor
Course: Algorithms (Year 1, MEng Computer Science)
Term: Autumn Term 2023
Format: Six fortnightly tutorials (pairs)
Topics covered
- Asymptotic analysis — O, Ω, Θ notation; recurrence relations; Master theorem
- Sorting — mergesort, quicksort, heapsort; lower bounds for comparison sorting
- Graph algorithms — BFS, DFS, Dijkstra, Bellman-Ford, Kruskal, Prim
- Dynamic programming — memoisation, tabulation; classic problems (LCS, knapsack, edit distance)
- Greedy algorithms — interval scheduling, Huffman coding; exchange argument proofs
- Complexity — P, NP, NP-completeness; reductions; Cook-Levin theorem
Assessment
Students submitted written problem sheets before each tutorial. I marked these and used them as the basis for discussion. Final examination is set and marked by the course lecturer.
Table
Example Teaching Breakdown
A lighter table variation works well for teaching summaries where the content is structured but not data-heavy.
| Area | Focus | Format |
|---|---|---|
| Analysis | Recurrences, asymptotics | Tutorial discussion |
| Graphs | Traversal, shortest paths | Problem sheet |
| Dynamic programming | LCS, knapsack | Worked examples |