[comp.lang.c] Summary of "what C book to use" replies

roy@phri.UUCP (12/11/86)

	A while back, in <2495@phri.UUCP>, I asked for recommendations on
what text I should use to teach C to a bunch of non-computer-types.  Here's
a summary, liberally edited, of what people told me.  I managed to thank
some of the people who wrote me, but not everyone -- if you didn't get a
personal thank-you note; don't feel slighted, I just got snowed by the
volume.  A few people posted followup articles to mine; their comments are
not included here.

	My only comment is that several people recommended "The C Puzzle
Book".  This is exactly *not* what I was after -- I mean, can you imagine a
bunch of PhD biologists giving 2 hoots about figuring out if you meant *++
or ++*?  I found the book rather dry and impractical as a tutorial text.

/roy
----------------

From: cmcl2!seismo!utah-cs!utah-gr!thomas (Spencer W. Thomas)
Organization: University of Utah CS Dept

Here's a list I saved from the net a while ago:

>From utah-cs!harpo!floyd!whuxlb!pyuxll!abnjh!lute Mon Aug 29 16:11:14 1983
[Note the date: things might have changed in 3-1/2 years -- RHS]

Books 1 & 2 were most often cited in the 30+ responses I received, as
especially helpful for the individual who has no prior (or little)
programming experience.  Books 9 & 10 are supplemental books that some of
you may enjoy, or want for your library.

1.	The C Primer by Les Hancock and Morris Kreiger, McGraw-Hill, 1982 
	(price:  $14.95)

2.	Learning to Program in C by Thomas Plum, Plum Hall Inc., 1 Spruce Ave.,
	Cardiff, N.J. 08232

3.	Programming in C by Stephan Kochan, Hayden Book Co., 50 Essex St.,
	Rochelle Park, N.J. 07662 (price:  $18.95)  TO BE RELEASED SEPTEMBER,
	1983.

4.	A User Guide to the UNIX System by Jean Yates & Rebecca Thomas,
	Osborne/McGraw-Hill

5.	Introducing the UNIX System by Henry McGilton & Rachel Morgan,
	(A Byte Book), McGraw-Hill, 1983.

6.	C Programming Guide by Jack Purdum, 7960 Castleway Dr., Que Publishing,
	Indianapolis, Ind. 46250, 1983.

7.	The UNIX System by S.R. Bourne, International Computer Science Series
	of Addison-Wesley, 1983.

8.	The C Programming Language by Brian W. Kerninghan and Dennis M. 
	Ritchie, Prentice-Hall, Englewood Cliffs, N.J. 07632

9.	The C Puzzle Book by Alan Feuer, Prentice-Hall, 1982. (price:  $14.95)
	"This book is an excellent companion to Kerninghan and Ritchie.  It is
	a collection of puzzles, written in C, that will test your knowledge of
	the idiosyncracies...of the C Language.  The puzzles are all of a type:
        a short program is given, usually ending with one or more printf's.
	Your task...is to discover what the printf's will say.  No compiling
	the program and cheating; besides, the answers are given on the next
	page.  Even better, each answer is derived in an appendix, so you can
	find out why that strange piece of code gave you such an unexpected
	output."

10.	C Notes by C.T. Zahn, Yourdon, Inc., 1979.  
----------------

From: jim nelson <cmcl2!seismo!mcnc!ecsvax!nelson>

A good book, which we use and like down here, but which is not (I think)
widely known is "A Book on C", by Kelly and Pohl, Benjamin-Cummings
publisher.
----------------

From: "J. Jenness - Systems Design" <cmcl2!seismo!ubc-vision!watmath!watdcsu!jjenness>
Organization: U. of Waterloo, Ontario

1) "The C Library"; Kris Jamsa, Osborne-McGraw-Hill, c.1985
	Basic macros, library tools and I/O (I have had no end of I/O
	problems with interactive C I/O until I implemented the I/O 
	routines outlined in this book.) Gives a reasonable idea of what
	is happening behind the scenes in some of the systems "xxx.h"
	libraries.

2) "Advanced C Techniques and Applications", G.E.Sobelman and D.E.Krekelberg,
	QUE Corporation, Indianapolis, c.1985
	Again basic pointer functions, link lists, etc. The second half is
	devoted to an IBM/PC clone graphics package that pseudo-emulates
	the window and menu capabilities of a Mac. (I disclaim all knowledge
	pertaining to these two products). I did find the first half useful
	though.

3) "Advanced C", Herbert Schildt, Osborne-McGraw-Hill, c.1986.
	I found this one the best of the 3 listed here. It includes examples
	on sorting, searching, queues, stacks, dynamic allocation, encription
	data compression, expression parsing, converting Pascal and BASIC to
	C, etc... It is certainly talking about more advanced concepts.

All 3 have source code available in atleast IBM/PC diskette format. 
----------------

From: cmcl2!rutgers!sdcrdcf!eric (Eric Lund)
Organization: System Development Corporation R&D, Santa Monica

My second favorite book on C is "The C Puzzle Book" by Alan R. Feuer
(Prentice-Hall).  I would buy it just to have the precedence,
associativity, operator summary, and type promotion tables all in one
place (appendices 1-4).

Why do I like The C Puzzle Book for more than the appendices?  The
exercizes are fun, and working the exercizes teaches you where to look
for the boobytraps before you go out and get yourself nailed while
writing code for real.
----------------

From: cmcl2!rutgers!clyde!cuae2!ltuxa!we53!sw013b!dj3b1!killer!fmayhar

The one that taught me C (I started out as a FORTRAN programmer) was the QUE
C Programming Guide (McGraw-Hill), available in any Waldenbooks or B. Daltons.
I swear by it.  It makes things understandable.  K&R was Greek, as far as I was
concerned.
----------------

From: Steve Lesh (ISC | howard) <cmcl2!seismo!BRL.ARPA!lesh>

	Let me just second Larry Lippman's recommendation of Marc Rochkind's
book for Unix system calls and add Steven Kochan's C programming text to the
list of introductory C programming books.
----------------

From: philabs!seismo!sun!portal!Andy_Tough-guy_Seligman%cupertino.pcc
X-Origin: The Portal System
X-Possible-Reply-Path: sun!portal!cupertino.pcc!Andy_Tough-guy_Seligman

I am learning C with "Programming in C " by Steven Kochan, Hayden.
My background is similar to that of the people that you describe,
extensive experience with other languages, and some UNIX background.

This book contains complete working programs to illustrate every feature
described, and is organized as a tutorial, with exercises at the end of
each chapter. It speaks neither above  nor below my intelligence and
ability to grasp new concepts.
----------------

From: cmcl2!rutgers!clyde!cbatt!cbdkc1!jap
Organization: AT&T Bell Laboratories, Columbus, OH

The book you probably want is _Programming in C_ by Stephen Kochan, 1983, 
Hayden Book Company.  It's UNIX based, 320 pages of text (plus 50 pages
of appendices), and tutorial in nature.  The table of contents is:

	Chapter (pages):
	 1. Introduction (3)
	 2. Some Fundamentals (6)
	 3. Writing a Program in C (7)
	 4. Variables, Constants, Data Types, and Arithmetic Expressions (17)
	 5. Program Looping (19)
	 6. Making decisions (27)
	 7. Arrays (19)
	 8. Functions (39)
	 9. Structures (24)
	10. Character Strings (34)
	11. Pointers (38)
	12. Operations on Bits (20)
	13. The Preprocessor (17)
	14. More on Data Types (8)
	15. Working With Larger Programs (6)
	16. Input and Output (23)
	17. Miscelleneous Features and Advanced Topics (13)

	Appendices:
	 A. Language Summary (30)
	 B. Common Programming Mistakes (4)
	 C. The UNIX C Library (8)
	 D. Compiling Programs Under UNIX (4)
	 E. The Program LINT (1)
	 F. The ASCII Character Set.

Have fun with the FORTRAN folks (I once had a FORTRAN programmer almost belt me
when I told him he could write a given piece of code in C without gotos).

                                      Jim Parker
----------------

From: cmcl2!rutgers!sdcrdcf!trwrb!felix!fritz!alvarado (Pat Alvarado)
Organization: FileNet Corp., Costa Mesa, Ca.

May I suggest "Programming in C" by Steven Kochan.
----------------

From: "guthery%ascvx5.asc@slb-test.CSNET" <cmcl2!seismo!RELAY.CS.NET!"4596::GUTHERY%slb-test.csnet">

[Note: this took the prize for "most confusing return address" :-) -- RHS]

I've found "The C Primer" by Hancock & Krieger a good teaching text.
----------------

From: Randolph Vires <cmcl2!seismo!osu-eddie!vires>

My vote is for PROGRAMMING IN C by Stephen G. Kochan.  I learned C by reading
K&R's book.  Eventhough I am a Computer Science major (Grad Student), I had
problems with pointers, structures, and I/O.  Kochan's book covers these 
areas in detail and has LOTS of nice examples.  He even talks about real
messy things like pointers to structures that contain pointers.
----------------

From: cmcl2!seismo!udenva!skajihar ("Lord of Sith" Kajihara)
Organization: U of Denver

what I used in an undergraduate class was 

     Kochan, Stephen G.
     Programming in C.  Hasbrouck Heights:  Hayden Book Company, 1983.

My reasons for suggesting it are:  1) it seems to be very clear about examples
and development; 2) it has provided me with an invaluable reference when I
could not understand what K&R were talking about; 3) it is based on the UNIX
system with examples from such which could be useful for the group that you
will be working with.

I am a physics major with some love of computers so this might be biased.  How-
ever, with the aid of this book and some perseverance, I managed to learn C
competently enough that it is my language of choice next to FORTRAN in all of
its various versions.
----------------

From: cmcl2!philabs!linus!axiom!adelie!cdx39!gold

If you have a copy of Byte around, check out the EcoSoft ad.
The compiler was cheap so I bought it, as well as Jack Purdum's C 
Programming book (Que Publishing Co.).  He either owns EcoSoft, 
or just runs the company.  I taught myself a lot of C with that 
book and compiler. 

The book goes through the C language with good example programs and
with comparisons between basic and C.  I don't know how suitable it
would be to use for a class, but it might be worth your looking into.
If you do not have a Byte around, send me email, and I'll send you
EcoSoft's phone number...the book should be available in major 
bookstores.
----------------
-- 
Roy Smith, {allegra,cmcl2,philabs}!phri!roy
System Administrator, Public Health Research Institute
455 First Avenue, New York, NY 10016

"you can't spell deoxyribonucleic without unix!"