Practical programming an introduction to computer science using Python 3.6 - Gries, Paul; Campbell, Jennifer; Montojo, Jason (The pragmatic programmers, 2017)