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 Message-ID: <4428@utah-cs.UUCP> Date: Mon, 30-Mar-87 11:00:52 EST Article-I.D.: utah-cs.4428 Posted: Mon Mar 30 11:00:52 1987 Date-Received: Tue, 31-Mar-87 06:17:21 EST References: <340@ndsuvax.UUCP> <1986@cwruecmp.UUCP> Reply-To: shebs@utah-cs.UUCP (Stanley Shebs) Organization: PASS Research Group Lines: 36 >In article <340@ndsuvax.UUCP> ncmagel@ndsuvax.UUCP (ken magel) writes: > >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.? Last fall, I TAed a graduate class in Lisp programming which was 80% undergrads (ah, the wonders of curriculum reorganization). Since Lisp is an easy language to learn, we spent much of our time on style and larger programs. We had the idea of making the students change and extend some programs from week to week, so as to encourage data abstraction. What a failure. Wired-in constants, gigantic case statements, you name it, somebody did it, even after numerous exhortations to the contrary. A different technique was more effective, though in a rather negative way. We graded on style, and for the worst offenders, we had this stamp, which said "VOMIT" in large red letters. It was appropriate whenever two or more Lisp hackers concurred in making retching sounds over a piece of code. People only did such bad things once! We also got some flak over this, and a few students got really paranoid, putting apologies and excuses in their comments. I think the stamp is probably too abusive to make general use of, plus reading 300-400 pages of code per week is really awful. I wonder if the selection process for CS students is flawed. It seems that it rewards those who have a good memory for detail and who notice clerical errors. Data abstraction seems silly if you believe you can remember all the details of a program, so students have no motivation for it. One radical solution might be to de-emphasize writing programs, and require reading them, starting with the first course. I would be interested in hearing if anyone has tried making a first- or second-year CS class modify programs that were much too large for them to have written themselves... stan shebs