Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!panda!husc6!cmcl2!seismo!gatech!akgua!usl!elg From: elg@usl.UUCP (Eric Lee Green) Newsgroups: net.cse Subject: Re: CS vs. CE Message-ID: <916@usl.UUCP> Date: Sat, 13-Sep-86 22:12:55 EDT Article-I.D.: usl.916 Posted: Sat Sep 13 22:12:55 1986 Date-Received: Sat, 27-Sep-86 08:42:19 EDT References: <13500008@uiucdcsb> Reply-To: elg@usl.UUCP (Eric Lee Green) Organization: USL, Lafayette, La. Lines: 81 Keywords: CS, CE, curriculum, math, user interface, AI, other barbs. Summary: Very long discussion on what should be in CS curriculum. In article <13500008@uiucdcsb> liberte@uiucdcsb.CS.UIUC.EDU writes: >Since there is a field of computer engineering as distinct from >computer science, we should take advantage of the fairly distinct >boundary between these fields. Is there a distinct boundary? Or is there a boundary area that is sort of fuzzy? Think about who programs the microprocessor inside your printer. Should he be a programmer? Should he be an engineer? If he is a programmer, how can he know enough about how the hardware works to do it? If he is an engineer, he may make some programming decisions which are disasterous in performance terms, or simply be incapable of programming some of the complicated printer commands now common. It is obvious that there is a large middle area, and that this large middle area is indeed a quite practical and profitable place to be. And it appears to me as if most computer science curriculums are totally ignoring this area of computer science. >By implication, my view is that computer science should confine >itself to the abstractions of the computer world - software, theory, machine >design; whereas computer engineering is concerned with the hardware, >electronics, and peripherals. Should computer engineering be considered >a subset of computer science or of electrical engineering or neither? The computer world is not totally abstract. Certainly it deals with abstract data such as the fields and records of a database, programs written in a programming language, etc., however, there are physical objects out there like disk drives and terminals too. >I would like to see requirements that take into account the importance >of user interfaces (graphics, psychology of programming) and >application areas other than numerical analysis such as data bases >and symbolic math. Alot more research is needed in these other >areas and computer science will eventually be filled out to the >extent that the old war-horses of numerical analysis and electronics >will become less important. I'm just getting a little impatient. 1) numerical analysis: Some math should be looked at, since the very idea of a computer is an offshoot of the lamda calculas, Turing machine, and other mathematical topics, but spending semesters grinding through differential equations and linear algebra and other stuff that a programmer would never use is a Big Lose. Right now I'm working on a problem in regular expression evaluation that makes heavy use of set theory in order to really understand the problem and its execution, an argument that some higher math is indeed quite useful to a programmer. 2) user interfaces, AI, etc.: I see a growing tendency of researchers in areas like AI/cognitive science to spend their time moping around thinking about vague generalities, and totally ignoring any thoughts about the implementation of their fanciful ideas... as for the importance of user interfaces, yes, it is important that the user be able to figure out how to use the software. Pictures are neat, but they don't do anything except sit there, and some people seem to be getting carried away figuring out fancy ways to put icons, pull-down menus, etc. on their programs, without putting equal thought into what their program is supposed to be doing. I think focusing too heavily on the user interface is perhaps being snooty, assuming that the user is a total brainless slug, and needs his complexity dripped with sugar to make it palatable. Let's face it, computer programs are complex things, and it will always take quite a bit of doing to operate anything that is complex. >Dan LaLiberte >ihnp4!uiucdcs!liberte One final argument about the importance of low-level programming: we have a microvax running VMS sitting around barely being used (who'd want to use VMS when they can use Unix?). My guru asks his guru, "Gee, we have that nice machine just sitting there, why don't we write a simple operating system for it in our grad level operating systems class?". And the Big Guru says, "Well, that's a good idea, but there's probably only 3 or 4 people in this entire university who would know what they were doing, and we're two of them". Moral of the story: from all the ratings I've seen, USL's fairly decent (somewhere in or near the top 20-30), yet most of the students are so inept at hardware that they're totally useless for writing the necessary device drivers for a simple operating system... -- Eric Green {akgua,ut-sally}!usl!elg (Snail Mail P.O. Box 92191, Lafayette, LA 70509) -- Tengo lo mismo que doy y solo sirve al presente.