Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!lll-winken!ames!pasteur!ucbvax!bloom-beacon!athena.mit.edu!reuven From: reuven@athena.mit.edu (Reuven M. Lerner) Newsgroups: comp.edu Subject: Re: Texts on fundamentals of programmin Message-ID: <10353@bloom-beacon.MIT.EDU> Date: 6 Apr 89 05:05:09 GMT References: <354@cbnewsc.ATT.COM> <82400035@p.cs.uiuc.edu> Sender: daemon@bloom-beacon.MIT.EDU Reply-To: reuven@athena.mit.edu (Reuven M. Lerner) Organization: Massachusetts Institute of Technology Lines: 44 I'm taking 6.001 now, and just wanted to respond to a previous posting. Granted, this is my first "real" encounter with Computer Science, but I still think my comments have some validity. In article <82400035@p.cs.uiuc.edu> gillies@p.cs.uiuc.edu writes: >Face it, you're not going to be write lisp interpreters, reprogram >eliza's, simulate infinite lists of primes, or reimplement MacSyma out >in the real world. A LARGE fraction of our problems in 6.001 could >not easily be translated into other languages. The course is heavily >dependent on the intricacies of LISP! True, they want us to learn Lisp. And not just any Lisp, but "Scheme" (a dialect developed, to no one's surprise, at MIT). It's also true that many of the things we're doing are somewhat difficult, if not impossible, to translate into other languages. But the point of the course is not to learn a "practical" programming language. Nor is it to learn to program "practical" program. Or to translate programs into other languages. Instead, 6.001 is supposed to teach us (if I'm not mistaken) general techniques for attacking problems, and writing algorithms using the benefits a language gives us. Granted, they stress recursion half of the time, but they touch on topic (such as mutable data) that would be difficult to teach in most other languages. Another advantage of using Lisp is that very few students have programmed in it before. If they were to use Pascal or C, many students would deserve A's before the class even began. >The course is very unrealistic. It is fun, and it teaches recursion >beautifully, it neglects documentation totally, but it is VERY UNREALISTIC.... The course doesn't neglect documentation; it goes about it in a roundabout way. We've been learning about data abstraction, and how important it is to maintain a "level of abstraction" in your programs. Part of the purpose of abstraction is to make the code more-readable. Other courses, such as 1.00 (C or Pascal), teach "real-world programming" in "real-world languages." 6.001 teaches introductory Computer Science, using a language somewhat popular in CS. --- Reuven