There will be 5 assignments during the course, roughly one per week. These will be on basic interpreters, Haskell, a languages perspective on web programming, garbage collection, and type systems.
Style guidelines and expectations on assignments
Assignment 1: Basic Interpreters (due Wednesday Jan 25, 11:59pm)
Assignment 2: Haskell and Laziness (due Wednesday Feb 1, 11:59pm)
Assignment 3: Web Programming with Continuations (due Thursday Feb 9, 11:59pm)
The BS/MS assignment: Implementing Prolog (due date negotiable, but ideally end of term)
Assignment 4: Garbage Collection (due Monday Feb 20, 11:59pm)
There are two options for homework 5, of which you must do one. The type checker is easier. As such, students who are aiming for As in the course should do type inference. Doing the type checker will cap your course grade at B (in exchange for an easier assignment).
Type Inference (due Thursday Mar 2, 5pm)
There will be no exams. Grades will be based on the assignments (with some point available for participation and engagement with the material). There will be a total of 625 points available for the term, allocated according to the following table:
Basic Interpreter 100 (hwk1) Haskell Programs 75 (hwk2) Lazy Interpreter 50 (hwk2) Web Programming 75 (hwk3) Garbage Collection 150 (hwk4) Type Inference 125 (hwk5) Participation* 50 Total 625* "participation" includes various ways of showing that you are engaged in the course and with the material, such as participation during class, signs that you are really thinking about the material during in class exercises, or asking questions in class or office hours that probe beyond what we are covering in lectures.
I guarantee a passing grade for anyone who earns at least 412 points (66%) and at least a B for anyone who earns 500 or more points (80%). This does not mean that these numbers will be the final minimum requirements for each grade; rather, I guarantee that you will earn at least the listed grade at each of these marks. This guarantee lets you plan your work for this course according to your other projects and course requirements. I have not posted minimum A requirements; an A will require consistenly good work and command over the material.