CS 357: Declarative Programming

Instructor: Lance Williams <williams@cs.unm.edu>
Time: MWF 12:00 - 12:50 PM
Location: Woodward 147
Office Hours: Tues. 3:00-5:00 PM
Office: FEC 349C


[Lisp] is the only computer language that is beautiful. - Neal Stephenson
I'd rather write programs to write programs than write programs. -D. Sites
What I cannot create I do not understand. - R. Feynman

Teaching Assistant

Name: Erik Aldaz
Office Hours: Wed. 11:00-2:00
Office: FEC 126


The text for the course will be Scheme and the Art of Programming by George Springer and Daniel P. Friedman (MIT Press, 1989). You may purchase a copy of the text at the UNM Copy Center which is located in Dane Smith Hall. The text for Haskell will be Learn you a Haskell for Great Good, which is entirely online.

Related Material

We will use the Racket 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. Later in the course, when we study Haskell, we will use the GHC implementation.

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.

Course Syllabus **


Practice Exams

Grading Policy**

** Subject to change
*** All assignments are due at the assigned times. The TA may, but is not obligated to, accept late submissions at a penalty of no less than 10% per 24 hours late.