Programming Language Fundamentals by Example - D.E. Stevenson (2007)