Introduction to Computation and Programming Using Python 3rd Edition by John V. Guttag