Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watnot!watmath!clyde!rutgers!husc6!ut-sally!utah-cs!shebs From: shebs@utah-cs.UUCP Newsgroups: comp.edu Subject: Re: Software Engineering vs. Computer Science Message-ID: <4422@utah-cs.UUCP> Date: Fri, 27-Mar-87 21:55:06 EST Article-I.D.: utah-cs.4422 Posted: Fri Mar 27 21:55:06 1987 Date-Received: Sat, 28-Mar-87 17:04:51 EST References: <193@darth.UUCP> Reply-To: shebs@utah-cs.UUCP (Stanley Shebs) Organization: PASS Research Group Lines: 67 In article <193@darth.UUCP> gary@darth.UUCP (Gary Wisniewski) writes: >There seems, in general, to be a lack of understanding of what Software >Engineering actually is. If you've written a game for an Atari, are you >a Software Engineer? If you've written an rule-based simulation for a >Symbolics, are you a Software Engineer? Well, what's the answer? *I* sure don't know! The typical definitions for SE seem to focus more on the process than the result, so you can get well-engineered games and hacked-out simulators... >Are educators working to produce curricula which focus on CS and SE as >distinct areas of study? Very few of my co-workers have an understanding >of Software Engineering which was not gained from experience. In fact, >to become good engineers, many people must unlearn principles taught to >them in CS courses. Producing large, complex software systems is a different >kind of problem than writing a 300 line program. Data abstraction is an >interesting twist in a small program, but essential in a large system. This is exactly the kind of attitude I was decrying in an earlier article. Students have to be able to build little things before they can build big things. This is true of any engineering field. EE's build circuits with one resistor and one capacitor, then one transistor, then one IC. They don't even think about VLSI or continental power networks until fairly late in their student career, and will not generally *build* sizeable things until grad school. The same is true of other engineering disciplines. Let's not start flagellating ourselves because students don't write 10K+ line programs as undergraduates! The remark about "not understanding SE without experience" touches on an old bone of contention between academia and industry. Just last week I noticed a letter in an IEEE rag, stating that academia did not prepare students adequately for work, and proposing (among other things) that tenure be abolished, and that university faculty should consist of one-half industry people. No mention was made of how those people were going to be coerced into teaching... I believe that it's *never* going to be the case that universities will prepare students for industry to industry's specifications. That's just not the way the world works. >My point of all of this is focus. Students who wish to unravel the secrets >of computing (and probably the mind as well) are rarely satisfied with the >engineering of software. Those interested in practical solutions to real >problems are rarely interested in the science of computing. Many software >people lack an understanding of this simple duality. CS hasn't been around long enough to develop standards on how much theory the engineering types should know, or how competent a theoretician ought to be in the practice of programming. Presumably you don't want ignorant software engineers to spend a lot of time and effort trying to write a "program to detect all infinite loops in other programs"! If you divided up theory and practice now, the theory would spin off into the ozone (a la Soviet computer science), and the practice would drift into the reinvention of exponential algorithms for sorting. I personally prefer to be able to do both theory and practice. I suppose many people in CS departments like that too, which is maybe why there hasn't been much impetus for splitting departments (can you imagine physicists and EEs and MEs bundled into the same department? It would last one week, or until a seminar, whichever came first...) >Gary Wisniewski >uucp: {allegra,bellcore,cadre}!pitt!darth!gary stan shebs shebs@cs.utah.edu (I've been in both industry and academia and am now considered too theoretical for industry and too practical for academia. What a bind! :-) )