CS 357: Declarative Programming

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

Description

[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 Assistants

Name: Matthew Antognoli
Email: mantogno@unm.edu
Office Hours: Thurs. 2:00-3:00, Fri. 2:00-3:00
Office: FEC 126

Name: John Baxter
Email: automata@unm.edu
Office Hours: Tues. 1:00-2:00, Thurs. 1:00-2:00
Office: FEC 349A

Stuff

Textbooks

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

Homeworks

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.