Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!hao!oddjob!gargoyle!ihnp4!homxb!mtuxo!mtune!codas!usfvax2!pdn!reggie From: reggie@pdn.UUCP (George W. Leach) Newsgroups: comp.edu Subject: Re: Suggested Course Layout for Undergraduate CSC program Message-ID: <1566@pdn.UUCP> Date: Fri, 16-Oct-87 08:05:18 EDT Article-I.D.: pdn.1566 Posted: Fri Oct 16 08:05:18 1987 Date-Received: Thu, 22-Oct-87 00:01:46 EDT References: <2080@super.upenn.edu> <3620001@wdl1.UUCP> <8993@mimsy.UUCP> Organization: Paradyne Corporation, Largo FL Lines: 64 Keywords: software engineering in curriculum Summary: Informal Methods Help In article <8993@mimsy.UUCP>, beth@brillig.UUCP writes: > 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". [Stuff Deleted.....] > 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 I have the same views as Beth concerning when to introduce SE into the curriculum. I have taught the into course for a couple of years now and I am always tempted to give larger assignments and team projects to give the students a "feel" for programming in the large. However, after giving the matter much thought I opted against this because one must learn to crawl before one can walk. The basic foundation must first be put down in order to build upon it. An informal method that can be introduced into a later course where the student has some basic programming skills is to break the class up into teams of three or four people, ask them to come up with a system requirements of their own for a programming project of their choice, then collect and redistribute the requirements to other groups for evaluation, this group may then come up with a software design based upon the requirements, and finally the same group who did the design (or a third group!) may take on the task of implementing the design. This project does not have to be a very formal procedure. In fact, the less formal the better. It will teach the students a valuable lesson without you even getting up on a soap box to preach about software engineering. Let them experience, first hand, how to do it wrong in the classroom. -- George W. Leach Paradyne Corporation {gatech,codas,ucf-cs}!usfvax2!pdn!reggie Mail stop LF-207 Phone: (813) 530-2376 P.O. Box 2826 Largo, FL 34649-2826