Quick review of recurrence relations
Beyond heaps: meldable heaps and applications
Beyond balanced search trees: splay trees and amortized performance,
variations with lazy strategies
Equivalence relations: Union-Find and applications
Graph search and traversal: review of dfs and bfs, topological sorting,
connectivity
Elementary computational geometry: simplicity and convexity testing,
point inclusion, polygon intersection, convex hulls
Greedy algorithms: heuristics (travelling salesperson) and performance
bounds (knapsack)
Divide and conquer: applications to computational geometry (closest points,
convex hulls) and sorting (sorting networks, mergesort), fast Fourier
transform
Iterative methods: bipartite matching, network flow
Dynamic programming (as time allows)
In addition, some extra topics will be touched on: randomized algorithms
and their analysis, online algorithms, and others.