[Beowulf] Re: A start in Parallel Programming?
Peter St. John
peter.st.john at gmail.com
Wed Mar 14 11:47:29 PDT 2007
To follow the example of the automotive mechanic: Universities think they
are producing Mechanical Engineers, not automobile mechanics. Duke does not
have any courses (that I knew of when I was there) good for college credit,
that taught repairing real cars, and Duke is not where I'd send a kid who
was dedicated to becoming the best automobile mechanic he could be.
A kid can get MS certification in something enormously cheaper than going to
any residential college. One hopes that a University CS Department offers
something rather more, and rather else.
Generally, we learn the minutiae required for a job, on the job; and the
concenptual framework for pursuing more challenging jobs, at University.
My first job off-campus was as a mathemetician. I was given K&R and told to
learn C, Unix, and commodities forecasting ("subscribe to the Wall Street
Journal"). Rather a lot to learn on the job for a summer job. I did not have
those skills, but I had the skills to acquire those skills. (Some.)
And I didn't appreciate unix **at all** at the time; I didn't really have a
percept of an operating system, or development environment. I just wanted a
command line to invoke a compiler. It was my **next** job, FORTRAN on
VM/CMS, that I learned what a great development environment was, and what
unix had done for me. That's when I formulated the idea that you want to
learn two of something to appreciate the essence of the something. Learn C
and LISP, and you appreciate Programming Languages; learn matrix
mulitplication and permutation composition, and you appreciate Nonabelian
On 3/14/07, David Mathog <mathog at caltech.edu> wrote:
> "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
> Beowulf mailing list, Beowulf at beowulf.org
> To change your subscription (digest mode or unsubscribe) visit
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Beowulf