I have gone back and asked various professors and the CSEE chairman at
U/Washington about using Perl as a teaching language. One of the
"problems" with Perl is it doesn't generally provide the constraints
needed in teaching CS concepts. This partly explains why they have
progressed from C to C++ to Java.
Right. This is why IMO Perl isn't really an appropriate introductory
language -- it's a little too flexible & friendly. On the other hand, when
trying to introduce students to the formal logic & math needed to start
programming, having to grapple with compilers & memory management issues
at the same time has always seemed sadistic to me.
At the same time, you get to teach OO that follows the
original model: classes define behavior (not data). I
have watched any number of non-programmer biologists take
up Perl and learn proper coding techniques rather quickly
without having to fight issues of whether e coli has an
int or long int of base pairs in its chromosome...

Nothing says that you have to show everyone all of the
tricks in the first pass.

I've thought for a while now that for freshman level CS courses, a
scripting language like <blasphemy?> Python </blasphemy> would be great
while followup classes can introduce Perl for logical flexibility and
C/C++/Java for exposure to more of the old mechanical rigor. Side benefits
of this would be exposure to some different styles (different OO versions,
different scripting languages, etc) and from that maybe a feel for when
one language would or wouldn't be appropriate for a given task.

But then, I'm not aware of an curriculum that works this way...
One problem with python is that you can't grade the
students properly if they don't all use the same editor
as you do :-) It also teaches bad habits, like burying
multiple levels of unseen data into your classes; same
problem with Java and C++ (in various forms).

Eiffel or smalltalk it might be worth a shot if you want
to really teach OO, but there is certianly a lot less
pain in Perl for the same amount of work.


--
Steven Lembark                               2930 W. Palmer
Workhorse Computing                       Chicago, IL 60647
                                           +1 800 762 1582

Reply via email to