Xref: utzoo comp.edu:2164 comp.lang.c:17368 comp.software-eng:1328 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!ames!zodiac!joyce!gds From: gds@spam.istc.sri.com (Greg Skinner) Newsgroups: comp.edu,comp.lang.c,comp.software-eng Subject: Re: Texts on fundamentals of programming/computer science Message-ID: <18740@joyce.istc.sri.com> Date: 3 Apr 89 09:16:25 GMT References: <354@cbnewsc.ATT.COM> <9687@orstcs.CS.ORST.EDU> <1203@microsoft.UUCP> <28226@apple.Apple.COM> Sender: news@joyce.istc.sri.com Reply-To: gds@spam.istc.sri.com (Greg Skinner) Distribution: usa Organization: SRI International, Menlo Park CA Lines: 30 In article <28226@apple.Apple.COM> desnoyer@Apple.COM (Peter Desnoyers) writes: >The approach to problem sets in the [Scheme] class at MIT was great >- they would give you lots of code and you would then have to figure >it out and then modify or extend it. Much more of a real-world >approach than writing everything from scratch. I took this class before the book was written (the book was derived from the course handouts) and I co-taught a three week seminar on it once. While what you say is true (much real-world programming consists of modifying large software projects) I question whether this is a good thing to teach as a first undergraduate computer science requirement. During the time I took the course, I tended to get lost in the huge pieces of software because I had no framework for debugging (let alone understanding) a large piece of software. I know other people that had this problem. (In general, I found that students spent much more time on the subject than was allocated by the department.) I found my understanding of how to write software increased once I had actually written large pieces of software and then started to modify them. (The software engineering course at MIT, 6.170, is much better in this regard.) This is just my opinion, though. I know lots of people that loved 6.001 and really got a lot out of it, but I and others were lost most of the time. I've found it's easier to give the students software projects of increasing sizes to design on their own to give them a feel for the size and complexity of software projects. --gregbo