Exercises from the book How to Design Programs