Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rochester!cornell!uw-beaver!ssc-vax!dickey From: dickey@ssc-vax.UUCP (Frederick J Dickey) Newsgroups: comp.edu Subject: Re: software engineering Message-ID: <1194@ssc-vax.UUCP> Date: Mon, 20-Apr-87 10:03:32 EST Article-I.D.: ssc-vax.1194 Posted: Mon Apr 20 10:03:32 1987 Date-Received: Wed, 22-Apr-87 02:16:02 EST References: <340@ndsuvax.UUCP> <1986@cwruecmp.UUCP> <4428@utah-cs.UUCP> <4502@utah-cs.UUCP> Organization: Boeing Aerospace Corp., Seattle WA Lines: 37 Summary: learning A by doing B In article <4502@utah-cs.UUCP>, shebs@utah-cs.UUCP (Stanley Shebs) writes: > > (Hi Fred!) I agree completely, though your "can't write" presumably means > "can't write coherently", at least going by the average Boeing document :-). > You don't mention the situation where students can write without being able > to read, rare in grade school natural language, near-universal in college > CS courses. If reading is easier to pick up, then wouldn't it be better > pedagogy to start off with reading and introduce writing a little later? > > Many professional writers seem to do what is to me an incredible amount of > reading, and in fact the best programmers I know also read quite a bit of > each other's code. In fact, not too long ago somebody in this group was > declaring that they learned C by studying "larn" code... > I am willing to concede that a lot of programmers learned to code by reading code. But turning to the natural language analogy, as near as I can tell, there are a lot of people who read a lot but can't write (coherently). The secret to learning how to write is to write. It is helpful to have models to imitate. I believe it is the case that everyone who goes through the American educational systems is forced to read some "masterpieces of English literature." However, very few people can write masterpieces. Reading and writing are just plain different skills. The problem with "teaching programming by maintaining code" is that it is in a classroom setting with fairly clear "success" criteria. My personal experience is that you can satisfy the success criteria without understanding the code that you are "reading." Thus, whatever the merit of the idea in principle, it won't work in practice because the students are evaluated on the basis of metrics which measure comprehension of the code only in the most indirect way. At one time, the study of Latin was justified on the basis that it taught "logical thinking." The current philosophy seems to be that if you want to learn logical thinking, take a logic course. In other words, if you want to learn A, take a course in A not B. If reading code is such a great idea, it would seem that there ought to be courses like "CS 105 - Great Masterpieces of the Unix literature."