Francis Cianfrocca wrote:
> You're asking for views on teaching a particular programming language to
> high-schoolers. This may sound like the dumbest imaginable question, but
> have you decided exactly why your students need to be studying a
> programming
> language?
>
> Are you trying to impart some early training to young people who are
> thinking about pursuing careers as professional programmers? Are you
> thinking of it as an adjunct to a math or science courses? Are you
> thinking
> about orienting future businesspeople who will spend a lifetime
> programming
> Word and Excel macros (aarrgh, where's my razor... I can't face that
> future)? Are you thinking about people destined for technical careers for
> whom some mild familiarity with scripting can be useful? Or have you
> smply
> taken a personal interest in imparting some of your own joy of
> programming?
>
> If you know your goals and your audience's goals, then the choice of
> language(s) may be self-evident.
I believe the goals are stated in the original post. The first half of
the course, Programming I, is to teach programming concepts. The second
half, presumably by someone else, called Programming II, is in Java.

Now, unlike Hal Fulton, when *I* was in high school, high schools didn't
have computers. For that matter, major universities didn't have computer
science programs and minor universities, if they had a computer at all,
it was a punched card thingie used to do accounting. :) Of the 300 or so
people in my senior class, perhaps 10, among them of course myself,
ended up learning how to program. I think I'm the only one still doing
it, mostly because I love it too much to retire.

In any event, that was a long time ago. For teaching programming to
today's high school students, I think there are really four choices for
Programming I, given that Programming II is in Java.

1. Stay with Scheme. It's a "known quantity", it's a perfect vehicle for
learning about recursion, lists, selectors, constructors and predicates,
functional programming styles, etc. If they're going to be computer
scientists, this would be my choice.

2. Start with Java. Hey, why not? They'll be learning Java anyhow in
Programming II, and there are world-class free IDEs for it. Why make
them switch languages in mid-stream?

3. Hold on now ... I am serious. How about C? Darn near everything under
the hood in today's computers -- the Ruby interpreters, Java (and
Scheme) virtual machines, the Linux kernel, the GCC compilers -- is
written in C. It's close to the metal.

Actually those are the only choices I would have picked, since I don't
know Ruby very well yet. But hey, this is a Ruby list, so I'll say

4. Ruby. I don't think the IDEs are a problem, it is a good introduction
to programming and unlike Java and C, there's no "compiler" to wait for.
In fact, if Programming II was not in Java, Ruby would have been number
2 and there would have only been three items in the list. :)
>
> On 6/11/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.
>>
>> This year was the first year for the course, and Scheme was used.
>> 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.
>>
>> The goal of the course is to teach programming concepts in half of 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. 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.
>>
>> 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...
>>
>> So, given all of that, I have two questions for ya, list. One, do you
>> think there's any merit from teaching pretty non-technical sophomores in
>> highschool Ruby over Scheme? And two - Is there a DrScheme-eqsue
>> environment available for Ruby (screencap:
>> http://www.plt-scheme.org/software/drscheme/tour/images/editor-repl.gif)?
>>
>>
>> The DrScheme-esque thing is a big deal. The computer labs are *all*
>> Windows labs, and nothing will change this. The program serves as a sort
>> of incredibly simple IDE. In the top pane, you can put in your code, and
>> the bottom pane displays results and lets you use an irb-for-scheme type
>> thinggy.
>>
>> I appreciate any comments you can give me, list.
>>
>> Regards,
>> Nick Evans
>>
>>
>

-- 
M. Edward (Ed) Borasky

http://linuxcapacityplanning.com