Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watnot!watmath!clyde!rutgers!husc6!seismo!rochester!pt.cs.cmu.edu!cadre!pitt!darth!gary From: gary@darth.UUCP Newsgroups: comp.edu Subject: Software Engineering vs. Computer Science Message-ID: <193@darth.UUCP> Date: Fri, 27-Mar-87 10:09:01 EST Article-I.D.: darth.193 Posted: Fri Mar 27 10:09:01 1987 Date-Received: Sat, 28-Mar-87 14:27:47 EST Organization: Darth Software, Allison Park, Pa. 15101 Lines: 47 Summary: The distinction without a difference I am a recent subscriber to comp.edu, but have read many articles in which the terms Software Engineering and Computer Science are used almost inter- changably. 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? There are three separate issues at hand when we talk about the creation and understanding of Software: 1. Programming. I view this as the simple ability to understand and produce logical sequences of imperatives which tell a computer what to do. There are programmers in the fifth grade, but probably few software engineers. 2. Computer Science. Computer Science attempts to understand and define the process of computing. Its tools are observation and experimental investigation. 3. Software Engineering. This is the process of applying the principles of automation to practical ends. The goal is to produce efficient and economical systems using technology which is both reliable and predictable. 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. 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. Comments and flames are welcome on these issues. Are these problems being solved? Are they solved already and am I not-so-blissfully ignorant? Gary Wisniewski uucp: {allegra,bellcore,cadre}!pitt!darth!gary