Language serves not only to express thought but to make possible thoughts which could not exist without it. - Bertrand Russell
[Lisp] is the only computer language that is beautiful. - Neal Stephenson
In this course you will learn to program in a new way. To learn this new way of programming, you will use a programming language that allows you to express computations simply and elegantly. The language is called Scheme and you will be amazed by its power and generality. Like the game of go, it is simple to learn the rules, but it takes a lifetime to master.
You learn to play the piano only by sitting down at a keyboard and pressing the keys. You learn to program in Scheme by sitting down at a keyboard and pressing the keys. You cannot learn Scheme solely by listening and reading; you will need to devote a lot of time to programming. We will try to make that time not only instructive and productive, but also alot of fun.I hear and I forget; I see and I remember; I do and I understand. -Chinese Proverb
Name: Lena Lopez
<kinopian@cs.unm.edu>
Office Hours: Wed. 1:00-2:00, Thurs. 11:00-12:00, Fri. 1:00-2:00
Office: FEC 321
For a very different approach, see The Little Schemer by Daniel P. Friedman and Matthias Felleisen (4th edition, MIT Press, 1995). This book is strictly optional, but it is a great supplement to the official text.
If you're really hardcore, check out Structure and Interpretation of Computer Programs by Harold Abelson and Gerald Jay Sussman with Julie Sussman (2nd edition, MIT Press, 1996) which is available online in its entirety. SICP is the introductory programming text used at MIT.
We will use the MzScheme Scheme implementation, which is principled and fast enough for our purposes. You probably will want to use GNU Emacs as your editor. I do. Or use XEmacs if you prefer. The brief GNU Emacs Reference Card can be helpful. If you want to run MzScheme from inside Emacs, you will want to include these definitions in a file called .emacs in your home directory.
The R5RS Manual describes the Scheme standard. Teach Yourself Scheme in Fixnum Days by Dorai Sitaram is also useful. Finally, The Scheme Programming Language: ANSI Scheme by R. Kent Dybvig, (2nd Edition, Prentice Hall, 1996) is available online in its entirety.
* This page can be found at http://www.cs.unm.edu/~williams/cs257s07.html
** Subject to change
*** All assignments are due at the assigned times. The TA may,
but are not obligated to, accept late submissions at a penalty of no
less than 10% per 24 hours late.
**** In creating this page, I have made liberal use of material
from Barak Pearlmutter's CS 257 page. Thanks Barak!