02-713 Algorithms & Data Structures (for Scientists)

Many of these lectures are based on your book Algorithm Design by Kleinberg and Tardos. See it for more detail.

Tentative Schedule:

#TopicsLinks & Reading
1Case Study: Minimum Spanning tree
  • Big ideas: Distinction between Problems and Algorithms
  • Prim's Minimum spanning tree algorithm
  • Graphs, linked lists, arrays, structures
  • Priority queues, d-Heaps
AD Ch. 1, 2.5, 4.5, 3.1
2
  • Intro to Python
  • Kruskal's MST algorithm
  • Union-Find data structures
AD Ch. 2, 4.6
3Graph Algorithms I
  • Breadth-first search, queues
  • Depth-first search, stacks
  • Topological sorting
  • Bipartite testing
AD Ch. 3
4Graph Algorithms II
  • Shortest Path (Dijkstra's algorithm)
  • Shortest Paths (Bellman Ford)
  • Large-scale heuristic search with A*
AD 4.4, 6.8
5Divide and Conquer Algorithms
  • Big idea: Recursion & Self-similarity
  • Finding closest pair of points
  • Mergesort
  • Counting inversions
  • Solving Big-Oh recurrences
AD 5.1-5.2,5.4,5.6
6Dictionary Data Structures
  • Splay trees
7Dynamic Programming Algorithms
  • Big idea: parameterized self-similarity
  • Subset Sum
  • Sequence Alignment
  • RNA Folding
AD 6.1-5
8More Dynamic Programming Algorithms
  • Segmented least squares
  • Matrix Multiplication
  • Optimal Binary Search trees
  • Local alignment
AD 6.6-6.8
9Network Flow Algorithms
  • Big idea: Reduction
  • Network flow and matching
  • Using network flow to solve non-flow problems
  • Circulation with demands
AD 7.1-7.3,7.5,7.7,7.8
10Linear and Integer Programming Algorithms
  • The linear and integer programming problems
  • Network flows with weights and other extensions
  • Other applications of linear and integer programming
AD 11.6 (brief discussion)
11NP-completeness
  • Big idea: Turning proofs of impossibility into programming
  • Theory of P, NP, NP-completeness, and the P=NP question
  • Proof of NP-hardness of SAT, Coloring, TSP
AD 8.1-8.7
12Summary
  • Summary

"AD" indicates sections in the Algorithm Design textbook.