CS 561: Syllabus

  • 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.

    Back to CS 561 home page