exercises from Part 1, 2 of the GridWorld Student Manual
+ Ch. 5, 10 from Think Java