Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!zaphod.mps.ohio-state.edu!julius.cs.uiuc.edu!apple!uokmax!d.cs.okstate.edu!norman From: norman@d.cs.okstate.edu (Norman Graham) Newsgroups: comp.edu Subject: Re: Theoretical computer scientists know a thing or two Message-ID: <1990Sep29.042656.20906@d.cs.okstate.edu> Date: 29 Sep 90 04:26:56 GMT References: <12235@chaph.usc.edu> Organization: Oklahoma State University Lines: 130 From article <12235@chaph.usc.edu>, by wilber@aludra.usc.edu (John Wilber): > 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. I know this is difficult, but could you back up your claim (perhaps with some hard data based on a sample set of more than a dozen)? My experience is that most CS PhD's know nothing about neural net theory, but they know, for instance, the issues involved in operating system design; and they certainly do know what a bus is. You should avoid such broad characterizations, especially when they are based solely on your limited world view (which, btw, you seem to consider very broad). > [...] 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. Now you have me sitting on the edge of my chair. We're all now waiting for you to describe your 'intelligent approach to teaching computer science'. And while you're writing, please list a few of the 'important practical facts' so we'll know what you're writing about. Who knows, perhaps CS professors everywhere will see the light and learn something about these issues. But please remember that most universities do not intend to be high-tech, high-dollar vo-tech schools with football teams. >>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? In this case (LR, LALR, SLR parsing that is), the theory came first. Parsing was something of a black art before the theory came along. Efficient parsing simply did not exist before theory showed us how to do it. > 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. Congratulations. Of course, theoretical study is much more than simply naming objects of discovery. For example, you may want to actually perform an analysis of your discovery to determine what properties it may possess, why it possess those properties, and when you can exploit those properties. Then write it up and delight the world with your wisdom. > 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? I suppose you are saying 'compiler design is not a really important issue in computer science, so only a very few people need study it.' I believe that the study of certain subjects--such as compiler design, calculus, etc.--will give many students a maturity and insight that they would otherwise lack. >>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. Yes they can; they have been for the last 30 years. It's best to have in mind some model of computation when designing a new language. In the past, that model has been the physical machine . This model has lead to languages that have become increasingly complex. Each new language includes most or all of the features found in previous languages and adds new features to boot; but the expressive power of these languages has hardly changed. The truth is the newer languages do not increase program reliability or decrease programming costs enough to warrant their adoption. This sad fact suggests we need a 'new' model. Lambda calculus is one such model. > 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. I suggest that you open your eyes; obviously you have not been keeping up with language design issues (semantics of languages, computational models, etc.) or with the implementation strategies for functional languages. And before you brand functional languages as impractical or not applicable to 'real-world problems' consider this: Functional languages and functional programming are not sufficiently mature to warrant industry's en masse migration to them. But they have qualities that industry certainly will be interested in. Many functional programs are 10, 20, or even 30 _times_ shorter than similar imperative programs. And due the clarity resulting from their high-level nature, they are more reliable and easier to maintain. When functional languages are adopted by industry (I guess in 5 or 10 years), they will save millions or perhaps billions of dollars a year in software costs. And of course, there are those who believe functional languages will be the only practical way to take advantage of the parallelism available on massively parallel machines (>1000 processors). Most functional languages can be viewed as syntactic sugar on the lambda calculus. Does lambda calculus still seem like 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. Now that is perhaps the most ridiculous statement I've seen in the netnews in the last five years. [more drivel on parallel machines deleted] -- Norman Graham {cbosgd,rutgers}!okstate!norman The opinions expressed herein do not necessarily reflect the views of the state of Oklahoma, Oklahoma State University, OSU's Department of Computer Science, or of the writer himself.