[comp.software-eng] Cynic's Guide, part 5: Bookshelf

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