ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1949 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Title:
C&Data Structures
Author:
PS Deshpande&OG Kakde
ISBN:
1-58450-338-6
Publisher:
Charles River Media
Pages:
700
Price:
Reviewer:
Francis Glassborow
Subject:
C;data structures
Appeared in:
17-6

This is one of those books where the authors want to write about implementing data structures (probably because it is a nice well-defined topic found in most university computer science curricula) but decide that they first have to introduce the reader to programming in C. These are two entirely different topics. If you can already program in C you would not want the first 163 pages, and if you cannot then the first 163 pages are almost certainly not enough (even if they were high quality).

Let me address that last comment by showing you a couple of pieces of code (chosen more or less at random from the first part of the book. I promise that even I did not realise how bad it was till I started copying it. Originally it was only such things as the use of 'class' as a variable name - producing an unnecessary incompatibility with C++ - and the loss of several semi-colons.).

On page 139 the author provides the following code:

struct address \\ A
{
  plot char [30], struc char[30];
  city char[30]
}
struct student \\ B
{
  name char[30];
  marks float;
  struct address adr;
}
main ( )
{
  struct student student1; \\D
  struct student class[20]; \\E
  class[1].marks = 70; // F

  /* remainder suppressed but it is
    just a hard coded initialisation
    of class[1] followed by five
    printf() statements to output the
    contents of class[1] to stdout./*
There then follows a section explaining the code. The first item is:1.Statement A declares the address of a structure containing the members plot, street and city.I think that that 'explanation' demonstrates beyond doubt that at least some of the errors in the code are the author's direct fault. This book takes the concept of typos to a new height, indeed, assuming the authors can actually program in C and test their code, I cannot imagine how some of the errors occurred during the process of typesetting the book.

I am sometimes willing to be a little forgiving of authors who insist on writing

void
main() {
, but that is the least of the problems with this book. The only use I can think of for this book is as a source of practice material for code reviews. Even with all the typos and errors removed this book still uses a style of C coding that would be a disaster in any modern development environment. I would recommend that this book be withdrawn and never published as a second edition. There are already numerous considerably better (though not perfect) books on data structures.

I have tried to find out something about the authors but the book provides no information and I have failed to find any elsewhere. They do acknowledge help from a computer science graduate from IIT Mumbai and from two of their own students. My feeling is that the code looks like student code, so perhaps it is literally their student's code without any correction.

Please could publishers stop wasting trees with this kind of book, quite apart from the waste of paper, readers will learn a dangerous style of programming in C.