From: ola@duke.cs.duke.edu (Owen L. Astrachan)
Newsgroups: comp.lang.scheme
Subject: Re: New York Times article
Date: 13 Apr 92 02:49:29 GMT
Organization: Duke University Computer Science Dept.; Durham, N.C.

(Terry Kaufman) writes:

> The Education Life supplement of last Sunday's New York Times had an
> article, "Computer Science Is Going Down", by Peter Lewis on the current
> state of computer science education in the USA at the high school and
> undergraduate levels.  Much of the article is devoted to Scheme and the
> current thinking at our leading universities.  I think the article
> should help spread the word about the advantages of Scheme in
> introductory classes.  


Ok, this may not be the proper forum, but I feel obligated to offer a
response.  Let me begin by saying that I firmly believe that Scheme has
a great deal to offer in introductory computer science courses.
Actually, I would like to rephrase that statement.  The books that use
Scheme as a vehicle for teaching intro cs courses are great; they are
actually books in computer science, not books about Scheme.  I include
__Structure and Interpretation of Computer Programs__ and __Scheme and
the Art of Programming__ in this group.  I also include Brian Harvey's
series of Logo books and Terry Kaufman et al.'s book __The Schemer's
Guide__ which may be aimed at different audiences, but still do the
right thing.  I also include all other equally meritorious books that
should be included.

But, it's not that Scheme is the answer, it's that Scheme makes it
easier to do the right thing in intro courses.  Those of us interested
in the pedagogy of computer science at the introductory level shouldn't
be having religious wars; we should be banding together to ensure that
we rekindle interest in our discipline beginning at the lowest level.  

I'm very tired of seeing intro Pascal books with chapters titled "The
for statement", "The if and case statements", "The repeat and while
loops" as opposed to seeing (in Scheme books) "Building Abstraction With
Procedures" or "Managing State: Mutation".  Of course the former beat
syntax to death, but this does NOT mean that the use of Pascal requires
such an approach, just that Scheme makes it easier (perhaps) to do the
right thing.

Quotes like Natasha Chen's "After my sixth grade BASIC experience, I
never wanted to take another computer course again" do a disservice in
that they lump experiences with language rather than what the language
was used for.  At the risk of incurring the wrath of thousands of
teachers, I suggest that teachers untrained in computer science often
have a very hard time with abstraction.  These teachers are, by and
large, quite dedicated; they are being stretched in several directions
often as the "local computer expert" who must be in charge of everything
from changing printer-ribbons to teaching AP computer science.
Expecting them to study Scheme on their own time, synthesize the
concepts, and decide that it should be used is unreasonable.

Is it an accident that Scheme is taught at "our leading universities"
and not at [my antonym] "run-of-the-mill U"?  I suggest that there is
safety in syntax.  If teachers can hide behind syntax, Pascal courses
cover topics like [in Pascal terminology] linked lists and binary trees
only as advanced topics whereas they can be treated very early in Scheme
courses.  When many teachers do an often abysmally poor job of
covering such topics, students place the difficulty with the topic rather
than the syntax.

This doesn't mean that Pascal instructors can't include
car/cdr--first/butfirst and a list library in the early weeks of a
course and introduce such concepts; but this requires a great deal of
skill, time, and knowledge.  Almost all teachers have skill, but most
are severely limited by time and many by knowledge.

> (However, the article ends on a weak note with
> unchallenged quotes from Nell Dale, computer science lecturer at the
> University of Texas, including "it would be a mistake to think of Scheme
> as a replacement language for BASIC or Pascal.  Scheme is a different
> kind of language than the students will use when they get out in
> industry, a different way of looking at the world".  

You might have said that the article is an unchallenged plug for Scheme.
In general the article is unbalanced in many respects.  Again, we must
not confuse the language with its (in my view NOT inherent) "way of
looking at the world".


> Also, there's a
> reference to the ACM High School Committee, which is recommending a
> breadth-only computer science course---a real quick way to turn high
> school students off to computer science---similar to High School General
> Biology and Chemistry, for all college-bound students.)  


I also disagree strongly with many of the things put forth in the ACM
committee's recommendations, but it's not because they don't use Scheme
or that they try to do a "breadth-only" approach; but that they have a
completely unrealistic set of expectations.

---------

Since the language issue seems to have such religious overtones, let's
not have each group start a Crusade; let's cover the correct topics as
best we can in the different languages.  Once people see how difficult
it is in languages like Pascal, maybe Scheme will become more popular.  
Of course we'll disagree on what the correct topics are, but it's easier
for me to shout from the rooftops that these topics don't include
syntactic details of a programming language than it is for me to shout
that Pascal is the devil's own tongue.  I hope that different languages
don't have to condemn us to a virtual Tower of Babel in intro cs
courses.  

Owen

Owen Astrachan
ola@cs.duke.edu