It was fun reviewing Greenfoot book and exercises, which use Greenfoot to teach programming via games. The environment is set-up, so it teaching good object-oriented programming incrementally and by example. The tool itself is clean code.
For an idea of what is in the book see the scenarios.