Simply Scheme:
Introducing Computer Science

cover photo

Brian Harvey
Matthew Wright
University of California, Berkeley


MIT Press web page for Simply Scheme

Foreword

by Hal Abelson

Preface

To the Instructor

Acknowledgments

(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?

Appendices

A. Running Scheme

B. Common Lisp

C. Scheme Initialization File

D. GNU General Public License

Credits

Alphabetical Table of Scheme Primitives

Glossary

Index of Defined Procedures

General Index

MIT Press web page for Simply Scheme

Brian Harvey, bh@cs.berkeley.edu

Matthew Wright, matt@cnmat.berkeley.edu