Introduction to computation and programming using Python - Guttag, John. (MIT Press, 2013)