
Week 1. Oct 1st and 3rd
Course organization. Introduction and overview.
Data and operators. Procedures and recursion.
Data abstraction and numbers. Data driven recursion.
Locally defined procedures. More on recursive procedures.
Abstracting procedures.
Homework 1.
Week 2. Oct 10th, 12th and 17th
Evaluation. Environments.
Lambda calculus, operational semantics and the Scheme Interpreter.
The SECD machine
Homework 2.
Week 3. Oct 19th
Mutation. Object-oriented programming.
Homework 3.
Add day Oct 19th
Week 4. Oct 24th and 26th
Macros. Streams.
Week 5. Oct 31st and Nov 2nd
Continuations. Continuation based interpreter.
Midterm period Nov 1st-Nov 6th
Week 6. Nov 7th and Nov 9th. Midterm week
Review.
Take home midterm test.
Week 7. Nov 14th and 16th
ML programming - basics
Homework 4.
Drop day Nov 21st
Week 8. Nov 21st and 23rd (Thanksgiving recess)
ML programming - data types
Homework 5.
Thanksgiving recess Nov 22nd and Nov 23rd
Week 9. Nov 28th and 30th
Abstract types and modules.
Homework 6.
Week 10. Dec 5th and Dec 7th
Dec 7th is the last day of classes.
Static type checking.
Homework 7.
Week 11. Dec 9th to 14th. Finals week.
Dec 8th-11th is the Study period.
Dec 12th-14th is the Finals period.
Take home final.
Advanced topics in functional programming
These may be treated in the third term.
1. Model theoretic semantics.
2. Denotational semantics.
back to CS101a course organization page
