Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!cs.utexas.edu!sdd.hp.com!decwrl!megatest!djones From: djones@megatest.UUCP (Dave Jones) Newsgroups: comp.lang.misc Subject: Re: introductory language Message-ID: <12815@goofy.megatest.UUCP> Date: 4 May 90 00:18:38 GMT References: Organization: Megatest Corporation, San Jose, Ca Lines: 69 I have a suggestion. Would everybody who continues this thread please indicate what kind of teaching experience they have? I admit that mine is quite limited: four semesters of calculus as a graduate fellow, and two and a half years full time as a C.S. visiting associate professor. I think it would be nice to know where other people are coming from. It would be particularly interesting to hear from people who have tried several different approaches. Now to reply to an reply to a reply to .... From article , by cline@cheetah.ece.clarkson.edu (Marshall Cline): > In article <12704@goofy.megatest.UUCP> djones@megatest.UUCP (Dave Jones) says: >> [ ... discussing the use of complicated computer languages >>> in C.S. 101 -- Introduction to Computer Science ...] >> >> I would prefer to build up to all that. > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > I vehemently disagree. > > I believe catagorically that the way to teach people about computers is to > let them `play'. Analogy (beware!): music has *lots* of theory, but the way > to teach an instrument is to let them enjoy it. The analogy is indeed dubious, but I will go along with the gag. Recall what Charlie Parker said: "First learn your horn and all the theory. Next develop a style. Then forget all that and just play." First things first. In our case the "horn" is the computer. Find out at least a little about what kind of thing it is. I used to start my C.S. intro classes by opening up a PC, pointing out the memory chips and the cpu, and describing in very general terms what they do. Next, a bit of assembler is indicated. Only then would I get into the "theory" (abstract languages). Following up on this music analogy, have you ever taught music to a beginner? I have. Or rather, I have taught the rudiments of jazz improvization to people who have never improvized jazz. You see, I am a sax player, happily living in a place where there is a very active jazz scene. I can assure you that people who learn to improvize through undisciplined playing, without a basis in theory, inevitably develop bad habits and limitations which prove difficult or impossible to overcome. I've heard people say the same is true of programmers who begin by "playing" with computers. But you know what? I didn't recommend teaching a lot of theory before allowing the students to play with the computers! I don't know what gave you the idea that I did. I only said that I would not start out with a complicated computer language. I might add that there should be discipline to the play, just as there must be discipline to musical practice. It can be fun without being haphazard and reckless. Sloppy practice only reinforces bad habits. > (Before you press the Flame > key, let me qualify: the long term goal is to have composers, not players. > But I believe people don't learn well if you shove a lot of theory down > their throats when they have *no* idea where this theory will be applied). > Again you are arguing against a position I never even hinted at. I firmly agree that the concrete should precede the abstraction. If you don't have two concrete examples, there is no need for the abstraction. So give two examples first, then generalize. Dave P.s. It's "categorically".