Foundations of Computer Science | |

This book has been taken out of print by W. H. Freeman. You are welcome to use it if you like. We believed in 1992 it was the way to introduce theory in Computer Science, and we believe that today.

The Book | Materials | Gradiance | Errata

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

- Solutions to Selected Exercises
- A Selection of Exams and Projects
- Jeff Ullman's Lecture Notes (ancient)
- The Programs Appearing in the Book

Gradiance
is offering a free trial of its automated homeworks for the topics
covered by this book. These homeworks are designed as a teaching aid
rather than an assessment tool. Students get advice when they make a
mistake and are encouraged to try working on the same problem(s) until
they get them right. If you would like to try the system gratis for
your class, make yourself an account at `www.gradiance.com/services`.
Then, send email to sup port @grad iance .com (ignore the blanks in that
email address, of course) telling us your login and that you would like
to try the discrete-math product. You can find manuals for
instructors, students, and question-authors at `www.gradiance.com/info.html`.

**Special offer for students**: Until June 30, 2009, we have made use of the
Gradiance materials available for students whose instructors are not using
the system. Make yourself an account on
`www.gradiance.com/services`,
and then sign up for the class 8CD5ED01. You will be able to work 31 selected
homeworks, and will get advice when you make an error. The only difference is that
we cannot reveal solutions, because these assignments are open indefinitely.