| Week | Topic | Reading |
| Week 1 | Introduction. Class policies. Why study programming languages? Untyped functional languages. Scheme. | text 1.1-1.3, 10.1 |
| Week 2 | Programming in Scheme. | text 10.1-10.5 |
| Week 3 | Scheme. Higher-order programming. Proofs of correctness. Assignment 1a due. | text 9.3, 13.5 and lecture notes |
| Week 4 | Memory management in Lisp-like languages. Typed functional languages. ML. | text 10.6, 8.1-8.3 |
| Week 5 | Programming in ML.Assignment 1b due. | text 8.4, 9.1-9.4 |
| Week 6 | ML datatypes and typechecking. | text 8.6, 9.3, 9.5, 15.5 |
| Week 7 | Exception handling, higher-order programming, review.Assignment 2a due | text 8.5, 9.6 |
| Week 8 | Logic programming, horn clauses. Midterm. | text 11.1, lecture notes |
| Week 9 | Resolution, horn clauses, Prolog. Assignment 2b due. | text 11.2-11.3, lecture notes |
| Week 10 | Programming in Prolog. | text 11.4-11.6, 15.7 |
| Week 11 | Topics in programming languages. Context-free grammars. Assignment 3a due. | text 2.2-2.6 |
| Week 12 | Scoping rules, parameter-passing techniques. | text 5.1-5.4 |
| Week 13 | Procedure activation records, review. Assignment 3b due. | text 5.5 |
Marsha Chechik Back to csc324 homepage Last modified on September 13, 1998