Exercises in the Pragmatic Programmer's Ruby Course