On Jun 11, 2006, at 23:29, Matthew Harris wrote: > On 6/12/06, Nicholas Evans <OwlManAtt / owlmanatt.com> 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. > I thought I needed to add my $0.02 here. My background - Medical Informaticist with an undergrad in Engineering/Programming. Program in 16+ languages on a fairly regular basis. Love Ruby. This being said, Scheme is one of those languages that do more than teach you how to write lines of code. Many can write programs, however, the design and understanding to put together interfaces, applications, etc. take a bit more understanding. Also, computer languages are like tools in a tool box. Many mechanics like programmers only use one tool. We have computers, calculators and other helpful devices, however, one still needs to understand the math, science, biology, etc. fundamentals behind these devices to be fully effective. > 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. Scheme is very good here. > > 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. > One can have fun with programming. However, the scope of such courses are generally fundamentals in nature. >> 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. > Here is an example of poor programming principles and understanding. > 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 :) > I use Ruby for quite a few things and am quite happy with its functionality. I too am biased in many ways, however, stepping back and looking at the larger picture one needs to keep in mind the scope of the project. > -- > Matt > -Bob-