CS23 Spring '07 - Some recommended books

There is no required textbook for this course,
but a number of books address and comment of many of the topics disscussed here. Reading relevant chapters from these books, either copies from the library or purchased copies, will increase the depth of your understanding.

Dartmouth College Library has subscribed to Safari Tech Books online. Safari Tech Books Online provides electronic versions of the most current editions for books in the areas of computer programming, computer applications, network administration, web design, and related topics. Full text from more than 1400 current books from O'Reilly, Adobe Press, New Riders, Peachpit Press, Prentice Hall PTR and more are included in the subscription. Visit: http://proquest.safaribooksonline.com/ via a Dartmouth IP address.

You may like to read a review of any book you are considering. A good, independent, review website is provided by The Association of C & C++ Users (free registration required). Online bookstores, such as Amazon, also include many reviews by their customers.

If you feel that other students in the course would benefit from reading any other books, please let Chris McDonald know and their titles will be added to this page.


Books on the C99 programming language

In this course we are focusing on the ANSI/ISO-C99 Programming Language. While drafts on this most recent standard appeared in the mid-1990s, very few textbooks began to serious focus on C99 until after 2000. Please take this into consideration when considering books - do not automatically expect a book much older than 5 years to contain any relevant or correct discussion on C99. Obviously, a book into its 3rd, or higher edition, will have corrected many errors from its earlier editions, and very likely have included up-to-date descriptions of the current state of the C Programming Language.


Some introductory books on C
These are suitable as a first textbook on C.
A First Book of ANSI C, Fourth Edition
Gary Bronson
Publisher: Thomson Course Technology
Copyright: 2007
Publish date: February 2, 2006
ISBN: 1-4188-3556-0
ISBN-13: 978-1-4188-3556-9
768 pages.
Book on C, A: Programming in C, 4th Edition
Al Kelley & Ira Pohl
Publisher: Addison Wesley Professional
Copyright 1998
Published: Dec 29, 1997
ISBN: 0201183994
752 pages.

Some more advanced books on C
If you are already a strong programmer in Java or even C, then these books will be suitable for you.
Do not purchase one of these as a first textbook on C.
Pointers on C
Kenneth Reek
Publisher: Addison-Wesley
Copyright: 1998
ISBN: 0673999866
636 pages.
Data Structures: A Pseudocode Approach with C, 2/E
Richard Gilberg & Behrouz Forouzan
Publisher: Thomson Course Technology
Copyright: 2005
Publish date: October 11, 2004
ISBN: 0-534-39080-3
ISBN-13: 978-0-534-39080-8
672 pages.

Some REFERENCE materials on C
These are not materials or textbooks from which you will be able to learn C from scratch. They are listed here because they are often cited, well respected, definitive references on the C Programming Language. If you have a serious interest in the C Programming Language (or if you're a pedant) you may be interested in one of these (perhaps a secondhand copy).
Do not purchase one of these as a first textbook on C.
WG14 N1124
(warning, 550 pages)
The latest publically available version of the standard is the combined C99+Technical Corrigendums 1 & 2, dated 2005-05-06. This is a WG14 working paper, but it reflects the consolidated standard at the time of issue.
C99RationaleV5.10
(warning, 224 pages)
The rationale for the C99 standard.
The C Standard: Incorporating Technical Corrigendum 1
British Standards Institute
Publisher: Wiley
ISBN: 0-470-84573-2
September 2003
558 pages.
C Programming Language, 2/E
Brian W. Kernighan & Dennis Ritchie
Publisher: Prentice Hall
Copyright: 1988
ISBN10: 0-13-110362-8
ISBN13: 978-0-13-110362-7
274 pages.
The C Standard Library
P. J. Plauger
Publisher: Prentice Hall
Copyright 1991
Published: Jul 1, 1991
ISBN: 0131315099
512 pages.


Books reflecting on software development techniques

Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity.
By Joel Spolsky.

The chapters from this book are also available online.

The Art of Unix Programming
by Eric Steven Raymond.

The complete text of this book is available online.

The Practice of Programming
by Brian W. Kernighan and Rob Pike

C Interfaces and Implementations: Techniques for Creating Reusable Software
by David Hanson.

The Pragmatic Programmer: From Journeyman to Master
by Andrew Hunt and David Thomas
Addison-Wesley Oct 1999
ISBN: 020161622X.

Hackers and Painters: Big Ideas from the Computer Age
by Paul Graham
O'Reilly, 2004
ISBN 0596006624.