A Return to Fundamentals
C++: An Introduction to Data Structures, by Larry Nyhoff, is an undergraduate course text on data structures and associated algorithms as expressed in the C++ language. It is modeled on curriculum recommendations of the ACM (http://www.acm.org/education/curricula.html) for CS2, and its view of C++ is based on the 1997 ANSI/ISO Draft. It is an extraordinary textbook forming an excellent introduction to the discipline of programming.
Writing textbooks is much harder than writing general computing books. While authors writing for general publication can cater to their own tastes, textbook authors must strive for both orthogonality and breadth, knowing the reader's exposure to the matters under discussion may be limited for years to those encountered in the textbook. At the same time, the presentation must make the topics memorable.
Nyhoff, of the Calvin College Department of computer science (Grand
Rapids, Michigan), succeeds in satisfying these goals. The presentation
is both rich and well targeted to undergraduates. It is written in a style
surprisingly engaging even for the expert. This is the clearly one of the
best volumes of its genre.
. . .
Nyhoff consistently has students learn how to solve a problem "by hand" in application code before demonstrating to them that the solution is already embodied in one or another standard library. Thus, different is the computer science approach from the weak habits inculcated by help files accompanying popular microcomputer compilers.
. . .
If you are teaching an undergraduate introduction to computer programming and either have no specific preference as to programming languages, or actively desire to teach the course in well-stepped, rigorously standard C++, this book is for you.
Explanation of ERCB rating scale: No stars = unacceptable, 1 Star = marginal, 2 Stars = average, 3 Stars = above average, 4 Stars = exceptional.
Excerpts of messages from users:
Loyola College: " I'm looking forward to using your text. We evaluated a large number. (I'm very fussy about programming style and documentation--also I was happy to see mention of the STL.) It will be used for a 2-course sequence, Data Structures & Algorithms I and II, our sophomore software sequence."
Microsoft Outlook: I am a computer engineering major at the University
of Michigan and work for Microsoft in the summers. Just came across your
book on C++ programming, great book, I was very happy that you covered
stacks,binary trees, and linked lists. Some books tend to water that
material down (XXXXX) haa :). Anyways, just thought I'd email you and
express my opinion. Thanks.
Salisbury State: I like the Nyhoff lab manual for his data structures book ...
it is nicely organized and formatted; the exercises are clear and well-defined (in terms of student expectations); and the exercises fit nicely with what I teach in class.
California State at Sacramento: The more I read your book, the more I like it. You say
exactly the things I emphasize to my students so I look forward to using the
U.S. Naval Academy: I am pleased with the supplements you have provided to date for your text on data structures which we have adopted this fall.