UH2@PSUVM.BITNET (Lee Sailer) (02/17/88)
I said a while ago that programmers do not seem to use ``handbooks'' as much as hardware engineers, and this distinguished programming from engineering. I received the interesting post attached below, suggesting that Gonnet's Handbook of Algorithms was such a book. It seems to me that Knuth's books could qualify, except that they are tough going for the average programmer (I certainly find them difficult). I sometimes find undergrad texts like Sedgewick's Algorithm's useful, and years ago I used to steal a lot from Newman and Sproull's graphics book. So--what book's do you keep next to your terminal for ready reference when you need to write a code fragment that you know has been done a thousand times before? Lee Received: from cayuga.cs.rochester.edu by VM.CC.ROCHESTER.EDU ; 12 Feb 88 03:57:42 EST Received: by cayuga.cs.rochester.edu (5.52/h) id AA11222; Fri, 12 Feb 88 03:59:42 EST Received: by rigel.cs.rochester.edu (3.2/h) id AA16258; Fri, 12 Feb 88 03:59:35 EST Date: Fri, 12 Feb 88 03:59:35 EST From: stuart@cs.rochester.edu Message-Id: <8802120859.AA16258@rigel.cs.rochester.edu> To: uh2%psuvm@vm.cc.rochester.edu X-To: ur-tut!sunybcs!boulder!hao!gatech!ukma!psuvm.bitnet!uh2 Subject: Re: Is it Art or is it Engineering (Clarifications) References: <6879@agate.BERKELEY.EDU> <4618@teddy.UUCP> <635@cresswell.quintus.UUCP> <4620@teddy.UUCP> <32637UH2@PSUVM> Such things exist, for example: Gaston H. Gonnet Handbook of Algorithms and Data Structures Addison-Wesley -- International Computer Science Series Reading, Massachusetts, 1984 ISBN 0-201-14218-X This book covers sequential search, sorted array (binary) search, hashing, recursive structure (tree) search, multidimensional search, sorting arrays, sorting other data structurs, merging, external sorting, priority queues, k-th element selection, basic arithmetic, special arithmetic, matrix multiplication, and polynomial evaluation. Many of these topics have lots of alternative approaches, with different advantages and disadvantages. For example, Gonnet gives seven different methods for maintaining priority queues. In addition for formal analyses and empirical studies to satisfy the real engineer as to the appropriateness of a given solution to a given problem, the various algorithms are given in Pascal and/or C for the programmer who just wants to hack up a solution and doesn't care. So, you just have to look around. Of course, you have to understand that an engineer (software or otherwise) is expected to know when to apply various tools and that may involve some substantial analysis of the problem under attack. That skill comes from training; it's not something you can just pull out of a handbook. Stu Friedberg {ames,cmcl2,rutgers}!rochester!stuart stuart@cs.rochester.edu