Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!cmcl2!brl-adm!umd5!mimsy!brillig!beth From: beth@brillig (Beth Katz) Newsgroups: comp.edu Subject: Re: Suggested Course Layout for Undergraduate CSC program Message-ID: <8993@mimsy.UUCP> Date: Tue, 13-Oct-87 12:26:10 EDT Article-I.D.: mimsy.8993 Posted: Tue Oct 13 12:26:10 1987 Date-Received: Thu, 15-Oct-87 04:31:19 EDT References: <2080@super.upenn.edu> <3620001@wdl1.UUCP> Sender: news@mimsy.UUCP Reply-To: beth@brillig.UUCP (Beth Katz) Organization: Univ. of Maryland, Dept. of Computer Science Lines: 28 Keywords: software engineering in curriculum Lance Murray says: > It has been my experience, limited that it is, that there is a very > important need for Software Engineering courses early in the education of > "programmers". If the concepts are not presented early, a solid foundation > of knowledge is not established. The S/W E. course should be taught at the > beginning of the sophomore year (this may be a very broad class covering > topics such as information hiding, abstraction, inductive reasoning, etc.) so > that classes, such as Data Structures and Theoretical Computer Science, may > make use of the foundation built by required discussion of S/W E. principles. It is my opinion that those topics should be incorporated into the intro classes as if they were law. Abstraction and inductive reasoning are basic concepts that transcend software engineering or even computer science. A software engineering course in the junior year would consider the practical aspects of thinking about programming formally. Without some programming experience, students have difficulty understanding why the software engineering techniques are necessary. This does not mean that they have been encouraged to develop programs haphazardly. But they haven't needed to design larger systems, document their work at various stages to communicate with others, concern themselves with reliability, provable correctness, or modifiability, or show that they can develop a test suite. Some courses in the first couple of years may address these concepts, but the software engineering course pulls these and other concepts together in one place at a time when one would hope that the students understand their importance. Beth Katz beth@brillig.umd.edu