Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watnot!watmath!clyde!rutgers!seismo!think!mit-eddie!ambar From: ambar@mit-eddie.UUCP Newsgroups: comp.edu Subject: Re: software engineering Message-ID: <5308@mit-eddie.MIT.EDU> Date: Tue, 31-Mar-87 03:27:14 EST Article-I.D.: mit-eddi.5308 Posted: Tue Mar 31 03:27:14 1987 Date-Received: Wed, 1-Apr-87 05:49:13 EST References: <340@ndsuvax.UUCP> <1986@cwruecmp.UUCP> <4428@utah-cs.UUCP> Reply-To: ambar@eddie.MIT.EDU (Jean Marie Diaz) Organization: Madhouse International Technologies Lines: 42 In article <4428@utah-cs.UUCP> shebs@utah-cs.UUCP (Stanley Shebs) writes: > >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 Here at MIT, the first course in the CS sequence (usually taken as a second-term freshman or a first-term sophomore) has several assignments like this. It is taught in Scheme (a lexically-scoped variant of Lisp), which, like Lisp, has so little syntax to cope with that having a "clerical mind" (as Mr. Shebs called it) is really no advantage. The most fun of the 10 problem sets (spread over a 14-week term) is the adventure game. Given the rough skeleton of an adventure game (say, 5 pages of code), complete, modify, hack.... There is an optional part to the assignment---adding a "major" modification to the game. This is a contest, with prizes to the top 10 or so. The 9th or 10th (depending on the whim of any given term's lecturers) problem set is writing a meta-circular evaluator for Scheme. This problem set is no joke. You're handed 10 pages of code, and generate another 10, easily. No particular precautions are taken to ensure that students don't cheat (sure, the TA's make sure you don't copy code)---but there's a better penalty. There is no possible way to pass the exams without having done the problem sets yourself. Don't blow this article off with "well, that's MIT, but we can't do that here". So make half as many problem sets. Or one big one. It really does work here; it's worth trying. -- AMBAR ARPA: ambar@eddie.mit.edu UUCP: {backbones}!mit-eddie!ambar