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: <4429@utah-cs.UUCP> Date: Tue, 31-Mar-87 10:58:11 EST Article-I.D.: utah-cs.4429 Posted: Tue Mar 31 10:58:11 1987 Date-Received: Thu, 2-Apr-87 03:15:04 EST References: <340@ndsuvax.UUCP> <1986@cwruecmp.UUCP> <4428@utah-cs.UUCP> <5308@mit-eddie.MIT.EDU> Reply-To: shebs@utah-cs.UUCP (Stanley Shebs) Organization: PASS Research Group Lines: 43 In article <5308@mit-eddie.MIT.EDU> ambar@eddie.MIT.EDU (Jean Marie Diaz) writes: >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. I am a great admirer of MIT's course, and SC&IP is one of my books "within easy reach". >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. When I said "large", I meant something over 100 pages of source. If the students can even *conceive* of writing it themselves, it's not big enough. The idea is that the students will depend on documentation and comments and organization to be able to *find* the places to tweak, let alone change them. This of course presupposes a piece of code sufficiently well-engineered to unleash on the students... (Has anybody tried TeX sources? The purpose of TeX is probably clearer than say MINIX, whose nature will probably be somewhat obscure to freshcritters, despite the documentation. Students could add simple features to TeX or better yet, whack out something considered useless :-) ) >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. There have been battles at Utah about whether Pascal or C or Scheme or PSL is the right first language. The current compromise is (I believe) to teach Pascal in the first quarter and first half of second quarter, and use Scheme for the second half. The next CS course uses Miranda... Unfortunately, most of the upper-level courses are wired to C, so (you guessed it) the graduates all end up as C hackers anyway - sigh... > AMBAR >ARPA: ambar@eddie.mit.edu UUCP: {backbones}!mit-eddie!ambar