From: dave@prc.unisys.com (David Lee Matuszek)
Subject: Re: Computer Science ----  Undergraduate  <-- --> Graduate
Organization: Paoli Research Center - Paoli, PA
Date: Fri, 21 Aug 1992 17:00:55 GMT

In article <1992Aug21.023717.21726@dunix.drake.edu> pk38961@dunix.drake.edu (Pete Koucis) writes:
>Currently, the undergraduate computer science program I'm going through
>is not the best.  There is nothing taught on object-oriented
>programming, and the first I've heard of Scheme is on this newsgroup.
>I'm teaching myself programming on the Macintosh -- I started to learn
>the basics of C and object-oriented programming on an LPMud (which our
>university closed down; they didn't think it held any academic value
>whatsoever).  Everything I know about C and object-oriented programming
>I'm teaching myself (in fact, the two comp-sci courses I've taken didn't
>teach me much, either).
>
>Should I be very concerned to whether this is the place to get my comp
>sci education?  Or is graduate school going to be what matters?
>
>It's very frustrating to go to a school that advertises a
>"computer-intensive curriculum" and barely teaches you basics of
>programming.

I have some very strong opinions on this topic.

I know very little about your school, and won't comment on your
assertion that its CS program is not the best.  However, if you feel
you have to wait until graduate school to learn about something,
that's inexcusable.

Computer science is more than just programming and learning languages
and operating systems.  I'll say that first, to help cut down on the
flames regarding the next part of what I have to say, which is:
computer science does INCLUDE these things!  Learning to be a GOOD
programmer is absolutely fundamental.  If you don't become really
fluent in at least one good language and one good operating system
(preferably several), you've missed the boat.  These things should be
*taught*, not left to the students to "pick up"--but they should be
taught early, not as upper-division courses.  You had better be good
at them well before you get to graduate school.

There are lots of students who never do any programming beyond the
assignments, are not excited by and interested in the field, and are
probably in CS because they've heard it pays well.  These students
will never be really good; self-motivation is essential for developing
programming skill.  On the other side, a bad school can really hold a
good student back because there's also a lot to learn, and teaching it
(or at a minimum, supplying enabling conditions for learning it) is
the role the university is supposed to play.  I've known a number of
self-taught people who, while otherwise very good, had big blind spots
regarding what they did and didn't know.

Object-oriented programming is here to stay.  Any university that
doesn't teach it at the undergraduate level is doing its students a
disservice.  The same goes for programming a GUI (any GUI).  These are
becoming part of the necessary fundamental skills.

Unix is the most widespread operating system around, and still growing
in popularity.  (I like the Mac OS better, but hey, let's admit it,
it's not as widespread.)  C is an OK programming language, but it goes
hand-in-glove with Unix, and one without the other is missing
something important.  For these reasons I think it's a good idea to
teach C and Unix--but you could still have a good CS curriculum
without them.

Beyond this, an undergraduate curriculum must teach (and require) good
solid courses in data structures; analysis of algorithms; assembly
language programming; discrete mathematics; and probably a few other
fundamentals that don't come to mind immediately.  It should offer a
number of electives with content, including a fair number of "theory"
courses.

To summarize:

> Should I be very concerned to whether this is the place to get my comp
> sci education?  Or is graduate school going to be what matters?

Yes.  No.

Other opinions?

-- 
And the President put his hand on my shoulder and said: "Dan, 
I _knew_ Spiro Agnew.  He was a friend of mine.  And Dan...  
You're no Spiro Agnew!"
                -- Vice President Dan Quayle pwd
Newsgroups: comp.sys.mac.programmer