by Jon Kleinberg, Éva Tardos
Reading guide
Kleinberg and Tardos organise algorithm design around representative problems and the reasoning that makes a solution correct. The published contents cover algorithm analysis, graphs, greedy methods, divide and conquer, dynamic programming, network flow, computational hardness and randomised algorithms. Kevin Wayne's accompanying lecture slides provide a second route through the same design techniques.
Apply correctness and complexity reasoning to a concrete coding question.
Refresh the programming tools needed to implement and test an algorithm.