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 reading your @cs.brown.edu email and, in particular, any messages sent to the course mailing list. You are also 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 is posted on the assignments page. Read more...

TA Hours

TA Hours will be posted on the course home page. You can expect to have additional TA hours in the first two weeks, to help you get up to speed with Scheme.


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


We will place very high demands on testing. Read more…


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 4. 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.