home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / sys / mac / programm / 14068 < prev    next >
Encoding:
Internet Message Format  |  1992-08-16  |  7.8 KB

  1. Xref: sparky comp.sys.mac.programmer:14068 misc.education:3123 soc.college:3608
  2. Newsgroups: comp.sys.mac.programmer,misc.education,soc.college
  3. Path: sparky!uunet!snorkelwacker.mit.edu!mojo.eng.umd.edu!disney.src.umd.edu!eng.umd.edu!clin
  4. From: clin@eng.umd.edu (Charles C. Lin)
  5. Subject: Re: Computer Science Programs
  6. Message-ID: <1992Aug16.230658.9890@src.umd.edu>
  7. Sender: news@src.umd.edu (C-News)
  8. Reply-To: clin@eng.umd.edu (Charles C. Lin)
  9. Organization: College of Engineering, Maryversity of Uniland, College Park
  10. References:  <k1HePB1w164w@tosh.UUCP>
  11. Date: Sun, 16 Aug 1992 23:06:58 GMT
  12. Lines: 150
  13.  
  14. In article <k1HePB1w164w@tosh.UUCP>, steve@tosh.UUCP (Steve Wilson) writes:
  15. > Hello.
  16. > I am looking for descriptions of Computer Science programs at the different
  17. > Colleges and Universities around the country.
  18. > I'm interested in learning what languages are taught; whether there is an
  19. > emphasis on mathematics and physics or programming. In addition, I would
  20. > like to know how the faculty are (research or teaching oriented), how
  21. > plentiful the resources (i.e., are different computer environments available
  22. > for use by undergrads to broaden exposure), and how the campus culture is?
  23. > Recommendations and additional information are welcome, so don't be afraid
  24. > to tell me about your alma mater.
  25.  
  26.    Well, since this topic has already had some responses on the
  27. net, I'll keep it there.
  28.  
  29.    Let's assume that you are talking about the undergrad schools
  30. and that perhaps you may be a high school student.   First
  31. of all, some schools make the distinction between computer
  32. science and computer engineering.   Computer science usually
  33. refers to software and more theoretical aspects of computer
  34. science.  Computer engineeering typically leans more to hardware
  35. and is often a subgroup of electrical engineering.  Sometimes
  36. both electrical engineering and computer science are under
  37. the same department (Michigan and UC Berkeley come to mind).
  38.  
  39.    I'll assume you are interested in computer science.  I
  40. once talked to a prefrosh (high school senior or earlier)
  41. about the computer science program.  Among the questions
  42. that most people worry about are what computers will be
  43. used, if one can get onto a supercomputer,  what languages
  44. are taught.  There are more general questions as to whether
  45. professors care about teaching, how dorm life, is everyone
  46. cutthroat, are you just a number in the system.  Amazingly
  47. most people grumble about it for a year, and then these
  48. questions seem to disappear.
  49.  
  50.    Let's start (I'm sure I'll end up repeating some of
  51. Jason's post) by looking at languages.   Most schools seem
  52. to teach Pascal these days.   It's not so much that Pascal
  53. is going to be the most useful language you'll encounter
  54. (C is, at least it's the one most people expect you to learn
  55. eventually) or that the idea of computer science departments
  56. is solely to teach languages, it's the ability to write meaningful
  57. programs in that language.  As an analogy, it's more important
  58. to express one's ideas clearly than it is to learn French
  59. or Japanese or any specific language.   It's what you say,
  60. not the language you say it, that is most important.  Still,
  61. Pascal is used since it lets you get away with less than C,
  62. and keeps you more disciplined.  Some schools (MIT) prefer
  63. other languages like Scheme (a variant of LISP) as they
  64. prefer trying to get people to use more functional languages,
  65. which seem more elegant to professors.
  66.  
  67.    There should some mixture of math and programming in
  68. most of your CS courses.  The math is typically understanding
  69. how "complex" a program is, or how "efficient" some algorithm
  70. is.   Programming typically (with some exceptions) is machine
  71. independent.  That is, you're more likely to create some
  72. "data structure" which is something of an abstract object,
  73. rather than to manipulate the I/O ports, or doing
  74. anything with a memory map.  The idea is to get general
  75. principles across, and let you figure out architecture
  76. specific things on your own.  It's not that the architecture
  77. isn't important, but by the time you learn how the Apple
  78. functions, someone will come out with A Mac, or a Next,
  79. and you'll have to start the learning procedure all over again.
  80. Ideas such as data structures are more "permanent".  So
  81. the undergraduate courses tend to focus on ideas that are
  82. not immediately practical, but more theoretical, building
  83. up a theoretical base.
  84.  
  85.    As far as getting a computer, unless you plan efficiently,
  86. or can't afford one, getting a computer is a great help.
  87. You don't have to wait in lines, go away from the dorm
  88. during odd hours, or anything.  the only problem is
  89. dealing with roommates and friends who may want to
  90. borrow the computer.  Schools typically have discounts
  91. on personal computers, and you might even have a dorm
  92. that allows you to hook up to the network.
  93.  
  94.     Faculty (at least in research universities) are typically
  95. researchers.  They aren't always hierd because they make
  96. the most lucid lecturing, but because they're solid researchers.
  97. Schools in the sciences and engineering build reputations
  98. on research, not on teaching (colleges being the exceptions).
  99. Still, you get a few who do feel the teaching to be very
  100. important.  Most likely you'll find someone who's good
  101. or OK, but not completely incompetent nor excellent.
  102. This is where self-motivation, and learning on your
  103. own takes place.  A lot of profs. no longer think it
  104. is their responsibility to help you learn every little
  105. detail.  You have to be willing to put in effort, and
  106. be willing to get stuck, and think out some problems
  107. for long periods of time.  Essentially, you need to
  108. learn how to think computer science.  How to reason
  109. about concepts.   I think few people are introspective
  110. enough (even profs.) at being able to describe why
  111. they are so good at the topic, which means that they
  112. are sometimes unable to use that experience and pass it
  113. on to the students.
  114.  
  115.     In any case, very few students seem to want to interact
  116. with the faculty.  Few of them show up to office hours
  117. (often for fear that the prof. will see how stupid they
  118. are).  More are interested in what will show up on the
  119. test, and how they will be graded.  It's not always
  120. the most heartening thing for a prof. to hear.
  121.  
  122.     Let me quickly talk about my alma mater (I'm afraid
  123. that despite tme being there only two years ago, some 
  124. of what I say may be dated).  You typically start learning
  125. Pascal on Macs.  Then you take a course in some of the
  126. math needed for CS (induction proofs, divide and conquer)
  127. and how to do simple analysis of the complexity of your
  128. algorithms.  There is a course on scientific computation
  129. which is in that awful language, Fortran.  Then you take
  130. a course in discrete math, which is a hodgepodge of
  131. stuff.  Elementary probability, induction proofs, logic,
  132. all of which is fairly math oriented.  Then there is a course
  133. on data structures (how to arrange data in efficient manner),
  134. a course on computational complexity (a mathematical model
  135. of a computer) and what computers can and can't calculate,
  136. a course in computer architecture (closest thing to electrical
  137. engineering), a course in analysis of algorithms, and some
  138. project courses at the senior level (compilers, AI, operating
  139. systems, databases, etc.).  The project courses usually
  140. have a lot of programming in them.  
  141.  
  142.    Typically, by the time you take data structures, the course
  143. will begin to focus on C, and perhaps to your dismay, they
  144. won't really teach it (a lot of other schools do this).
  145. Actually, this has been partially remedied by a four week
  146. course on C.  However, you should try to learn it as soon
  147. as you can (it's close enough to Pascal that it won't seem
  148. to foreign, but far enough away to not make it a trivial
  149. task).   Cornell has typically been called a theory school,
  150. though that was more in the old days.   There is a current
  151. effort to cross some courses over with electrical engineering
  152. if you are more interested in hardware aspects.
  153.  
  154.    Anyway, that's my $1.20 worth.
  155.  
  156. --
  157. Charles Lin 
  158. clin@eng.umd.edu
  159.  
  160.