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")))