Programming Abstractions exercises for Ch. 6 of the Stanford CS106b course