ISBN9781418836405

Search:
For:   
C++ Programming: Program Design Including Data Structures, Third Edition

C++ Programming: Program Design Including Data Structures, Third Edition 4.00 of 5 stars

  • Author(s)  D.S. Malik,  
  • Binding  Paperback
  • ISBN  1418836400
  • ISBN-13  9781418836405
  • Publisher  Course Technology
  • Release Date  5/2/2006
What's this?

User Opinions

Find another book. Not for a beginner.
3/5/20071.00 of 5 stars
This book doesn't flow at all. It is hard to follow along. I am a beginner and this book almost has turned me off from programming all together. I recommended looking for another book.
Terrible introductory book
3/20/20072.00 of 5 stars
This is my first review of any book after buying many books from Amazon over the years. Generally I find reviews helpful when considering purchases, but I always take them with a grain of salt and supplement it with my own research before making a buying decision. I'm writing this review because I had such a negative experience with this book.

A little background on myself. I'm a self-taught programmer mostly working commercially in Visual Basic for the past 7 years. I've also done a lot of studying in C and C++, and recently decided to get a B.S. degree to further my career. My first course was programming fundamentals, and the textbook couldn't have been worse. I already knew much of the information covered in the first half of this tome, but I can honestly say it was poorly presented _to the beginning programming_ student. I'm not saying Malik doesn't know what he's talking about, I'm saying he tried to present C++ fundamentals to the absolute beginner and did a poor job of it. The first half of this book should have been cut, and the second half made its own book and be used in an intermediate course.

He repeats himself ad nauseum. Some might argue this is an effective teaching tool, however he goes to great lengths to repeat himself on even the most easy to understand concepts. The end result is you feel like you're swimming upstream making no progress, and I don't say this because I already know the basics. He takes pages and pages to explain even the most simple concepts to the point where you get frustrated and start to speed read or skip portions just to slog through the chapter. There is a word for this style of writing, it is called prolix.

The example programs were also poorly thought out. True, they make use of topics covered in the chapter (as any example ought to), but the "problems" (from a very high level view, all computer programs can be classified as solving one or more problems) they attempt to solve are the most mundane, boring examples imaginable. I can't see how any beginning CS student would want to keep programming after seeing the types of programs written in these examples. They could come away with the idea that all programs are like this. First of all, they are far removed from any real-world program. This is partly a consequence of GUI and platform dependent programming being an intermediate to advanced topic (at least in C++). Because of that, the examples should have been the bare minimum necessary to show how the chapter's topics are used. Instead, they go on and on at great length with a huge problem which incidently makes use of the chapter's topics instead of coming up with a program that actually does anything useful. And if a program is useful, it just might be interesting. If it's interesting, the student just might learn more! Keeping the student interested in the topic is by far a better approach to teaching than just repeating yourself and using boring examples. In all fairness, many programming books also take this (bad) approach, but Malik's book overdoes it.

Unfortunately, my school required this textbook for the C++ classes so I did not have any choice but to buy this book. If, however, you have the freedom to choose your own C++ text, I encourage you to look elsewhere. Unfortunately I don't have any other texts that I've read and could recommend.
Learn by example, taken to the extreme
6/12/20072.00 of 5 stars
By about page 689 I had read the word "suppose" once too often. Mr. Malik's coherence fell apart when he got to the object-oriented stuff, and he started to use examples to *start* explanations. His meandering paragraphs begun with the word "suppose" are generally not helpful. Don't let chapter 12 (Inheritance and composition) discourage you, though. It's the worst of them and it gets better after that.

If you like to highlight your textbooks you will be frustrated by this book. You will spend a lot of time pondering if you really want to highlight an entire 12-line paragraph when what is explained could be stated in a single sentence. So, here's a hint: Read each section between the purple headings through before highlighting anything. Sometimes you'll find your concise sentence further on. If you don't, make use of the white space to write one yourself. This will aid in memory, and save your highlighter.

This should have been a shorter book, and the object-oriented stuff should have received some editing for clearer, more concise language.

The example code is redundant and the explanations unnecessarily long. Each problem is exhaustively set up and explained, with code segments that are duplicated in the finalized code. You'll find yourself skipping the setup of the problem and going right to the finalized code to see if you understand it, and invariably you will, because it is not complex. The examples are uninteresting and demonstrate things that are simple.

One really nice feature of this book? You don't have to get 300 pages into it before it will lie flat on your desk. It stays open nicely and has bright, white pages.

A summary of the contents:

One chapter on computers, programming languages, the process of writing a program, and a description of and background on C++.

Almost six hundred pages on non-object-oriented C++ language stuff. It does not assume you already know programming. Tiringly verbose, but seems comprehensive and well-organized.

About 350 pages on the object-oriented features of C++. It's not difficult material but it's not explained coherently. If this is the stuff you are most interested in you will be disappointed.

About 300 pages on applying C++ to algorithms, such as searching and sorting, liked lists and binary trees. Classic first-year CS course material. Perhaps the best-presented part of the book.

A chapter on the Standard Template Library.
Don't get this book unless you have to
10/13/20071.00 of 5 stars
As far as the quality of the book is concerned, pages keep falling out from the binding.

I purchased this tome of boredom to complete some classwork in Data Structures and I have to say the book is completely awful. The worst part is the assignments. If they're not entirely boring or useless, they have the rare implementation that more information cannot be found on elsewhere, so you're essentially stuck with the author's poor explanations.

A good example would be the simulation assignment in Chapter 18 with queues. I keep looking at it and the explanations are so insufficient or meandering that I don't know where to start, or what I should be doing -then I realized this is the first time in an assignment that I had to depend directly on the book. I tried understanding the RPN explanation for stacks in the same chapter, and I gave up in frustration and searched for a more sufficient explanation on the internet because it was so poorly written.

Basically I've finished all of my assignments in spite of the book, not because of it.

The code examples are quite simply erroneous and full of bugs. If it were not required material for my course, I would not purchase this book, and I recommend against it. Get something more interesting.
Great beginner's book
2/5/20085.00 of 5 stars
I don't care what anyone else says, I think this book is very helpful. I'm a computer science/mathematics major...though mathematics comes easily for me, I'm not finding the same with computer programming and this book has helped me tremendously to understand and apply these new concepts. Repetition? Some, but repetition is what helps us learn. But I don't think there is too much repetition, just enough...maybe more repetition should be used in some of the book's sections, especially higher level chapters, such as for structs and classes.
Great writing too, easy to understand and to absorb. I'm sensing that this is an author who is more concerned with having his readers understand c++ than to be impressed with his writing...I've had enough college classes and read enough text books to know that some authors are more about showing off their writing ability, forget it if the student gets it or not. But not so with D.S. Malik.
I highly recommend this book.