Principles of Imperative Computation taken in Fall 2012 at CMU