CS 357: Declarative Programming

Instructor: Lance Williams <williams@cs.unm.edu>
Time: MWF 2:00-2:50 PM
Location: ME 218
Office Hours: Mon. 3:00-5:00 PM
Office: 2092F Centennial


[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

Recitation Instructor

Name: Josh Ridens
Email: jridens@unm.edu

Teaching Assistants

Name: Zhu Li
Email: zhuli@unm.edu
Office Hours: Tues. 2:00-3:30, Wed. 4:00-5:30
Office: ECE 332

Name: Munna
Email: abdrahaman005@unm.edu
Office Hours: Tues. 11:15-12:45, Thurs. 11:15-12:45
Office: Travelstead B27



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 Bookstore. 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 Racket 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 **


Grading Policy**

Electronic Device Policy

Laptops, pads, and phones must be turned off during lecture.

** 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.