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