Structure and Interpretation of Computer Programs - exercises