Software Carpentry: Programming with Python - Achterberg, Hakim (2017)