Algorithms, by Jeff Erickson.