Introduction to computing and programming in python - Guzdial, Mark J. (Pearson, 2016)