# NUIM/CS351

## Instructors

- Barak A. Pearlmutter

- Niall Murphy (demonstrator)

## Office Hours

Barak says: my office is in the Hamilton Institute, which is in the
South wing of Rye Hall. Catch me any Monday, Tuesday, or Thursday
afternoon, except when I'm actually giving a lecture, or in a 30-min
pre-lecture meditation period. Other times, you can give it a shot
and just drop by. And please feel free to call me any time, x6394,
either to make an appointment or to ask a question.
## Syllabus

TBA
## Course Materials

### Scheme

### Prolog

### Haskell

## Lecture Notes

- 24-Sep-2007, Lecture 01: intro,
tower of power, start on Scheme
- 27-Sep-2007, Lecture 02: Scheme
numbers, lists, recursion
- 01-Oct-2007, Lecture 03: Scheme
the LET macro, symbols
- 04-Oct-2007, Lecture 04: Scheme
AND/OR, thunks, tail recursion
- 08-Oct-2007, Lecture 05: tail
recursion continued
- 11-Oct-2007, Lecture 06: COND;
dotted pair notation
- 15-Oct-2007, Lecture 07: Using
s-expressions as representations
- 18-Oct-2007, Lecture 08:
Higher-order function, threading/accumulation/reduce
- 22-Oct-2007, Lecture 09:
Assignment 2 hints
- 25-Oct-2007, Lecture 10:
Higher-order functions, currying, compose
- 05-Nov-2007, Lecture 11:
Table-driven evaluation and symbolic differentiation; start Scheme
metacircular interpreter
- 08-Nov-2007, Lecture 12:
metacircular interpreter continued
- 12-Nov-2007, Lecture 13:
continuations
- 15-Nov-2007, Lecture 14:
macros and more macros
- 19-Nov-2007, Lecture 15:
Implementing objects using closures
- 22-Nov-2007, Unification; resolution theorem prover (part 1)
code
- 26-Nov-2007, Prolog; list processing
code
- 29-Nov-2007, Prolog; list processing and parsing
code
- 03-Dec-2007, Prolog;
difference lists code,
Prolog interpreter in Scheme code
- 06-Dec-2007, Streams and
laziness code
- Haskell

## Assignments

- 04-Oct-2007, Recursion and s-expression
finger exercises, solutions
- 11-Oct-2007, Tail recursion and symbolic derivatives
- 08-Nov-2007, BASICK
Interpreter, solutions
- 22-Nov-2007, Objects
- 29-Nov-2007, Prolog, solutions
- 13-Dec-2007, Haskell