Solutions to the exercises in the popular introductory CS book: Structure and Interpretation of Programs