REVIEW - Programming Abstractions in C - A Second Course in Computer Science


Title:

Programming Abstractions in C

A Second Course in Computer Science

Author:

Eric Roberts

ISBN:

Publisher:

Addison-Wesley (1997)

Pages:

819pp

Reviewer:

Mark Batty

Reviewed:

December 1998

Rating:

★★★☆☆


In summary I feel many programmers/engineers who have restricted algorithm/abstraction knowledge would learn a great deal from this book.

This book is intended to be used in a second programming course in a college or university, either by students or instructors; as part of the CS2 curriculum. Although the book is primarily aimed at students learning computer science, I believe many junior (and some experienced) programmers/engineers would learn from this text.

The book is divided into four main parts. Part one (Preliminaries) gives an overview of ANSI C, data types in C and libraries and interfaces. The chapters in this part explain all the main areas of C in an understandable manner in some detail, however the less experienced person may need (and indeed should) read this part at least twice to fully appreciate the later parts. This part also introduces an extensive set of libraries that are used throughout the book, these are obtained by FTP.

Part two (Recursion and Algorithmic Analysis) covers the basics of recursion, backtracking and algorithmic analysis. It deals with the apparent complexity of recursion in an easy way with plenty of examples. The main examples used are factorials, fibonacci, towers of Hanoi, permutations, solving mazes, minimax, sorting, Big-O notation, quicksort, mathematical induction.

Part three (Data Abstraction) builds on part two by giving detailed descriptions and non-recursive implementations of basic ADTs and how these can be improved for efficiency. The main examples used are stacks, editors, queues and simulations, symbol tables, hashing, mapping and iterators.

Part four (Recursive data) also covers ADTs, however the ADTs in part four are implemented recursively. The main examples used are lists, large integers, binary and AVL trees, expression trees, parsing, sets, iterators and graphs. The last chapter in this part takes a brief look at Java and the object oriented approach.

The book contains full implementations of all the subjects covered. There is also a large section at the end of each chapter containing a summary, review questions and programming exercises.

In summary I feel many programmers/engineers who have restricted algorithm/abstraction knowledge would learn a great deal from this book.


Book cover image courtesy of Open Library.





Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.