Introduction to computation and programming using Python - Guttag, John V. (Cambridge London MIT Press, 2013)