Introduction to computing and programming in python a multimedia approach - Guzdial, Mark J.; Ericson, Barbara (Pearson, 2016)