Introducing Python - Donat, Wolfram (Learn Raspberry Pi Programming with Python ; page 31-50 ; ISBN 9781430264248 9781430264255, 2014)