Path: utzoo!attcan!uunet!ns-mx!iowasp.physics.uiowa.edu!maverick.ksu.ksu.edu!zaphod.mps.ohio-state.edu!usc!snorkelwacker!bu.edu!dartvax!griggs.dartmouth.edu From: hugo@griggs.dartmouth.edu (Peter Su) Newsgroups: comp.edu Subject: Re: Theoretical computer scientists know a thing or two Keywords: theory Message-ID: <24755@dartvax.Dartmouth.EDU> Date: 28 Sep 90 12:59:11 GMT References: <392sis-a@massey.ac.nz> <12007@chaph.usc.edu> <409@pirates.UUCP> <12235@chaph.usc.edu> Sender: news@dartvax.Dartmouth.EDU Reply-To: hugo@griggs.dartmouth.edu (Peter Su) Organization: Dartmouth College Lines: 125 In-reply-to: wilber@aludra.usc.edu (John Wilber) In article <12235@chaph.usc.edu>, wilber@aludra (John Wilber) writes: >I am sure there are some, but I have met only a few. I know this is >difficult, but could you back up your claim? My experience has been that >if someone tells me he has a PhD in CS, he probably knows all about >neural net theory, but couldn't write a hello world program and doesn't >know what a bus is. Perhaps your experiences have been different. > As a graduate student in computer science, I am saddened by the fact that someone who thinks he knows so much about computers knows so little about computer science graduate students. Let me name for you a few people with CS PhD's...and a couple who have the equivalent... 1) Brian Ried -- Author of Scribe 2) Knuth -- Author of TeX 3) Bill Joy -- CEO of Sun Microsystems (he knows what a bus is). 4) John Hennesey -- did the MIPS work at stanford (he knows what a bus is too). 5) Rick Rashid -- Head of the Mach project at CMU 6) Richard Stallman -- Author of Emacs, GCC, etc. 7) Dan Hillis -- designed the original Connection Machine. The point? You don't seem to know many good computer science PhD's. >>Theory is *the* basis for all other branches in computer science: > >Again, that depends on how you define "computer science". If your definition >is "that which mathematicians qua computer scientists study", then of course >you are right by definition. > Both of these statements are narrow and misleading. Computer science is a unique field because it encompasses both mathemetical thinking, and real, practical engineering. Unfortunately, computer scientists don't do either very well yet. But, in order for a person to suceed in this field, and in order for his/her research to be useful, it must break ground in both areas. It is not enough to ponder Turing Machine's, but it not enough just to sit and hack C code either. The name of the game is to find out *how* Turing machines relate to C... >Do you consider the creation of compilers to be a really important issue >in computer science today? How many programmers are out there writing >compilers? How likely is it that any particular student in a class or >ACM member will write one? > Yes I do. Current compilers stink. Figuring out a way to do compilers better would make a lot of people a lot of money. Do you really believe that the current generation of C/Ada/Pascal/Modula compilers is all that is needed for all time? We need compilers that are smarter, faster, generate better code, and work with more architectures. If students are not writing compilers, they should be. >I disagree about the "language design" part. Languages can be designed >perfectly well without any knowledge of lambda calculus whatsoever. >As for the "study" part, I am sure many people have received research grants >and degrees for studying lambda calculus, but I don't see it as anything >more than a minor curiosity. It's not useless, but it doesn't deserve >to be considered a "center stage" subject. The REAL reason it is studied >so heavily is that it allows people to write papers with impressive >mathematical symbols all over it and it doesn't require the consideration >of real-world problems. > >>In terms of being "uniformed about the realities of computer >>technology": from which branch of computer science did the >>concept of parallel computation get its impetus? >>It wasn't >>the hackers or the engineers who first speculated that P<>NP. > >Probably from some guy who wanted to get faster results from his computer >and decided that hooking lots of them up at the same time would be a >good approach. Perhaps you should be "informed" that paralell >computation has a fairly small impact on real-world computing these days, What planet are you from? If parallel computing is so minor, why has Cray made so much money in the past decade? Not to mention Thinking Machines, BBN and the dozens of other companies building parallel architectures that do huge amount of work for scientists all over the country. There is more to CS than writing code for little toy PC's like Macs, NeXT machines, and Suns. Tell me what you know about real machines... On the other hand, I'm not sure what P<>NP has to do with the whole thing either. Non-determinism is one of those theoretical toys that I never quite understood. I'm really not sure what it has to do with parallel computation. The theoretical work done on parallel computation in the past has been pretty esoteric and mindless. In particular, this obsession with the PRAM type machine models is just depressing. PRAM will not tell you anything about the performance of a particular algorithm in the real world because the primitives that it assume just cannot be implemented as yet. > >And it's not the mathematicians who write any of the programs that make >the technology work. I doubt that many of them know or that ANY of them >care that P<>NP. You can write anything you want without that knowledge. > >It seems to me that it is much more important in academic "computer science" >that a problem can be expressed in big impressive-looking mathematical >symbols than that the solution be useful for anything real. That's a >big problem in my book. People should care whether or not P=NP, because a lot of things that people would like computers to be able to do are NP-complete (i.e. scheduling, bin packing, register allocation). If you don't know this, go back and look it up. It might save you a lot of time the next time you have to hack something up and can't think of a good way to do it fast (non-exponential time). I said it before, I'll say it again. A programmer with no clue about what CS theory is about is just about as useless to me as a theoretician who can't hack C. Both are missing essential tools that they need to get the job done. In the first case, theory might tell the programmer something useful before he writes a lot fo code, and thus save him a lot of time. In the second case, knowing something about programming might make the theoretician do more work that is more concrete, and more implementable. Back to work, Pete hugo@sunapee.dartmouth.edu