Practical Programming: An Introduction to Computer Science Using Python 3 (Pragmatic Programmers)