Think Java : How to think like a computer scientist - Downey, Allen B. (Green Tea Press, 2016)