"Robert G. Brown" <[EMAIL PROTECTED]> 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". Regards, David Mathog [EMAIL PROTECTED] Manager, Sequence Analysis Facility, Biology Division, Caltech _______________________________________________ Beowulf mailing list, Beowulf@beowulf.org To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf