One page per lab: the running order of the lecture, what to say at each beat, what goes on the board, live demos to project, and how the lab problems map back onto the material. Built from the syllabus, the lecture notes repository and the live problem sets in Polygon.
How the course works, the cost of an algorithm, GCD, fast powers, the sieve, factorization and the stack.
Stack, queue, deque and the linked list — with bracket matching and two breadth-first searches.
Exact search, the nearest element on each side, and binary search on the answer.
Insert, search and delete, the three traversals, and why balance decides the cost.
The array-backed heap, insert and extract in O(log n), heap sort and the priority queue.
Why there is more than one sort, bubble sort and its limits, and quick sort — pivot, partition, and the O(n²) worst case.
Merge sort — stable, guaranteed O(n log n) — and divide and conquer beyond sorting: inversions, quick select, maximum subarray.
The polynomial hash, prefix hashes, Rabin–Karp search, distinct substrings and collisions.
What π[i] means, computing it in O(n), KMP with pattern + '#' + text, and periods, borders and rotations.
Three ways to store a graph, BFS level by level, then DFS — components, bipartite check, cycles, topological sort, SCC and bridges.
Kruskal with disjoint set union, Prim, the cut and cycle properties.
Dijkstra, Bellman–Ford with negative cycles, Floyd–Warshall for all pairs.
Lab N is published in the week its material is taught, and defended later — the syllabus calls that contest LabContest N. The gap is two weeks up to the midterm and three after it, because week 9 is the midterm and week 13 the endterm, and no defence runs in either.
Labs 11 and 12 are defended together in week 15 — that is how the syllabus lists them, as a single LabContest11-12 covering spanning trees and shortest paths.