Theoretical Introduction to Programming - Mills, Bruce (Springer London, 2006)