Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Computer programming with C++
Pimparkhede K., Cambridge University Press, New York, NY, 2017. 1014 pp. Type: Book (978-1-316506-80-6)
Date Reviewed: Jan 19 2018

I cannot recommend this book under any circumstances--not as a textbook for classroom instruction, not as a reference in a university library, and not for self-study. The book has many faults, which I will summarize under three overlapping groups: diction, presentation, and content.

Diction. I was disheartened as soon as I started reading this book: the first sentence of chapter 1 has a grammatical error, and it only takes a few paragraphs to realize that the author’s grasp of the niceties of English grammar and composition would not survive a freshman composition course. The writing, particularly at the beginning of the book, is verbose and highly repetitious; idiomatic expressions reveal strong foreign influences that are totally unfamiliar to native English speakers. Grammatical errors are rampant.

This kind of writing is certainly not found at international academic levels, nor at Internet sites such as Quora, StackExchange, and ResearchGate, that publish professional opinions from all over the world. I doubt a peer-reviewed journal would accept anything submitted with such abundant grammatical errors and idiosyncratic ways of expression.

Presentation. The major flaw here is the absence of an index, an egregious flaw in a book with 1001 pages. I was unable to ascertain whether many topics were mentioned anywhere in the book, much less how well they were covered. There are no references.

The intended audience is anyone who wants to learn the fundamentals of programming. Despite its title, the book attempts to teach both C and C++, so the author fastidiously highlights features that apply to one language but not the other. This makes the book larger than needed and more difficult to follow.

Explanations of the basics mash together concepts at different levels of abstraction and contain references to advanced or undefined concepts.

The author abuses standard, commonly accepted nomenclature. For example, he says that classes are templates. In a sense this is true; but it is also confusing, since the term template has a very specific technical meaning in C++. He calls assignment statements initializations and describes the terms object and structured programming in ways unrecognizable to anyone unfamiliar with these concepts. While discussing rvalues and lvalues, he says that a function decays [sic] to a reference variable, which returns a memory location.

The author is confused about the difference between a text editor and an integrated development environment (IDE). He says that an editor initiates compilation and execution of a program. He gives as an example a screenshot of Turbo C++ running under DOS. He does not mention operating system shell commands.

Content. The author does not say which version of the C or C++ standards he covers. This makes it very difficult to check whether the coverage of the language is adequate. My general sense is that it is not. For example, he says that local variables within loops can be created in C++ but not in C. However, C99 expanded the concept of block heading to include code controlled by loops (for loops and while loops) and if statements, so C variables can be local to a loop.

It is unclear to me whether the discussion of lvalues and rvalues corresponds to how these are understood by C++90 or C++11.

Among the things I expected to find but did not see are: move semantics, namespaces, the C++ Standard Library, the Standard Template Library, file scope, block scope (at least not using that term), and protected access. Perhaps they are there, but I did not find them.

The reader is not asked to write a complete program, not even once. Readers are asked to determine whether programs or program segments contain errors. Beginning with chapter 5, there are complete sample programs.

I am surprised that this book was published, especially by Cambridge University Press. The name Cambridge University, after all, connotes quality and prestige at the highest level.

As a reviewer, I like nothing better than to say that I enjoyed reading a book, explain why, and recommend it. Here, I find myself at the opposite end: I do not recommend this book--emphatically! Learning C++ is not an easy task. Relying on this book to do it would simply make it more difficult.

Reviewer:  Edgar R. Chavez Review #: CR145795 (1804-0162)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
C++ (D.3.2 ... )
 
 
Object-Oriented Programming (D.1.5 )
 
Would you recommend this review?
yes
no
Other reviews under "C++": Date
A C++ toolkit
Shapiro J., Prentice-Hall, Inc., Upper Saddle River, NJ, 1991. Type: Book (9780131276635)
Dec 1 1991
Borland C++ handbook
Pappas C., William H. I., McGraw-Hill, Inc., New York, NY, 1991. Type: Book (9780078810152)
Feb 1 1993
Going from C to C++
Traister R., Academic Press Prof., Inc., San Diego, CA, 1993. Type: Book (9780126974126)
Apr 1 1994
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy