neff@Shasta.STANFORD.EDU (Randy Neff) (05/10/88)
------ The Cynic's Guide to Software Engineering ------ ------ an invitation to dialogue, starting with the personal view of ------ ------ Randall Neff @ sierra.stanford.edu ------ ------ May 10, 1988 part 5 ------ ------------------------------------------------------------------------------ Software Engineering Bookshelf A recent comp.software-eng message was complaining about a code comment that refered to a particular book, page, and algorithm for full explaination. This started a chain of thought: what books should we expect every software engineer to have available; preferably own. Now obviously, each software engineering has a programming language ref manual (hopefully the standards document), operating system command and call manuals, libraries manuals and tool manuals for the current environment. Software Engineering: Mythical Man Month ... Fred Brooks Software Tools [in Pascal] ... B.W. Kernighan and Plaugher Algorithms: The Art of Computer Programming (three vols) ... Donald Knuth Algorithms ... Robert Sedgewick Fundamentals of Computer Algorithms ... Horowitz and Sahni Computers and Intractablity ... Garey and Johnson Database: (can't think of definitive book) Operating Systems: (can't think of definitive book) Compilers: Compilers: Principles, Techniques, and Tools ... Aho, Sethi and Ullman Graphics: Fundamentals of C.G. ... Foley and van Dam User Interface: (can't think of definitive book or any book here) Networks: (can't think of definitive book) Numerical Analysis: (can't think of definitive book) Science Fiction: Shockwave Rider ... John Brunner Moon is a Harsh Mistress ... Robert A. Heinlein True Names ... Verner Vinge What other topics should be included? What other books would you recommend?
joss@ur-tut (Josh Sirota) (05/11/88)
In article <2768@Shasta.STANFORD.EDU> neff@Shasta.UUCP (Randy Neff) writes: >Operating Systems: > (can't think of definitive book) > >Science Fiction: > Shockwave Rider ... John Brunner > Moon is a Harsh Mistress ... Robert A. Heinlein > True Names ... Verner Vinge > >What other books would you recommend? Operating Systems: Operating System Concepts ... Peterson & Silbershatz Operating Systems, Design and Implementation ... Tanenbaum Science Fiction: The Hitchhikers Guide series ... Douglas Adams Stranger in a Strange Land ... Robert Heinlein The Dispossed ... Ursula LeGuin The SciFi discussion is gonna go crazy actually, on second thought it probably shouldn't be discussed here ... Josh -- Josh Sirota INTERNET: joss@tut.cc.rochester.edu BITNET: joss_ss@uordbv.bitnet ur-tut!joss@cs.rochester.edu UUCP: ...!rochester!ur-tut!joss
rfm%urth@Sun.COM (Richard McAllister) (05/11/88)
In article <2768@Shasta.STANFORD.EDU> neff@Shasta.UUCP (Randy Neff) writes: >This started a chain of thought: what books should we expect every >software engineer to have available; preferably own. > >Software Engineering: > [...] >Database: > (can't think of definitive book) Chris Date's two-volume "An Introduction to Database Systems" is probably the right one. Its only flaw is excessive reverence toward the relational model. Reading his "Relational Database: Selected Writings" would help as it is full of more polemical papers which help expose Date's biases; once you know what those biases are you can safely use the general work. Perhaps a book on database design ought to be added, though I can't think of any that are general enough to recommend in a list like this. DB design books tend to present a single method rather than taking a global view. Rich McAllister (rfm@sun.com)
EGNILGES@pucc.Princeton.EDU (Ed Nilges) (05/11/88)
In article <2768@Shasta.STANFORD.EDU>, neff@Shasta.STANFORD.EDU (Randy Neff) writes: > >A recent comp.software-eng message was complaining about a code comment that >refered to a particular book, page, and algorithm for full explaination. >This started a chain of thought: what books should we expect every >software engineer to have available; preferably own. > Hurray! You are to be commended strongly for this posting. A recent COMPUTERWORLD ad showed a wizened old gent scratching his head over a thick tome entitled "Kernighan C", one of the most clear, elegant, and appropriately sized texts ever written in our field, and the ad claimed that you could learn C "by watching TV". We need to fight this kind of nonsense. Database C. J. Date, AN INTRODUCTION TO DATABASE SYSTEMS. Reading, MA, 1977: Addison-Wesley Publishing Company. This is the best and most complete book I know of. It may have been subjected to further editions and I believe I've seen further volumes. Software Engineering Weinberg, Gerald M., The Psychology of Computer Programming. New York, 1971: Addison-Wesley Publishing Company.
karenc@amadeus.TEK.COM (Karen Cate;6291502;92-734;LP=A;60sC) (05/12/88)
In article <2768@Shasta.STANFORD.EDU> neff@Shasta.UUCP (Randy Neff) writes: > >Software Engineering: > Mythical Man Month ... Fred Brooks > Software Tools [in Pascal] ... B.W. Kernighan and Plaugher > >Algorithms: > The Art of Computer Programming (three vols) ... Donald Knuth > Algorithms ... Robert Sedgewick > Fundamentals of Computer Algorithms ... Horowitz and Sahni > Computers and Intractablity ... Garey and Johnson > >What other topics should be included? >What other books would you recommend? The first thing that popped up in my mind is "Data Structures". Having only seen excerpts from a couple of the listed books, I don't know whether this topic is included in the others... > >Science Fiction: Well.... Nah, we don't need A sci-fi war... Karen A. Cate Tektronix Inc, Beaverton OR tektronix!amadeus!karenc -OR- karenc@amadeus.LA.TEK.COM i n e w s f o o d
jxh@cup.portal.com (05/13/88)
My bookshelf contains, among others, this notable title under Software Engineering: Reliable Software through Composite Design, Glenford J. Meyers, VNR 1975 It has much about modules, module coupling, module strength, and decomposition of a project into modules. When I took an untrained programmer under my wing, and we were going to use Modula-2, I made him read this book. It has the depth and breadth that Wirth's language specification, perforce, cannot contain, and it is very good medicine for programmers just starting out. C programmers, especially, should understand the inherent module coupling that the language allows (enforces?) so that they can behave without having to rely on the compiler to tell them what's wrong (which it won't). It's not limited to Modula-2 at all! I also must second the nomination of: The Psychology of Computer Programming, Gerald M. Weinberg, VNR 1971. Jim Hickstein, VSAT Systems, San Jose, CA (408) 435-8016 jxh@cup.portal.com ...!sun!portal!cup.portal.com!jxh
peter@ficc.UUCP (Peter da Silva) (05/17/88)
In article <2768@Shasta.STANFORD.EDU>, neff@Shasta.UUCP writes: > Software Engineering: > Mythical Man Month ... Fred Brooks > Software Tools [in Pascal] ... B.W. Kernighan and Plaugher Personally I prefer the original. They didn't make any real changes to any of the algorithms (they still emulate recursion in a language that supports it directly), and the remove the Ratfor translator (a very nice piece of code... and about the only good reference to large op. precedence parsers I've found). > Algorithms: > The Art of Computer Programming (three vols) ... Donald Knuth I don't have these. I find Horowitz and Sahni much more practical in real life. > Fundamentals of Computer Algorithms ... Horowitz and Sahni Fundamentals of Data Structures ... Horowitz and Sahni > Operating Systems: > (can't think of definitive book) How about Comer (the XINU book), or Bach (the UNIX internals book)? Not very broad, but both pretty deep. You're right... no real frontrunners here... > > Compilers: > Compilers: Principles, Techniques, and Tools ... Aho, Sethi and Ullman Or an earlier version such as "Principles of compiler design". > User Interface: > (can't think of definitive book or any book here) The Smalltalk collection is very useful. > Science Fiction: > Shockwave Rider ... John Brunner > Moon is a Harsh Mistress ... Robert A. Heinlein No way. All the good quotes are already in Brooks. > True Names ... Verner Vinge > What other topics should be included? Realtime/SCADA would be nice. Read any good books lately? -- -- Peter da Silva, Ferranti International Controls Corporation. -- Phone: 713-274-5180. Remote UUCP: uunet!nuchat!sugar!peter.
jms@close.columbia.edu (Jonathan M. Smith) (05/17/88)
Some attempts to fill in the blanks: Database: C.J. Date, "Introduction to Database Systems". Vol. I&II Numerical Analysis: Ralston & Rabinowitz "A First Course in Numerical Analysis". This is particularly useful when coupled with either the CRC Standard Math Tables or the National Bureau of Standards' "Handbook of Mathematical Functions". Networks: Tanenbaum's "Computer Networks" seems reasonable. Operating Systems: Deitel's "Introduction to Operating Systems" is a good choice, especially when coupled with a practical treatment, e.g., Comer's "Operating Systems Design: The XINU Approach" or Tanenbaum's book on MINIX (I forget the title). I suggest (if you can beg, borrow, or steal it) a copy of the Bell System Technical Journal, July-August 1978 (UNIX System Issue). I think AT&T still sells them (expensive, last time I checked) from an office at 100 JFK Parkway, Short Hills, NJ. There's a lot of good reading there! -Jonathan
smryan@garth.UUCP (Steven Ryan) (05/19/88)
Programming Languages: The Theory of Parsing, Translation, and Compiling, vols 1 and 2 Aho and Ullman A reference book rather than a college textbook like the dragon book. Sometimes the dragon wins. sm ryan
reggie@pdn.UUCP (George W. Leach) (05/19/88)
In article <2768@Shasta.STANFORD.EDU>, neff@Shasta.UUCP writes: > User Interface: > (can't think of definitive book or any book here) Designing the User Interface, Ben Shneiderman, Addison-Wesley, 1987. Also, a useful but somewhat obscure book on the graphical presentation of information: Semiology of Graphics: Diagrams, Networks, Maps, Jacques Bertin, Translated by William J. Berg, University of Wisconsin Press, 1983 -- George W. Leach Paradyne Corporation ..!uunet!pdn!reggie Mail stop LF-207 Phone: (813) 530-2376 P.O. Box 2826 Largo, FL 34649-2826
jxh@cup.portal.com (05/20/88)
More books from my shelf: User Interface: The Elements of Graphing Data, William S. Cleveland, Wadsworth 1985 (ISBN 0-534-03729-1) "Copyright 1985 Bell Telephone Laboratories, Inc., Murray Hill, New Jersey" ^That says quite a bit by itself, but I didn't even notice it until today. This is another book that everyone should read. It lays down some laws about what is right and wrong in making graphs (not necessarily computer-generated), but goes further and actually *justifies* the dogmas handed down, and does so quite well. All of the concepts presented are based upon experiments in human perception. Very compelling! Another one for User Interace: Color and the Computer, ed. H. John Durrett, Academic Press 1987 (ISBN 0-12-225210-1) ...and speaking of human perception, here is an extremely detailed treatment of color vision and its effect on the perception of information presented by computers. It is a set of papers, so it ranges widely across different applications. The first few papers are quite theoretical, defining Color Science and so on, but the overall premise, that of computer-generated color displays, keeps it on track for implementors (like me). The paper about process control gives a nice example of allocation of colors to meanings, and exhorts the programmer to be sparing and consistent in their use; good advice for any programmer doing anything at all. I realize that I'm doing book reviews while this started merely as a list. (Be consoled: I offer recommendations only after serious consideration.) Shall I continue? Does anyone out there second my nominations of these for the Great List? Does anyone out there manage to stagger out of the bookstore having spent less than $300? :-) Honestly, sometimes I think I like *reading* about programming better than I like *doing* programming. -Jim Hickstein, VSAT Systems, Inc., San Jose, CA jxh@cup.portal.com ...!sun!portal!cup.portal.com!jxh
reggie@pdn.UUCP (05/20/88)
In article <663@garth.UUCP> smryan@garth.UUCP (S M Ryan) writes: >Programming Languages: > The Theory of Parsing, Translation, and Compiling, vols 1 and 2 > Aho and Ullman > >A reference book rather than a college textbook like the dragon book. Oh really???? Not when I took a compiler course. We went through both volumes :-( :-( I still feel chills up my spine when I think of it! -- George W. Leach Paradyne Corporation ..!uunet!pdn!reggie Mail stop LF-207 Phone: (813) 530-2376 P.O. Box 2826 Largo, FL 34649-2826