Approved C Books for use in CIS 231

An ongoing challenge for this class is finding a C textbook that covers the topics we cover, is well-written, and has quality code.  Since C is a pretty venerable language and textbooks tend to favor the new stuff, the situation will probably not improve soon.

Each of the books listed below has its own strengths and weaknesses.  Some books may be better choices for certain people.  You are encouraged to investigate these books (copies are available at most bookstores) to find the best fit for you.  Helpful comments follow.


The default C books (if you can't decide, these are the best fit for most people) for this course are:

Hanly, Jeri and Elliot Koffman.  Problem Solving and Program Design in C (pref. 5th Ed.).  Addison Wesley, 2007.  ISBN:  0-321-40991-4

**This book covers all the topics we’ll talk about though it can be a bit verbose at times.  It’s pretty easy to read though I have some reservations about the code examples.  This book is also used at Poly so finding a used copy locally shouldn’t be too tough.

Prinz, Peter & Ulla Kirch-Prinz.  C Pocket Reference.  O’Reilly, 2002.  ISBN:  0-596-00436-2

**This is a handy, cheap ($10) reference that allows you to quickly find language details.  That info is also found online, so it’s more of a convenience.  As pocket guides go, it’s hard to beat.


Other books that might be a fit for you depending on your background:

Etter, Delores.  Engineering Problem Solving with C, 3rd Edition.  Pearson Prentice Hall, 2005.
ISBN: 
0-13-142971-X

**This book is used for our 217 course and it’s an excellent fit for that.  However, since it was designed for a class of lesser scope it does not have material on all of the topics we will cover.  It’s also (by design) more pragmatic and does not have the depth and background on topics that other books may have.

Weiss, Mark Allen.  Efficient C Programming.  Prentice Hall, 1995.  ISBN:  0-13-362658-X

**This is an outstanding book for learning C but can be difficult for a beginner.  It’s got a ton of great info and background on C, but it can be a bit “thick and chewy” and therefore may not be easy for some to read.  Another advantage of the book is written by the author of our Java book which allows for some helpful side-by-side comparisons between the languages.  This book is not easy to come by though used copies are out there.

Kernighan, Brian W. & Dennis M. Ritchie.  The C Programming Language, 2nd Edition.  Prentice Hall PTR, 1988.  ISBN:  0-13-110362-8

**This book, better known as “K&R”, is THE book on C.  This owes in not small part to the authors being the originators of the language.  It offers great insights via example of the programming thought process, but can be challenging for beginners.  The explanations can be a bit terse and/or hard to follow.  You definitely want to read this book at some point, but it may not be a best first textbook.  Look through it and decide for yourself.

Connely, John.  C Through Objects.  Scott/Jones, 1996.  ISBN:  1-881991-49-0.

**Some people are confused by the title of this book.  C is not an object-oriented language (Objective-C is a notable variation that is O-O) so the idea of objects in this book may be different than you’re used to.  Regardless, this is an excellent book that spends most of its time on the most important topics.  The code is excellent and comes from one of Poly’s best CSC professors.  This is a very readable book but as with the Weiss book may be hard to locate.

 

As you might figure, I have read many other C books but cannot currently give any others a strong recommendation.  You may encounter another book that works for you and if so that’s great.  If you think that book should be considered for this list, please let me know.