[comp.lang.misc] What is CS?

mouse@mcgill-vision.UUCP (der Mouse) (03/14/88)

[ Let's move this to comp.edu; that's really where it belongs now.
  This article is crossposted and I've tried to redirect followups there. ]

In article <1982@ho95e.ATT.COM>, wcs@ho95e.ATT.COM (Bill.Stewart) writes:
> In article <3730@megaron.arizona.edu> debray@arizona.edu (Saumya Debray) writes:
[ An attribution line seems to have been lost here ]
>>> I contend that exposing first-year students to a functional
>>> programming language does not fit that role.
[The referent for "that role" seems to have been lost.]
>> Assuming you're not referring to two-year trade schools that crank
>> out programmers, I disagree.  In my opinion, a primary purpose of a
>> CS degree program is to teach students the basic principles of
>> computation.
> Remember that 1st-year students, even CS students, are studying more
> than just CS100, and, if possible, they should have *some* usable
> programming knowledge as soon as possible.

It seems to me that the Computer Science curriculum should teach
Computer Science.  The art of programming does not seem to me to be a
part of Computer Science; it belongs somewhere else (software
engineering maybe?).  This is not to say that CS students shouldn't be
taught any programming, but rather that we should not pretend that
programming is really part of CS proper.

> While it's probably a Bad Thing to expose them to BASIC, whatever
> functional language you teach them had better be adequate for doing
> chemistry and physics homework, numerical integration for calculus,
> statistics for their psych classes, and the like.

Why?  If they want to learn a language so they can use it, they should
take a course in that language.  (Selecting that language can be
difficult; they may want to first take an overview course, which should
give them some idea of what languages are out there and what their
relative strong and weak points are.)

The Computer Science "main line" should, it seems to me, consider
languages only for how they model computation, which will probably have
nothing to do with how practical they are to use to solve problems in
chemistry, physics, etc.  Consider an analogy: natural languages.  A
linguist can be either an "applied" linguist or a "theoretical"
linguist.  An example of the former would be someone who wants to do
translation work; an example of the latter might be Noam Chomsky or
whatshisname Whorf.  It seems to me that the same is true of computer
languages.  One can study them to use them to get things done or one
can study them to understand them in their own right and how they model
computation.

>>> [ ... ]  I have just changed jobs.  In no interview was I asked
>>> whether I knew ML; in every interview I was asked if I knew C.

The employers you interviewed with were interested in practical work
instead of theory, obviously.  If they were trying to hire a
theoretician (unlikely; theory isn't big outside academia in most
fields), then it would make more sense to ask you whether you were
familiar with the various types of languages rather than asking for
specific languages.

					der Mouse

			uucp: mouse@mcgill-vision.uucp
			arpa: mouse@larry.mcrcim.mcgill.edu