An Excellent Textbook for a C++ Course

Long quest may at last be satisfied
Reviewed by Conrad Weisert, December 8, 1998

"A bloated language doesn't need to be explained in a bloated textbook."
- the object-oriented curmudgeon.

Although the copyright date indicates that this book has been out for three years I somehow missed it until now.

Since 1990 I've been searching for a suitable textbook to support the courses I give (both commercial and academic) in OOP/C++. Among the several hundred available books on the topic just about every one I've examined had some serious flaw, ranging from catastrophically misguided examples to impenetrable explanations.

For a while we made do with the compiler vendor's manuals (Borland's weren't bad, but they were less than cooperative on making copies available.) Later we switched to Stroustrup, which students never liked much but we could defend as authoritative and complete. Recently, the situation has been getting even worse, as authors struggled to update their offerings to cover every new language feature as well as hosts of STL specifics.

Surprisingly the current editions of the classics by Stroustrup and by Lippman are less suitable as course texts than those authors' own earlier versions.

In this modest volume Satir and Brown wisely chose to concentrate on just the topics the student needs to grasp the object-oriented paradigm and the C++ facilities that support it. The explanations are lucid, and the sequence is flexible enough to fit any enlightened C++ course. The examples may be weak, but that's what our course materials are for.

What I like best as an instuctor is that the book doesn't get in the way. I don't have to fight the book, to distort the logical sequence of concepts and techniques, or to keep apologizing to the students for the authors' gaffes. I can make reading assignments and build my handout materials on what's in the text.

Unlike the bewildering 900-page monsters, Satir and Brown's book ought to leave the student feeling confident of having mastered something. They'll be eager to go on both to practice what they've learned and to learn more specialized techniques.

A minor drawback is that the book assumes a knowledge of C. For a course on C++ for C programmers, that's fine, but otherwise the course will need a second text. Fortunately, these two authors have written a separate volume on C progamming, which I've ordered but haven't yet examined. [correction December 14: It wasn't the two authors but rather the publisher, who wrote on the back cover "Take a look at our companion book, Practical C++ Programming. That book, ISBN 1-56592-306-5, is actually by Steve Oualline, and it looks pretty good.]

The omission of STL material is not a drawback but a virtue. Students just learning C++ are far from ready to tackle the STL's complexities. They need some time to practice and reflect on the basic concepts, before confronting STL techniques, either on their own or in a follow on course. I discuss this issue in a paper on Teaching C++. and recommend an excellent STL-specific book in a separate review.

Return to book reviews.
table of contents.