Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watnot!watmath!clyde!rutgers!seismo!mcnc!rti-sel!tijc02!djm408 From: djm408@tijc02.UUCP Newsgroups: comp.edu Subject: Re: software engineering Message-ID: <141@tijc02.UUCP> Date: Tue, 24-Mar-87 09:08:17 EST Article-I.D.: tijc02.141 Posted: Tue Mar 24 09:08:17 1987 Date-Received: Thu, 26-Mar-87 04:44:38 EST References: <340@ndsuvax.UUCP> Organization: Texas Instr., Johnson City TN Lines: 31 in article <340@ndsuvax.UUCP>, ncmagel@ndsuvax.UUCP (ken magel) says: > > > At what level should students be taught software engineering principles and > concerns? How much should be covered in the introductory courses, how much > should be presented to non-majors? Should the material be a part of courses > whose emphasis is another topic (e.g., data structures, operating systems), > or should there be specific courses which concentrate on design, on testing, etc. > ? > When and how often should students do project assignments? It is my belief that computing has matured to the point that Software Engineering should be split off from Computer Science as separate a discipline. This is analogous to the split between chemistry and chemical engineering. Software engineering students should be taught engineering concepts from the beginning, including design, analysis, and project management. This does not mean that they shouldn't be taught some theory. Just as a chemical engineer needs a solid foundation in chemistry, a software engineer needs a solid foundation in computer science, including data structures, ai concepts, basic computability and automata theory, etc. However, the software engineering student should concentrate on applications of theory rather than the theory itself. On the other hand computer science students should be taught a curriculum heavily oriented towards the theoretical: data structure analysis, computabilityand automata theory, graph theory, topology, etc. However, they should have a good foundation in programming, just as good chemists need to know laboratory procedures; after all, theories need to be tested. Unfortunately, many CS departments teach an amalgam of the two types of curricula, leaving the student with a less than solid foundation in either.