home *** CD-ROM | disk | FTP | other *** search
- Xref: sparky comp.sys.mac.programmer:14068 misc.education:3123 soc.college:3608
- Newsgroups: comp.sys.mac.programmer,misc.education,soc.college
- Path: sparky!uunet!snorkelwacker.mit.edu!mojo.eng.umd.edu!disney.src.umd.edu!eng.umd.edu!clin
- From: clin@eng.umd.edu (Charles C. Lin)
- Subject: Re: Computer Science Programs
- Message-ID: <1992Aug16.230658.9890@src.umd.edu>
- Sender: news@src.umd.edu (C-News)
- Reply-To: clin@eng.umd.edu (Charles C. Lin)
- Organization: College of Engineering, Maryversity of Uniland, College Park
- References: <k1HePB1w164w@tosh.UUCP>
- Date: Sun, 16 Aug 1992 23:06:58 GMT
- Lines: 150
-
- In article <k1HePB1w164w@tosh.UUCP>, steve@tosh.UUCP (Steve Wilson) writes:
- > Hello.
- >
- > I am looking for descriptions of Computer Science programs at the different
- > Colleges and Universities around the country.
- >
- > I'm interested in learning what languages are taught; whether there is an
- > emphasis on mathematics and physics or programming. In addition, I would
- > like to know how the faculty are (research or teaching oriented), how
- > plentiful the resources (i.e., are different computer environments available
- > for use by undergrads to broaden exposure), and how the campus culture is?
- >
- > Recommendations and additional information are welcome, so don't be afraid
- > to tell me about your alma mater.
- >
-
- Well, since this topic has already had some responses on the
- net, I'll keep it there.
-
- Let's assume that you are talking about the undergrad schools
- and that perhaps you may be a high school student. First
- of all, some schools make the distinction between computer
- science and computer engineering. Computer science usually
- refers to software and more theoretical aspects of computer
- science. Computer engineeering typically leans more to hardware
- and is often a subgroup of electrical engineering. Sometimes
- both electrical engineering and computer science are under
- the same department (Michigan and UC Berkeley come to mind).
-
- I'll assume you are interested in computer science. I
- once talked to a prefrosh (high school senior or earlier)
- about the computer science program. Among the questions
- that most people worry about are what computers will be
- used, if one can get onto a supercomputer, what languages
- are taught. There are more general questions as to whether
- professors care about teaching, how dorm life, is everyone
- cutthroat, are you just a number in the system. Amazingly
- most people grumble about it for a year, and then these
- questions seem to disappear.
-
- Let's start (I'm sure I'll end up repeating some of
- Jason's post) by looking at languages. Most schools seem
- to teach Pascal these days. It's not so much that Pascal
- is going to be the most useful language you'll encounter
- (C is, at least it's the one most people expect you to learn
- eventually) or that the idea of computer science departments
- is solely to teach languages, it's the ability to write meaningful
- programs in that language. As an analogy, it's more important
- to express one's ideas clearly than it is to learn French
- or Japanese or any specific language. It's what you say,
- not the language you say it, that is most important. Still,
- Pascal is used since it lets you get away with less than C,
- and keeps you more disciplined. Some schools (MIT) prefer
- other languages like Scheme (a variant of LISP) as they
- prefer trying to get people to use more functional languages,
- which seem more elegant to professors.
-
- There should some mixture of math and programming in
- most of your CS courses. The math is typically understanding
- how "complex" a program is, or how "efficient" some algorithm
- is. Programming typically (with some exceptions) is machine
- independent. That is, you're more likely to create some
- "data structure" which is something of an abstract object,
- rather than to manipulate the I/O ports, or doing
- anything with a memory map. The idea is to get general
- principles across, and let you figure out architecture
- specific things on your own. It's not that the architecture
- isn't important, but by the time you learn how the Apple
- functions, someone will come out with A Mac, or a Next,
- and you'll have to start the learning procedure all over again.
- Ideas such as data structures are more "permanent". So
- the undergraduate courses tend to focus on ideas that are
- not immediately practical, but more theoretical, building
- up a theoretical base.
-
- As far as getting a computer, unless you plan efficiently,
- or can't afford one, getting a computer is a great help.
- You don't have to wait in lines, go away from the dorm
- during odd hours, or anything. the only problem is
- dealing with roommates and friends who may want to
- borrow the computer. Schools typically have discounts
- on personal computers, and you might even have a dorm
- that allows you to hook up to the network.
-
- Faculty (at least in research universities) are typically
- researchers. They aren't always hierd because they make
- the most lucid lecturing, but because they're solid researchers.
- Schools in the sciences and engineering build reputations
- on research, not on teaching (colleges being the exceptions).
- Still, you get a few who do feel the teaching to be very
- important. Most likely you'll find someone who's good
- or OK, but not completely incompetent nor excellent.
- This is where self-motivation, and learning on your
- own takes place. A lot of profs. no longer think it
- is their responsibility to help you learn every little
- detail. You have to be willing to put in effort, and
- be willing to get stuck, and think out some problems
- for long periods of time. Essentially, you need to
- learn how to think computer science. How to reason
- about concepts. I think few people are introspective
- enough (even profs.) at being able to describe why
- they are so good at the topic, which means that they
- are sometimes unable to use that experience and pass it
- on to the students.
-
- In any case, very few students seem to want to interact
- with the faculty. Few of them show up to office hours
- (often for fear that the prof. will see how stupid they
- are). More are interested in what will show up on the
- test, and how they will be graded. It's not always
- the most heartening thing for a prof. to hear.
-
- Let me quickly talk about my alma mater (I'm afraid
- that despite tme being there only two years ago, some
- of what I say may be dated). You typically start learning
- Pascal on Macs. Then you take a course in some of the
- math needed for CS (induction proofs, divide and conquer)
- and how to do simple analysis of the complexity of your
- algorithms. There is a course on scientific computation
- which is in that awful language, Fortran. Then you take
- a course in discrete math, which is a hodgepodge of
- stuff. Elementary probability, induction proofs, logic,
- all of which is fairly math oriented. Then there is a course
- on data structures (how to arrange data in efficient manner),
- a course on computational complexity (a mathematical model
- of a computer) and what computers can and can't calculate,
- a course in computer architecture (closest thing to electrical
- engineering), a course in analysis of algorithms, and some
- project courses at the senior level (compilers, AI, operating
- systems, databases, etc.). The project courses usually
- have a lot of programming in them.
-
- Typically, by the time you take data structures, the course
- will begin to focus on C, and perhaps to your dismay, they
- won't really teach it (a lot of other schools do this).
- Actually, this has been partially remedied by a four week
- course on C. However, you should try to learn it as soon
- as you can (it's close enough to Pascal that it won't seem
- to foreign, but far enough away to not make it a trivial
- task). Cornell has typically been called a theory school,
- though that was more in the old days. There is a current
- effort to cross some courses over with electrical engineering
- if you are more interested in hardware aspects.
-
- Anyway, that's my $1.20 worth.
-
- --
- Charles Lin
- clin@eng.umd.edu
-
-