The PDF files for Concrete Abstractions: An Introduction to Computer Science Using Scheme may be freely copied, printed, and redistributed in any form (including uploading to other servers), subject to the following conditions:
Any copy that you redistribute or make available to others must be prominently labeled with the title, authors' names, copyright notice, and a statement that the full text is available for free from http://www.gustavus.edu/+max/concrete-abstractions.html.
Any copy that you redistribute or make available to others must be unmodified except that it may be an excerpt rather than the full text, provided that you make clear what excerpting was done.
In addition to these legally binding terms, the authors prefer that any redistribution of copies be at a reasonable cost.
If you accept these terms, please use the links below to download the PDF files. If you do not accept, please email Max Hailperin to explain your concern. These files are Copyright (c) 1999 by Max Hailperin, Barbara Kaiser and Karl Knight.
The entire book in one file (or instead select any of the following)
Chapter 1: Computer Science and Programming
Chapter 2: Recursion and Induction
Chapter 3: Iteration and Invariants
Chapter 4: Orders of Growth and Tree Recursion
Chapter 5: Higher-Order Procedures
Chapter 6: Compound Data and Data Abstraction
Chapter 7: Lists
Chapter 8: Trees
Chapter 9: Generic Operations
Chapter 10: Implementing Programming Languages
Chapter 11: Computers with Memory
Chapter 12: Dynamic Programming
Chapter 13: Object-Based Abstractions
Chapter 14: Object-Oriented Programming
Chapter 15: Java, Applets, and Concurrency
Appendix: Nonstandard Extensions to Scheme