Theoretical introduction to programming - Mills, Bruce (Springer-Verlag, 2006)