Introduction to Computation and Programming Using Python (MIT Press)