home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.programming
- Path: sparky!uunet!think.com!ames!stanford.edu!CSD-NewsHost.Stanford.EDU!Xenon.Stanford.EDU!aelman
- From: aelman@Xenon.Stanford.EDU (Adam Elman)
- Subject: Re: first-year programming languages
- Message-ID: <aelman.721693402@Xenon.Stanford.EDU>
- Sender: news@CSD-NewsHost.Stanford.EDU
- Organization: CS Department, Stanford University, California, USA
- References: <1992Nov9.152324.2715@jarvis.csri.toronto.edu> <wingo-111192171446@wingosmac.apple.com> <1992Nov13.171915.26423@cbnewsc.cb.att.com>
- Distribution: na
- Date: 13 Nov 92 22:23:22 GMT
- Lines: 50
-
- bdewbank@cbnewsc.cb.att.com (bryan.d.ewbank) writes:
-
- >The first language in a computer science should be a machine language or
- >two. Perhaps a single-address machine, a double address machine, and
- >something "unusual".
-
- >The reason I say that is that computer science is different than simply
- >training coders. Any general-purpose language will do to train coders,
- >but computer science folk need to understand the tools of their trade.
-
- >Using a machine language also points out -- at a gut level -- that all
- >languages really do the same thing. it's just the syntax and the ease
- >of use that differs. It is possible to write a spell-checker in Fortran,
- >but it ain't pretty.
-
- I disagree strongly with this for two reasons:
- One: Machine language is a _serious_ turn-off to people who aren't
- already committed to computing. The assembly language class here is
- known as one of the hardest classes in the CS major -- if it was the
- first one, I think there would be very few people in Computer Science.
- Remember -- a first-year class is not just an introduction to the
- "tools of the trade" -- it should also be designed to get people
- excited about their field so that they are willing to put some time
- into it. This would have the effect of chilling interest in CS, and
- making for a VERY small group of people who would want to continue.
-
- Two: Since when was machine language really a good introduction to
- the "tools of the trade"? Machine/assembly languages introduce a
- single topic in CS -- that of memory and CPU behavior. You can
- certainly make an argument that everything in CS is based on that
- topic, but I would argue that most other topics in CS are at
- sufficiently abstract a level that machine language is _not_ a good
- intro. I have not written a program in assembly since last winter,
- and I don't expect to anytime in the near future. However, I use
- concepts such as algorithms, data structures, pointers, procedural
- programming, etc. etc. in _all_ my CS classes (including the assembly
- class, for that matter!). _Those_ topics are what first-year CS
- students should be learning.
-
- I would agree that there is a good amount of debate on whether the
- emphasis of a first-year class should be on the ideas of programming
- structures, etc., (languages such as Pascal or C) or algorithms
- (something like Scheme, Lisp, or ML). But I think that emphasizing
- the bare-bones machine aspects would be crazy.
-
- After all, we're not EE students. :-)
-
- Adam Elman
- aelman@cs.stanford.edu
-
-