Home :: Books :: Computers & Internet  

Arts & Photography
Audio CDs
Audiocassettes
Biographies & Memoirs
Business & Investing
Children's Books
Christianity
Comics & Graphic Novels
Computers & Internet

Cooking, Food & Wine
Entertainment
Gay & Lesbian
Health, Mind & Body
History
Home & Garden
Horror
Literature & Fiction
Mystery & Thrillers
Nonfiction
Outdoors & Nature
Parenting & Families
Professional & Technical
Reference
Religion & Spirituality
Romance
Science
Science Fiction & Fantasy
Sports
Teens
Travel
Women's Fiction
Foundations of Computer Science: C Edition (Principles of Computer Science Series)

Foundations of Computer Science: C Edition (Principles of Computer Science Series)

List Price: $95.95
Your Price: $95.95
Product Info Reviews

<< 1 2 >>

Rating: 5 stars
Summary: A great book for learning real computer science.
Review: This book is not a "how to program" book. Rather it discusses the science and computing in detail. The basics are introduced and throughout the book the chapters build on each other for a complex yet easy to understand experience. The book is a wonderful tool for those who want to be real scientists and not just "techies."

Rating: 5 stars
Summary: A text you can really stand on
Review: This is a poorly written, poorly designed book. Mathematicians may enjoy having this one on their shelf since they are probably the only ones that would enjoy the arcane, obfuscating language of the material. Since computer science is a practical application of mathematics, it would help to have a book that sets the foundations for newcomers in practical language with practical examples. This book does neither. I cite from page 370: "Suppose a relation R, from domain A to range B, has the property that for every member of A there is at most one element b in B such that aRb. Then R is said to be a partial function from domain A to range B." This is just a small example of the author's droning about set theory. A computer science major would be better served by, "A function cannot produce more than one answer", but nowhere in the text is this practical application mentioned. It's as though the publisher offered the author a bonus for long-windedness and theoretical prattle. This book should be in a graduate seminar on how NOT to write computer science texts.

Rating: 1 stars
Summary: No "Foundation" whatsoever
Review: This is a poorly written, poorly designed book. Mathematicians may enjoy having this one on their shelf since they are probably the only ones that would enjoy the arcane, obfuscating language of the material. Since computer science is a practical application of mathematics, it would help to have a book that sets the foundations for newcomers in practical language with practical examples. This book does neither. I cite from page 370: "Suppose a relation R, from domain A to range B, has the property that for every member of A there is at most one element b in B such that aRb. Then R is said to be a partial function from domain A to range B." This is just a small example of the author's droning about set theory. A computer science major would be better served by, "A function cannot produce more than one answer", but nowhere in the text is this practical application mentioned. It's as though the publisher offered the author a bonus for long-windedness and theoretical prattle. This book should be in a graduate seminar on how NOT to write computer science texts.

Rating: 5 stars
Summary: A text you can really stand on
Review: This review is for the 1995 C edition.

As the authors state in their preface, they had three goals in writing this book:
1) To give beginning computer science majors a solid foundation for further study.
2) To give students who will not take advanced computer science courses the conceptual tools of the field.
3) To expose all students not only to programming concepts but also to the intellectually rich foundations of the field.

The book presumes that the student has had at least one solid course in programming--the authors say they have used the text with students ranging from 1st year undergraduates to graduate students--, and is familiar with the programming language C. (C++ and Java programmers should easily adapt to C. C is a small language, so other programmers should be able to learn C relatively quickly too.) The material corresponds roughly to that of a first course in data structures and a course in discrete mathematics. Therefore, it should come as no surprise that the book has a decidedly mathematical flavor. Although that means the book is somewhat theoretical and abstract, the authors spoon feed theory to the reader with generous explanations and copious examples. The student new to computer science should be prepared to work hard to absorb the material though, as theory can often seem difficult when you first encounter it--no matter how well it is presented.

All that theory is not gratuitous; it is excellent preparation for more advanced courses in computer science such as computer architecture, operating systems, programming languages, compiler design, database systems, algorithms, and theory of computation--to name just a few. Many advanced computer science courses can get quite theoretical, and I suspect that some students will be able to appreciate the gentle (by comparison) preparation this book provides for more advanced courses only in hindsight. The book is not all theoretical, however. A strength of this text is that it combines the theory with computing, giving a practical flavor to the book as well. Also, although the book uses a procedural language (C), it emphasizes abstraction and encapsulation, providing a good foundation for learning object-oriented programming.

I think this would be a great book for any practicing programmer who doesn't have formal training in computer science but would like to get a taste of what the formal study of computer science has to offer. However, anyone trying to use this book for self-study should either be comfortable with mathematical formalism--all you need is high school mathematics--or have access to someone who can help you with the material if you don't quite get something.

Here's the abbreviated table of contents:

1. Computer Science: The Mechanization of Abstraction
2. Iteration, Induction, and Recursion
3. The Running Time of Programs
4. Combinatorics and Probability
5. The Tree Data Model
6. The List Data Model
7. The Set Data Model
8. The Relational Data Model
9. The Graph Data Model
10. Patterns, Automata, and Regular Expressions
11. Recursive Description of Patterns
12. Propositional Logic
13. Using Logic to Design Computer Components
14. Predicate Logic
Index


<< 1 2 >>

© 2004, ReviewFocus or its affiliates