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