From your page:
Q: Would you want to attend this online school?
A: Yes (assuming I'm in your target demographic, a little more information
about who this is would be nice)
Sure, I actually had a good conversation about this with one
prospective student that I can post to my blog. I'll try to get that
up tomorrow sometime.
Q: What can I do to make it even more awesome?
A: I would love to see something like codingbat.com / spoj.pl /
codechef.com explicitly aimed at Ruby. I feel like quick immediate
feedback is very
helpful. Preset problems give direction and goals, and if they can be
immediately verified, give an incentive to keep going. As I discovered while
working on projecteuler.net, seeing little green checkmarks aggregate is
oddly addicting, and helps to motivate me to keep going. (Note that
stackoverflow does the same thing, but they use community approval as the
test, and badges / reputation for green checkmarks. I'm pretty sure Joel
Spolsky talks about why this works in his blog, but I read it a while ago
and don't care to look it up)
I really love Project Euler, though it's probably a bit different than
what I have in mind for this project. I could probably do at least
some exercises in this style though. I'll keep it in mind...
I've been trying to teach some of my friends Ruby, and my approach was to
set up challenges for them to work on, and rake tasks to test that challenge
against a test suite for it. If you have a safe online Ruby interpreter like
TryRuby, as Andrew talked about, then I think that after the initial work to
get problem sets in, then it would be in line with the idea that once you
have it set up, it should be very little effort to maintain, yet still
provide that interactive feel. For example, what if the problems at
http://www.rubyproblems.com also had auto-testing a la codingbat.com, to
verify that you did it correctly? Then you could associate with the problem,
a test suite (http://gist.github.com/425975\) load them up with the
interpreter from TryRuby or Dia (http://github.com/robgleeson/Dia\) or
something else.
I think this is a great idea. We will probably do something like a
set of exercises with tests provided, so that you can immediately see
if you're at least producing the expected behaviors. Then, we could
still have a discussion about style, edge cases, and other stuff. A
hybrid approach like this could work well...
And now you have automated homework assignments. And you have a resource
that is easy to provide to the entire community (ie you don't have to be in
the school to work on the problems). And it scales: anyone can write a
problem, and a test suite, you check them over, upload them, and there is a
brand new problem for everyone to work on, you had to do almost no work,
everyone signed up is eligible to work on it, it provides continued
exercises for alumni.
I still feel pretty strongly that 1-1 and small group dynamics are
important for teaching subtle points of development. I will produce
artifacts and attempt to run sessions that the community as a whole
can benefit from, but my main focus is still on making a big impact on
small groups at a time.
Thanks for the great suggestions. If there is anything else that
comes to mind, just let me know.
-greg
···
On Fri, Jun 4, 2010 at 5:52 PM, Josh Cheek <josh.cheek@gmail.com> wrote: