Introduction to programming using Python - Liang, Y. Daniel (Pearson, 2013)