Understanding Computation (O'Reilly title) by Tom Stuart