ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1949 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Title:
C++ Program Design (2ed)
Author:
James Cohoon&Jack Davidson
ISBN:
0 07 228235 5
Publisher:
McGraw-Hill
Pages:
896pp+CD
Price:
£??
Reviewer:
Brett Fishburne
Subject:
beginner's c++
Appeared in:
12-3
This book is an introduction to C++ programming and does very little with 'design'. The book is full of errors, which will swiftly confuse and frustrate new readers. The errors are rarely in the code, fortunately. The authors' attempts to demonstrate the output of their programs, as text or graphics, are frequently incorrect and often misleading. In the process of revising the book, the authors have made reference to code pieces that are no longer a part of the book and have poorly integrated the concept of a
namespace
by throwing it into an appendix with exception handling (although the STL is included fairly well). They even suggest that any file with a
.h
extension should be global in scope (p. 231)!

On the bright side object oriented programming is mentioned early and reinforced frequently, although classes are not addressed until very late in the book (Chapter 8 of 15). The authors also do an excellent job of presenting the assignment operator (

=
) as a distinct function from the equality operator (
==
). This distinction is often confusing for beginning programmers, but is well handled in this book.

The programming examples generally rely on the EZWindows library, which comes with the book and performs rudimentary graphics manipulation. EZWindows itself is absent the values of namespaces and the library is only explained late in the book (Chapter 11), long after it has been required for a variety of examples and exercises.

One other minor peeve was that in the first chapter the authors introduce a game (bug hunt) to be programmed, which they say will be addressed later - it turns out that later is the last chapter. Perhaps this would not be so bad except that the authors state in the preface that in their classes they do not actually teach the last chapter. Indeed, in their classes, they skip most of the latter half of the book (most of the chapter on arrays, all of the chapter on pointers and dynamic memory and the chapter on templates and polymorphism). Sadly, the authors don't spend enough time talking about what makes C++ great and too much time fooling around with graphics.

While this book has many good points, I would not recommend it for C++ design or programming.