Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!seismo!mimsy!chris From: chris@mimsy.UUCP Newsgroups: comp.edu Subject: Re: Resources and education Message-ID: <6413@mimsy.UUCP> Date: Wed, 22-Apr-87 11:48:25 EST Article-I.D.: mimsy.6413 Posted: Wed Apr 22 11:48:25 1987 Date-Received: Fri, 24-Apr-87 03:43:06 EST References: <780@killer.UUCP> Organization: U of Maryland, Dept. of Computer Science, Coll. Pk., MD 20742 Lines: 70 In article <780@killer.UUCP> elg@killer.UUCP (Eric Green) writes: >Barry Shein mentions that "Copying a bubblesort out of ACM algorithms >is not innovation". Someone else mentions a case where a student was >influenced by a partial program in another algorithms book. > >First, we have to figure out what we're here to do. In the case mentioned by Barry Shein, the students were no doubt supposed to do one or more of these: learn a language; learn about sorting; learn how bubble sorts are implemented. Copying the algorithm from a book is not a particularly good way to do these. (Not that it can never work. One can learn quite a bit simply by reading.) >In other words, the whole purpose of the thing is to get the program >written. Not in this case. >... For another example, when [working for a company] I needed to do >some hashing, I consulted Knuth. The job needed doing. The job needed >doing RIGHT. Without spending 6 months working through the math >(assuming that I had the Statistics background to do it at all). >The way to do it right, in the case of a well-known problem with a >well-known solution, is to look it up -- there is generally no reason >to re-invent the wheel. But first you must know that the wheel has been invented. How did you know you needed hashing? How did you know to use Knuth? Of all those hashing algorithms Knuth presents, how can you tell which one to use? Of course, this can be carried to an arbitrary depth (`How did you know you needed to write that particular program in the first place?', etc., ad absurdum nauseamque). The point, though, is that you have to know where to start when solving a problem. The more you know, the less chance there is that you will waste time solving the wrong problems---inventing square wheels, or copying round pegs only to put them into triangular holes. Aside: One of the things I dislike about the traditional school environment is that it assumes a linear approach to learning---that you should start with something small and very basic, then build on that, and keep building until you reach the state of the art and begin innovating. This approach is fine: it works, and it does not have to be boring. But it is not the only approach. One can also dive off the deep end, and sink or swim. I have done this with some of my own hobby-interests (e.g., digital electronics, when I was in junior high and high school). Sometimes one sinks; and if not, one's swimming ability is hard to judge, if only because the gradual approach is more common and familiar. To climb out of the metaphorical pool, it is conceivable that someone might pick up Knuth's books and learn quite a bit about computing, without ever having touched a digital computer. This person might well have a terrible time afterward in a regular curriculum. All the beginning classes would be terribly boring. This is why I believe that the ideal school is a log with a teacher on one end and a student on the other. (Incidentally, if we are going to argue about plagiarism, can we at least spell it correctly? Everyone seems to have copied the wrong spelling from the previous poster. :-) ) -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7690) UUCP: seismo!mimsy!chris ARPA/CSNet: chris@mimsy.umd.edu