Simply Scheme:
Introducing Computer Science

cover photo

Brian Harvey
Matthew Wright
University of California, Berkeley

MIT Press web page for Simply Scheme


by Hal Abelson


To the Instructor


(Note: The links on the Part headings below point to the introductions to the major parts of the book, each introducing one "big idea." Each introduction is about a page of text.)

Part I. Introduction: Functions

1. Showing Off Scheme

2. Functions

Part II. Composition of Functions

3. Expressions

4. Defining Your Own Procedures

5. Words and Sentences

6. True and False

7. Variables

Part III. Functions as Data

8. Higher-Order Functions

9. Lambda

Project: Scoring Bridge Hands

10. Example: Tic-Tac-Toe

Part IV. Recursion

11. Introduction to Recursion

12. The Leap of Faith

13. How Recursion Works

14. Common Patterns in Recursive Procedures

Project: Spelling Names of Huge Numbers

15. Advanced Recursion

Project: Scoring Poker Hands

16. Example: Pattern Matcher

Part V. Abstraction

17. Lists

18. Trees

19. Implementing Higher-Order Functions

Part VI. Sequential Programming

20. Input and Output

21. Example: The Functions Program

22. Files

23. Vectors

24. Example: A Spreadsheet Program

25. Implementing the Spreadsheet Program

Project: A Database Program

Part VII. Conclusion: Computer Science

26. What's Next?


A. Running Scheme

B. Common Lisp

C. Scheme Initialization File

D. GNU General Public License


Alphabetical Table of Scheme Primitives


Index of Defined Procedures

General Index

MIT Press web page for Simply Scheme

Brian Harvey,

Matthew Wright,