Path: utzoo!attcan!uunet!fernwood!apple!usc!chaph.usc.edu!aludra.usc.edu!wilber From: wilber@aludra.usc.edu (John Wilber) Newsgroups: comp.edu Subject: Re: Theoretical computer scientists know a thing or two Summary: Theory vs. Practice Keywords: theory Message-ID: <12235@chaph.usc.edu> Date: 28 Sep 90 07:31:24 GMT References: <392sis-a@massey.ac.nz> <12007@chaph.usc.edu> <409@pirates.UUCP> Sender: news@chaph.usc.edu Organization: University of Southern California, Los Angeles, CA Lines: 107 In article <409@pirates.UUCP> bobm@pirates.UUCP (Bobm Atthews) writes: >John, there are alot of theoreticians out there who know alot about >computers. 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. >Just because someone has a concentration in one particular area >of computer science does not mean he/she is a dolt in others. Agreed, but I would expect the same of history professors. Having a PhD in history doesn't make one an expert in computers either, though there are some historians who are quite adept at using them and even understanding them. The difference is that historians don't go around claiming to be at the heart of computer science as an area of study. >A good >school makes certain that its graduates are proficient in the >important areas of computer science. That sounds nice, but I have not seen it implemented in practice. I would assume that some schools (like CMU and MIT) must have some people around who know something or they couldn't get any of their research projects to work, but I have never seen any direct evidence that schools take anything like an intelligent approach to teaching computer science. Since IMHO most CS professors don't have a good grasp of the important practical facts (there are exceptions of course) it is not surprising that students do not learn the "facts of life" in school. >> the textbooks I have seen have all been dismally >>uninformed about the realities of computer technology (and even good >>theory for that matter). >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. >witness the usefulness of finite and push-down automata in designing >compilers and syntax directed editors, Sure, but which came first, the theory or the compilers? I have "discovered" new ways of doing things in programs many times before only to later discover that someone had already given it some fancy theoretical name. In any event, I agree that compilers and related things have been one of the areas most directly impacted by straight theory. I have written a couple of compilers and the theory (once all of the theoretical trimmings were removed) was indeed useful. 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? >the lambda calculus in >programming language design and study, 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. >complexity theory as the >motivator and prime driving force behind probabilistic and >approximation algorithms (used in network design, mathematical >software, operating system design, etc.) Have you ever written an operating system? Do you know what the real problems involved are? Complexity theory may make some minor contributions, but again, I think that mathematicians who spend their days extending complexity theory would be much more productive if they came down to earth and worked on solving practical 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? 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, and that had all of the mathematicians mysteriously vanished in 1980, the development of parallel computers would not have been set back noticeably. (Who knows, maybe without them more work could have been done in making them work rather than worrying about the theory;-). >It wasn't >the hackers or the engineers who first speculated that P<>NP. 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.