Christopher Smith on 22 Sep 2003 21:04:02 -0000


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [ALACPP] Advice for a teacher, please


So, I finally am getting around to weighing in on this topic. First of
all, I'd say that in general at the high school level you don't really
need to get into the "deep" levels of any particular programming
language. Students should be be good enough with a language to write a
non-trivial program without requiring language help, but beyond that I'd
say you're well in to the kind of "practical knowledge" area that may
prove irrelevant by the time they are in the real world.

I'd echo most of what's been said here about infecting students with the
notion that programming can be fun. I tend to look at high school
programming courses as mostly instruction in how to do problem solving.
I will never get over my shock in University while watching at least 50%
of my CS class literally not knowing where to start with their lab work.
If you gave them a program skeleton, they could work their way through
to a solution, but they had no ability to build that skeleton. I think
*that* is the skill that you should focus on at the high school level,
because it's got a very broad range of applicability even outside of
computer science.

On the language side, I'd definitely start with a high level language.
Maybe at an advanced level it might be time to start going in to the
"this is how all the magic is done underneath it all" level, but it's
probably not the way to start out. Java is not a bad teaching language
in this context, although I think using things like "Squeak" might be
even better. You might want to check it out as it very quickly will let
your students do "fun" multimedia work, while at the same time get them
going in the direction of thinking about program structure.

http://www.squeak.org/

Alan Kay has actually setup a whole foundation for helping folks use
Squeak in an educational setting (some of it is targeted at folks
younger than your students):

http://www.squeakland.org/

In general, I consider C++ a poor teaching language. I recently
described C++ to someone as a "postmodern" language, in much the same
light as Perl. It does not present any particular programming technique
in a very pure form, but rather draws it's strengths from letting you
combine multiple techniques. I think it makes a lot more sense for
students to explore each technique, and get comfortable with each of
them, before having them mix them all together. I'd think ideally it'd
be good for students to learn Smalltalk, Scheme, and probably Pascal
before throwing them into the C++ world. In a more practical world,
perhaps Java, Scheme and C would do.

-- 
Christopher Smith <x@xxxxxxxx>
_______________________________________________
alacpp mailing list
alacpp@xxxxxxxxxxx
http://lists.ellipsis.cx/mailman/listinfo/alacpp