[Beowulf] Re: A start in Parallel Programming?

David Mathog mathog at caltech.edu
Wed Mar 14 11:29:51 PDT 2007

 "Robert G. Brown" <rgb at phy.duke.edu> wrote

> On Wed, 14 Mar 2007, Richard Walsh wrote:

> > Time makes fools of us all, but especially CS departments ...
> Yeah, but as David pointed out, they actively try...

I wouldn't go quite that far, rather I think the situation is
more like this:

Mechanics are trained by working on real cars, ones they will
realistically be servicing once they graduate.  They
aren't perfect cars, they don't incorporate every single good
car concept.  In fact they almost certainly incorporate a lot
of bad car concepts - all sorts of pieces are poorly designed,
inscrutably assembled, and are generally a PITA to work on. 
Consequently when the mechanic graduates there's a very high 
probability that he will be competent to work on real cars, and won't
be thrown for a loop when he encounters something other than "the
perfect car".  Ditto for plumbers, electricians, and all other people
who work in the real world.

Conversely, the CS departments like to teach with idealized didactic
computing languages.  What that language is changes from era to
era, but they are in any case notable for rarely being used to
accomplish anything significant outside of academia.  While these
languages may be ideal for conveying key CS concepts to the
students, they in no way represent the sorts of code the
students will be encountering in the real world.   That code, like
the mechanic's practice cars, are imperfect, and most of what
they will be doing when they encounter such code is dealing
precisely with the problems associated with those imperfections.

I'm kind of glad the folks who teach CS this way don't teach foreign
language too - they'd make the students learn a fair amount of Latin
before letting them enroll in a Spanish class!  Sure Spanish is based
on Latin, but "Ubi latrina est?" isn't the fastest way to find a 
bathroom in Madrid.  Well, maybe if you ask in a church.

Let's see, what language is CS is using here these days? It has
been a while since I looked: 

CS 1 (Introduction to Computation, first quarter) uses Scheme.
CS 2 (Introduction to Programming Methods, 2nd quarter) seems
  to be mostly Java.
CS 3 (Introduction to Software Engineering, 3rd quarter) uses who
  knows what, since the course info is locked up in a "moodle"
  I do not have access to.
CS 11 (Computer Language Shop, any quarter for up to 3
 quarters total) is for programming practice in any of
 several languages, including C, C++, Java, Python, and others
 but not (any type of) Fortran.

So the undergrad here who just wants to learn to program in order
to get some work done in engineering, physics, etc. would either
slog through a quarter of CS 1 and then enroll in CS 11
for a few quarters, or would maybe try to talk their way into CS 11
without having to take CS 1.  CS 1 is "strongly recommended" for
those taking CS 11, which is catalog speak for, "it is possible
to weasel out of the prerequisite". 


David Mathog
mathog at caltech.edu
Manager, Sequence Analysis Facility, Biology Division, Caltech

More information about the Beowulf mailing list