Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site harvard.UUCP Path: utzoo!linus!vaxine!wjh12!harvard!munyer From: munyer@harvard.UUCP (Robert Munyer) Newsgroups: net.lang Subject: Re: Object oriented languages Message-ID: <281@harvard.UUCP> Date: Thu, 21-Jun-84 04:25:51 EDT Article-I.D.: harvard.281 Posted: Thu Jun 21 04:25:51 1984 Date-Received: Fri, 22-Jun-84 01:06:53 EDT References: <1979@mit-eddie.UUCP>, <268@harvard.UUCP> Organization: Aiken Computation Lab, Harvard Lines: 92 () Regarding Kevin Crowston's article to to net.lang: I was also involved in Harvard's attempt to teach its intro programming course in SCHEME, and would like to give my own interpretation of the same experience. I question his assertion that the newer (and older) version of the course had "better results". I believe that the students who took the course when it used SCHEME came away with a better understanding of many important computer science concepts than those who used C or assembly language. All of the time that the C student spends learning the bizarre and complicated syntax of C (and even worse, trying to debug his C programs) is time that he CANNOT spend understanding such concepts as object oriented programming and procedural abstraction. Moreover, many of these concepts are easy to illustrate in SCHEME and difficult or impossible in C, simply because C was not designed with them in mind. Students in the SCHEME course learned how to program; students in previous years learned how to hack. The lifetime of C as a language (at least at the forefront of computer science) is very limited. T and other higher-level, object-oriented languages can take advantage of new and important advances (object-oriented programming, logic programming, parallel computation, non-Von-Neumann(sp?) architectures) in a way that is simply impossible for C and other "procedural languages". Kevin's discussion seemed to contain three distinct points, with which I would like to deal separately: 1) SCHEME puts too much demand on system resources. 2) The other courses here use "more traditional languages (like C)". 3) The jobs the students want use "more traditional languages (like C)". First: "SCHEME is too demanding of resources." Sure, it was easier on the system staff when the course used a small, fast, let-the-programmer-do-all-the-work-and-don't-waste-a-microsecond-to-help-him programming environment. We could have gotten by with even less computing power if we had been content to let the students use TECO instead of a screen-oriented editor. But here as elsewhere, memory size and processor power are increasing, and it seems counterproductive to worry too much about last year's limitations on cycles and kilobytes when debating future educational policy. Moreover, I don't believe that the system problems we had were a necessary result of using the higher level language. For one thing, we were initially using a very early pre-release version of T, which didn't have a working garbage collector or compiler (I'm serious!). With later releases of T, we got a working garbage collector and compiler and a considerably faster interpreter, and the system load decreased significantly. In fact, I know of at least one higher-level computer science course here (CS180, our AI course) which used T this year, with good results and no serious system problems. Second: "The other courses here use more traditional languages (like C)." Again I bring up the example of CS180. AI, even more than other courses, simply cannot reasonably be taught without a higher level language. I believe that now that we have these languages available here, more courses will take advantage of them and the use of C as a teaching language here will begin to decrease. Third: "The jobs the students want use more traditional languages (like C)." Granted, in 1984, bottom-level programming jobs (students' summer jobs, for example), often use C. But in 10 years, or 5, or even when they are graduated in 3 years, this may no longer be true, at least in the more advanced (and therefore more interesting) jobs. Think of how much the field has changed in just the last 5 years. I think that the language- independent computer science concepts I mentioned before will be much more useful to students in the long run than a familiarity with the current fad language would be. Disclaimer: of course my opinions are only my own! ((name "Robert Munyer") (address (uucp "...allegra!harvard!munyer") (arpa "munyer@harvard") (Snail "15 Waldo Ave #1, Somerville MA 02143") (phone "(617)628-3718")))