Based on the idea that readers are more likely to use a method successfully if they learn it early, this introductory C++ programming book opens with basic control structures and defining functions. The book has a motivational writing style and careful explanations that guide readers through each topic, building an understanding of C++ and good programming techniques.
A good introduction, but chapter ordering seems bizarre - e.g. several on data structures injected between introduction and elaboration on class inheritance.
Also some bad practices seemingly needlessly introduced - throwing an int as a method of passing data for example.
Also much repetition - a single page will state something once, have a highlight box with the text copy and pasted, and then state it again before elaborating. Multiple pages of example then follow. It will be mentioned again in chapter summary.
If it's important, the highlight box is good. But it doesn't need to also appear in main body, except to elaborate; not to restate. No one reads "body but no highlights". Chapter summary is good and I only object to it as it feels like the 50th time I'm reading the same text in some cases.
Could easily be trimmed 25% without losing ease of reading. Readers can re-read, it doesn't need to be stated twice.
-- * It doesn't need to be stated twice. * --
It doesn't need to be stated twice, because readers can re-read.
In summary: format could be improved by minimising repetition.
It's shallow depth and vagueness do not justify its length. The author's frequent tangents add nothing to the book's content and detract from the flow of his writing. Many of these little distractions would be better footnote clarifications. Furthermore, the author's style intimately links the presented content with far too frequent, cumbersome examples. And at the end of each section, the exercises are often dependent on the example code.
What's worse, Savitch can be inconsistent and misleading with the level of detail with which he relays information. For example, he often conflates the standardization of certain C++ features with their widespread adoption (in his explanation, not in his understanding I'm sure).
The quality of the book also sharply declines in the last few chapters. I stumbled over quite a few oddly-worded descriptions and uninspired examples, and I caught several glaring typos despite skimming faster than ever as I neared the end.
It's not a bad book, however, not at all. What it offers is a very high-level and very accessible introduction to the C++ language. After reading it (minus the appendices), I would consider myself a proficient novice in C++. My problem with its method is that it's not for me. One could learn C++ for free with a language reference like https://en.cppreference.com/w/. The advantage of a textbook is that it inherently offers a structured approach and hopefully facilitates deeper learning from a practical, experienced perspective. This book falters on the latter front in all but the most basic rules of thumb, while its odd structure is cumbersome for the novice. I disagree with the "black-box" approach this book takes, especially with regard to classes (and structs), withholding their explanation until after introducing several examples of them like strings, streams, and vectors.
I do not recommend reading Savitch's introduction to the time-constrained, the impatient, and anyone fond of brevity, doubly so if the would-be reader has previous programming experience: it is a pain to observe Savitch dance around calling a class a class for the first several chapters. While shiny new tools and toys are fun to use; their early introduction is a disservice to learning, in my opinion. I'd rather read about vectors, (which appear in the first few chapters), with templates and the rest of the STL for the first time, (described toward the very end), than wait over ten chapters finally to justify their existence.
Absolutely the best book of my programming degree, hands down. My professor chose the best books for computer science I & II classes (this one, and "Data Abstraction & Problem Solving with C++ as the follow-up in the next class). I kept this one and it still sits on my shelf dog-eared, marked up, and well-loved. I learned more from this book than any other during my degree.
Good introduction and well written up to chapter 12. Things fall apart in Chapter 13. It did a better job explaining and using inheritance and polymorphism compared to Dale (C++ Data Structures). In general the example code in this book is without error. Needs to be more detailed regarding operator overloads.
I read this book before starting a C++ class and I thought this book was much better written than the book were using in class. I think Savitch did a good job breaking down the code examples well for a beginner and introduces things at the perfect rate. I thought the chapters needed a little reorganizing though, as it seemed like some of the concepts were introduced in a weird order. But I noticed that the newer editions have pretty drastic changes in chapter numbers, so maybe that's been fixed. This book would be a little slow for people who already know a object oriented coding language.
CSC201:Structured Programming Fall 2011-2012 SuTuTh 3-3:50 pm
I learned the basics of programming on this course..C++ is cool and sometimes boring.. we still didn't finish the book..we gonna complete on it next semester.
CSC202:Object Oriented Programming Spring 2011-2012 SuTuTh 12-12:50 pm
This was a very clear and concise introduction to basic programming task with C++. I especially enjoyed the personality and selected quotes that started each section.