Introduction to computing & programming in Python a multimedia approach - Guzdial, Mark (Prentice Hall, 2013)