Authors: Brian Harvey, Matthew Wright, Matthew Wright
ISBN-13: 9780262082815, ISBN-10: 0262082810
Format: Hardcover
Publisher: MIT Press
Date Published: August 1999
Edition: 2nd Edition
This lively introduction to computer science and computer programming in Scheme is for non-computer science majors with a strong interest in the subject and for computer science majors who lack prior programming experience. The text allows the student to experience the computer as a tool for expressing ideas, not as a frustrating set of mathematical obstacles. This goal is supported by the use of Scheme, a modern dialect of Lisp, designed to emphasize symbolic programming.
Should programming be a matter of learning where to put the semicolon and goto? According to Harvey and Wright, absolutely not. Programming, especially when you're starting off, is about the big picture, learning how to use your imagination and not your grammar. The authors use Scheme, a dialect of Lisp, as their base. Scheme and Lisp are symbolic programs that let you create programs that will write programs. Exercises throughout with Scheme help you get up to speed quickly and even have a good time. The first half of the book makes you comfortable with functions, leading you to projects involving bridge games and tic-tac-toe. In the second half, you deal with recursion, abstraction, files, and vectors. By the end of these chapters, you're ready to use Scheme to tackle databases and spreadsheets. Simply Scheme proves that programming can be accessible as long as it stimulates, rather than deadens, the imagination. This book will give you a sense of the inner workings of computer applications like no other.
Foreword | ||
Preface | ||
To the Instructor | ||
Acknowledgments | ||
I | Introduction: Functions | 2 |
1 | Showing Off Scheme | 5 |
2 | Functions | 17 |
II | Composition of Functions | 26 |
3 | Expressions | 29 |
4 | Defining Your Own Procedures | 41 |
5 | Words and Sentences | 57 |
6 | True and False | 71 |
7 | Variables | 89 |
III | Functions as Data | 100 |
8 | Higher-Order Functions | 103 |
9 | Lambda | 127 |
Project: Scoring Bridge Hands | 141 | |
10 | Example: Tic-Tac-Toe | 147 |
IV | Recursion | 170 |
11 | Introduction to Recursion | 173 |
12 | The Leap of Faith | 189 |
13 | How Recursion Works | 207 |
14 | Common Patterns in Recursive Procedures | 217 |
Project: Spelling Names of Huge Numbers | 233 | |
15 | Advanced Recursion | 235 |
Project: Scoring Poker Hands | 245 | |
16 | Example: Pattern Matcher | 249 |
V | Abstraction | 278 |
17 | Lists | 281 |
18 | Trees | 305 |
19 | Implementing Higher-Order Functions | 327 |
VI | Sequential Programming | 340 |
20 | Input and Output | 343 |
21 | Example: The Functions Program | 367 |
22 | Files | 387 |
23 | Vectors | 405 |
24 | Example: A Spreadsheet Program | 425 |
25 | Implementing the Spreadsheet Program | 439 |
Project: A Database Program | 477 | |
VII | Conclusion: Computer Science | 498 |
26 | What's Next? | 501 |
App. A | Running Scheme | 507 |
App. B | Common Lisp | 515 |
App. C | Scheme Initialization File | 525 |
App. D | GNU General Public License | 547 |
Credits | 551 | |
Alphabetical Table of Scheme Primitives | 553 | |
Glossary | 557 | |
Index of Defined Procedures | 567 | |
General Index | 573 |
No reviews. Submit yours!
Review this book.
We would like to know what you think about this book and publish your thoughts here! (top)
Your Review