home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / lang / c / 12976 < prev    next >
Encoding:
Text File  |  1992-08-30  |  3.6 KB  |  100 lines

  1. Newsgroups: comp.lang.c
  2. Path: sparky!uunet!charon.amdahl.com!pacbell.com!att!linac!pacific.mps.ohio-state.edu!zaphod.mps.ohio-state.edu!moe.ksu.ksu.edu!usenet-feed.cc.umr.edu!mcs213c.cs.umr.edu!ckincy
  3. From: ckincy@cs.umr.edu (Charles Kincy)
  4. Subject: Pascal first, and *then* C (was: Why should POINTERS be so damn hard to understand ?)
  5. References: <1992Aug26.124652.9509@alw.nih.gov> <l9nl34INNhln@almaak.usc.edu> <485@rhlab.UUCP>
  6. Date: Sun, 30 Aug 1992 21:52:35 GMT
  7. Nntp-Posting-Host: mcs213c.cs.umr.edu
  8. Organization: University of Missouri - Rolla
  9. Sender: cnews@umr.edu (UMR Usenet News Post)
  10. Originator: ckincy@mcs213c.cs.umr.edu
  11. Message-ID: <1992Aug30.215235.9612@umr.edu>
  12. Lines: 86
  13.  
  14. In article <485@rhlab.UUCP> bkuhn@rhlab.UUCP (bmk Bradley Kuhn) writes:
  15. >In article <l9nl34INNhln@almaak.usc.edu>, ajayshah@almaak.usc.edu (Ajay Shah) writes:
  16. [...]
  17. >> IMHO Pascal is still the best first teaching language I can see.
  18. >
  19. >I think that it is time to switch to C (Wirth would tell us Modula-2 :-).
  20. >Pascal became a first language when it was the most popular language in use.
  21. >C is now the most popular, and it's time as an introductional language has 
  22. >come. Pointers could be held off until a second level course, and then the
  23. >student is not so overwhelmed by the C, since the basic concepts are already
  24. >in place, and the advanced concept of pointers can be more in focus.
  25.  
  26. I *strongly* disagree.  First of all, there is little you can do in
  27. C without using pointers.  Second of all, Pascal is higher-level and
  28. hides all the aggravations of C from the beginning programmer.  Jumping
  29. into C as a first language invites frustration and disaster.
  30.  
  31. For example, the string.  In most implementations of Pascal (well,
  32. at least Borland's), a string is a separate data type.  The string
  33. type doesn't exist in C.  In fact, it is a memory area, and must be
  34. treated as such (and treated with respect. =)
  35.  
  36. (1) For example, in Turbo Pascal you can do this:
  37.  
  38. foo:  String[40];
  39. [...]
  40. foo := 'Bubba';
  41. [...]
  42. foo := 'Tubby';
  43. [...]
  44.  
  45. (2) In C, you must do this:
  46.  
  47. #include <string.h>
  48. char[40] foo;
  49.  
  50. [...]
  51. strcpy(foo, "Bubba");
  52. [...]
  53. strcpy(foo, "Tubby");
  54. [...]
  55.  
  56. (3) Try this in C. . .
  57.  
  58. char[40] foo;
  59.  
  60. [...]
  61. foo = "Bubba";
  62. [...]
  63. foo = "Tubby";
  64. [...]
  65.  
  66. . . .and you will get screwed.  =)
  67.  
  68. To someone who hasn't had any experience programming, (1) is very
  69. straightforward and easy to master.  (2) is extremely difficult
  70. for a novice to understand.  A novice is more likely to try (3), which 
  71. results in severe frustration.
  72.  
  73. >  Actually, I found it to be quite a let down, after mastering C, to return
  74. >and finish pascal (I learned C on my own, and they made me take the extra
  75. >pascal).  I remember the day in class that pointers were introduced, I thought
  76. >to myself "THAT'S IT!  HOW USELESS!"
  77.  
  78. May be useless, but far less dangerous for someone who doesn't know
  79. how dangerous pointers can be.
  80.  
  81. >> If you have not laboured
  82. >> writing x = x + 1; thousands of times, you won't appreciate
  83. >> ++x and x++.
  84. >
  85. >Granted, there is something to be said for that.  I remember first learning
  86. >differential calculus.  We had 40 problems to find derivatives using the
  87. >limit definition.  It took me 4 hours.  The next day, the teacher told us
  88. >to " multiply by the power and drop it one".  I was P.O.'d but I will never
  89. >forget the limit definition of a derivative.
  90.  
  91. Well, in Turbo you can say Inc(x);  ;)
  92.  
  93. >That being said, I think that there is a point where we have to give 
  94. >rookies the advantages of our labors.  We don't make First year students in
  95. >CS write assembler code before they are permitted to use high-level languages.
  96.  
  97. Amen to that!!  There are too few CS people as it is.
  98.  
  99. cpk
  100.