Policy on Academic Integrity and Collaboration

By taking this course, you agree to abide by our honesty policy. Read more.... Read also about working in teams.

Staying Current

You are responsible for keeping track of all assignments and other material posted to the course Web site.


We will blindly, mindlessly, obsessively, relentlessly follow Programming Languages: Application and Interpretation (PLAI).

Lecture Schedule

We don't publish a day-by-day lecture schedule. If a class runs over, or a presentation goes poorly and needs revisiting, wouldn't you rather we took our time to do it right rather than slave away according some pre-defined schedule?


The assignment schedule will be posted on the assignments page. The assigment schedule is on-line, though it may change slightly over the first week of the semester. Read more...

TA Hours

Tuesday: 1900-2030 (Dan)
Wednesday: 1600-1730 (Arjun)
Thursday: 2000-2130 (Dan)
Sunday: 1400-1530 (Arjun)

Additional Hours Until September 20

Double hours! Each slot above will be extended by an additional 1h30m for a total of three hours. Thus, for instance, the Monday slot will be 1730-2030.


We are very serious about requiring you to write clean, well-documented code. Read more...


We will place very high demands on testing.


We will use codewalks, a common practice at software companies, to evaluate some of your programs and written assignments. Read more…

PhD Student 2000-Level Credit

You can earn graduate credit for this course by reading supplemental material. If you're interested in doing this, talk to me (Shriram) on Monday, October 1. By then you will have a good idea of what the class is about, and whether you're actually ready to take on additional work.