Structure and Interpretation of Computer Programs Taken in Fall 2013.