Programming Languages An Active Learning Approach - Lee, Kent (Springer US, 2008)