home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / programm / 3143 < prev    next >
Encoding:
Text File  |  1992-11-14  |  3.0 KB  |  63 lines

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