Exercises for the Structure and Interpretation of Computer Programs