Think Python [how to think like a computer scientist] - Downey, Allen B. (O'Reilly, 2012)