There will be roughly one assignment per week. Assignments will have a substantial programming component; some assignments will also involve written questions.
Practice problems for those new to Scheme (optional)
Style guidelines and expectations on assignments
Assignment 0: Course Survey (due Saturday Aug 29) -- A brief survey about your background and interests to aid in course planning. Should take about 10 minutes.
Assignment 1: Basic Interpreters (due Thursday Sept 3, 11:59pm)
Assignment 2: Extended Interpreter (due Thursday Sept 10, 11:59pm)
Assignment 3: Haskell and Laziness (due Thursday Sept 17, 11:59pm)
Assignment 4: Mutation and Parameter Mechanisms (due Thursday Sept 24, 11:59pm)
Assignment 5: Garbage Collection (due Monday Oct 5, 11:59pm)
Assignment 6: Types (due Thursday, Oct 15, 5pm)--NOTE 5pm, not midnight!
There are two options for homework 6: Implementing a Type Checker or Implementing Type Inference. The type checker is easier.
- Students taking the course for graduate credit (either as 536 or for BS/MS) must do type inference.
- Students seeking an A in 4536 must do type inference.
- Other students in 4536 can choose either assignment, However, doing the type checker will cap your course grade at B (in exchange for an easier assignment).
536/BSMS Assignment 7: Implementing Stack Inspection (due by December 17th)
536/BSMS Assignment 8: Implementing Prolog (due by December 17th)
There will be no exams. Grades will be based largely on the assignments, with additional points for participation and engagement with the material.