From: Matthew Harris Date: 2006-06-12T14:29:02+09:00 Subject: Re: Ruby for Highschoolers? On 6/12/06, Nicholas Evans wrote: > Howdy list, > > I'm a highschool student with a very high chance of ending up > student-teaching the Programming I course during the 07-08 schoolyear. Glad to hear you have that priviledge, as a student :) > > This year was the first year for the course, and Scheme was used. Scheme? Wow, that must really beat the students to death. > However, I've been talking to the teacher about Ruby, suggesting that > she should try it for one of the programming courses next year. > (Unfortunately, there's no ready-made curriculum for Ruby available to > her, and she is not really a techie, so that idea was shot down.) > > If I end up teaching it, I think it would be cool to cover Ruby instead > of Scheme. I'd have to develop my own curriculum, but whatever. > This is why I love Ruby. Ruby is very adventurous, and with every adventure you have a good time, and it's not so difficult to understand. Ruby is easy to explore, and really doesn't get in your way. If you want to teach the students some of the basics first, perhaps you should consider the QuickRef, which is an excellent reference (http://www.zenspider.com/Languages/Ruby/QuickRef.html). The Pickaxe also covers a lot of the language in an orderly fashion (http://www.rubycentral.com/book). > The goal of the course is to teach programming concepts in half of a > school year. If you can teach Java or C++ in half a school year (as my high school did), then you can most certainly teach Ruby in half a school year. > The things that were covered during this year's course were > writing functions to do a simple calculation, using variables, and using > cond/booleans. I don't believe that programming is about solving only one person's problems. Only focusing on a specific set of functionality for a semester seems to only restrict the students from doing what they want to do. I'd suggest walking them through the basics, handing them lessons, but also every now and then telling them to write programs which solve problems they have. Maybe one student's problem may be that he wants to calculate his monthly allowance based on his grades. Say this student wants to see how much allowance his parents will give him if he aces his US History exam. Maybe another student wants to write a small game. This can be sort of a project the students will get every 2 weeks. I feel that programming is more about having fun. > Many students struggled during the beginning of the year > with writing basic functions. Our teacher kind of blamed herself for > that, because this was her first year teaching programming, and she had > never been trained on Scheme. If the students don't learn anything, it's natural for the teacher to feel ashamed and feel that she is to be blamed. I think this is where Ruby fits in well, because Ruby has a more readable syntax than Scheme (obviously) and it has a better flow of logic as far as the student's concerned. > I think that teaching students Ruby might be a bit less...arcane. It > looks friendlier, for one. It would also open the course up to more > concepts than Scheme offers, like automagic testing, manipulating files, > object orientation, etc. Teaching OO during this course would probably > also benefit the kids later on for Java during Programming II... Teaching Ruby is good, but I suggest you stay away from metaprogramming. Students may get as confused by Ruby's metaprogramming than they did with basic Scheme. All in all, I think it's a good idea to teach high school students Ruby. I have to warn you though, I'm obviously biased :) -- Matt