From: Gregory Brown Date: 2010-06-08T13:09:02+09:00 Subject: Re: [RFC] Ruby Mendicant University On Fri, Jun 4, 2010 at 5:52 PM, Josh Cheek wrote: > 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