
|
Reading
|
||
| Topic: | Why I teach Computer Science this way. | |
| Remarks: | This is a little of the history of this material. | |
| Relates to: | Lots. | |
| on-test? | No. | |
Some years ago, in the mid 80s, I was influenced to become a Computer Science teacher by a rather mysterious little book called The Little LISPer, by Daniel P. Friedman and Matthias Felleisen.
LISP is a programming language, one of the most interesting and influential in the history of computing. Scheme is a variant of LISP, and for basic concepts, they are very similar.
This book was about a different approach to computation that seems to me clear, vivid, striking and worth talking about.
I also strongly felt at the time that when I learned LISP moderately well, a lot of things about computation and math became a lot clearer to me.
In the summer of 2000, I asked to attend a workshop about Scheme. I had the vague idea that Scheme was a LISP-like language, and, from the AP mailing list, the idea that the people who gave it really loved what they were doing, and at least they thought they were really onto something. I was fairly sure that I would at least get something out of it.
Little did I know that I would be listening to one of the authors of The Little LISPer, and would spend a week working with his students and collaborators. Basically, they were putting into words and actions and software and curriculum pretty much everything I had come to believe about what teaching computation should be about, and how it should be presented.
This material is intensely inspired by How to Design Programs, which is a book about Computer Science that uses Scheme as a vehicle for many of the discipline's central concepts. It was written by Matthias Felleisen, Robby Findler, Matthew Flatt and Shriram Krishnamurthi. Early drafts were shared with college and high school teachers.
When this book comes out, buy it! Also, there is a web site. There will occasionally be links here and there into the text of HtDP in my lessons.
I should emphasize that I've felt free to omit and rearrange and reword ad lib, so don't construe anything in my material as being necessarily blessed by HtDP/TeachScheme. But I've tried hard to avoid making up new jargon, or at least new jargon grossly inconsistant with HtDP. I want my students to go to CS departments that use HtDP and be ahead of the curve!
"Shouts" to Matthias, Kathi, Robby, Ian, Phillipe, John Clements, Val and Jamie and of course, Shriram... and anyone else I forgot who helped me when I was perplexed.