Just in case you're interested, here is some background information on how
Scalatron came about, extracted from a private e-mail related to the topic. It
explains some of design choices in the first version:
At the moment (version 0.9.2, March 2012), Scalatron is an early and at the
moment relatively simple project. I created it for a little workshop I was going
to organize for Java-programming colleagues and friends that I wanted to get
into Scala. The first impulse was obviously to do what everyone does: find or
create a PowerPoint presentation and walk people through features, maybe with
some live coding, either (like I've seen it done at some of the user group
meetings) with the presenter coding on screen and them following along or with
them typing in examples based on something projected up front. But my prior
experience with this is that while people may listen attentively, they are
generally not fully engaged the whole time and - most importantly - unless they
discover a solution and perform an action on their own, it won't stick. They'll
go home and most of what they heard will evaporate and not be actionable for
them.
So I thought I should maybe rethink the whole "training" approach and ask about
the goal first: what is the ultimate goal of such a workshop? Obviously it is to
get people productive in the new language within some finite time, in my case a
single six or seven hour session. The primary levers here seemed to be to (a)
get people to do a lot of hands-on coding, (b) maximize the motivation to make
progress, (c) provide immediate and frequent gratification and (d) give everyone
the ability to move along the steepest learning curve their prior experience and
analytical gift permits.
Letting people write simple bots for a simple game, based on a tutorial that
walked them through an increasingly complex series of bots while introducing and
explaining the basic features of the language in a carefully chosen sequence
seemed like a better answer. I was also hoping for people's competitive
instincts to propel them through the material at the fastest possible pace;
after all, if your bot is competing with everyone else's on a projector that
everyone can see, you want to do well.
The Scalatron package was designed around these basic ideas, although there were
interesting alternatives at some points, which maybe could be explored in a
future version. But for the first version, simplicity was important, both
because my own resources are finite and because it limits what needs to be
explained. So that's where Scalatron comes from.