Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site cornell.UUCP
Path: utzoo!watmath!clyde!cbosgd!cbdkc1!desoto!cord!hudson!bentley!hoxna!houxm!vax135!cornell!kevin
From: kevin@cornell.UUCP (Kevin Karplus)
Newsgroups: net.cse
Subject: Re: Should Computer Science be taught at the High School level?
Message-ID: <837@cornell.UUCP>
Date: Wed, 26-Dec-84 18:29:37 EST
Article-I.D.: cornell.837
Posted: Wed Dec 26 18:29:37 1984
Date-Received: Thu, 27-Dec-84 03:47:11 EST
References: <241@mss.UUCP> <2014@Glacier.ARPA>
Reply-To: kevin@gvax.UUCP (Kevin Karplus)
Distribution: net
Organization: Cornell Univ. CS Dept.
Lines: 70
Keywords: high school
Summary: 

I am also a Computer Science professor (though I mainly teach graduate
courses in VLSI Design for the EE department).  I want to second Brian
Reid's request for students who can write, who can spell, and who can
do a little math.  I'm not talking freshmen, I'm talking graduate
students!

My VLSI design course is taken by about half the EE Masters of
Engineering students at Cornell.  The design report they turn in is
usually the first technical paper they have written, in some cases the
first paper over 10 pages long.  This year's seem a little better than
previous ones, but I'm still dreading having to read 1600 pages of bad
English. Most of the students have the excuse that they are not native
speakers of English, but some of the worst prose comes from American
students trained in American high schools.  At least the foreign
students have been exposed to English grammar, even if they haven't
mastered it.

As for teaching typing---I tried to take a typing class in high school.
They taught touch-typing from clean copy, a marginally useful skill.
After taking the course, my typing speed was half what it was before
the class.  Within a few years I dropped all the touch typing
techniques and developed my own typing system (which avoids the little
fingers and emphasizes the index fingers).  Typing shouldn't be a
course, it should be a skill developed as a by-product of writing.
Perhaps the best way to learn to type is to play one of the
computerized typing games as a young child.  High school is a bit late
for learning to use a keyboard.

I learned programming in high school, and thought I was really hot
because I could hack better than any one in the school (including the
"professional" programmer hired by the high school).  I didn't call it
hacking, because I'd never heard the term.  I learned FORTRAN in class,
and taught myself IBM 1130 assembly language.  I learned nothing about
structured programming (it hadn't been popularized yet) or data
structures (other than arrays).  The instructor was a fairly
intelligent math teacher who had learned enough FORTRAN to teach the
language, but not much more.  Compared with current high school
computer courses, I'd say the course ranked in the upper half.  It took
me four years to unlearn a lot of what I had taught myself in high
school.  In retrospect, I learned far more useful material in my
English classes than I did in my science or programming classes.
That may be because I had old-fashioned teachers who insisted on
teaching grammar, vocabulary, spelling, and writing.

High school students should be given the opportunity to use a computer.
Those sufficiently motivated should be taught to program.  There is no
reason to require everyone to program (at least, not yet).  A highly
intelligent teacher is essential.  A highly trained teacher is not
quite an adequate substitute.  An untrained, unintelligent teacher is an
active menace to education (but at current salaries, what do you
expect?).

All that was in the days before computer science was a "hot" field, so
I majored in math as an undergraduate.  Although I rarely have any use
for the specific facts I learned as a math student, I would still urge
budding computer scientists to study math before considering CS.
Programmers can start out in CS, computer scientists need a bit broader
base.  As a minimum, one should learn to write proofs that require
something beyond the axioms of the theory.  That is, students should
learn to do proofs that require a thorough understanding of work done
by other people.  I'd particularly recommend abstract algebra, formal
logic, and graph theory for undergrads.  High school students might
benefit from an early exposure to formal logic and simple proofs.  They
should relearn it in a more rigorous course in college, but prior
exposure may induce them to study mathematical logic, instead of the
watered down version offered to juniors in philosophy at most colleges.

This message has gotten too long.  I apologize for rambling.

				Kevin Karplus