CS 357: Declarative Programming
Instructor: Lance Williams
<williams@cs.unm.edu>
Time: MWF 12:00 - 12:50 PM
Location: Woodward 147
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 Assistant
Name: Matthew Barney
Email: matt_barney@yahoo.com
Office Hours: Wed. 2:00-3:00, Fri. 2:00-3:00
Office: FEC 301A
TA 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 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 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 **
- Week 1 (SAP pp. 3-53, SAP pp. 95-114)
- Week 2 (SAP pp. 115-127)
- Week 3 (SAP pp. 129-140)
- Week 4 (SAP pp. 193-202, SAP pp. 210-215, SAP pp. 218-222)
- Week 5 (SAP pp. 347-349, pp. 360-370, pp. 383-408)
- Week 6 (SAP pp. 447-465, pp. 475-493)
- Week 7
- Week 8
- Spring Break
- (contd.)
- (contd.)
Week 9
- Week 10 (LYHFGG 1-3)
- Week 11 (LYHFGG 4-5,7)
- Week 12
- Week 13
- Week 14
- Week 14
Homeworks
Practice Exams
Grading Policy**
- Homeworks***: 20%
- Midterm 1: 20%
- Midterm 2: 20%
- Midterm 3: 20%
- Final Exam: 20%
** 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.