Registration Closed

Registration is now closed. Thank you for your interest. Our sign-ups are global!

Though this course is over, the on-line materials are designed so you can do the exercises any time you want. In other words, you can run this class (for yourself) right now, in full!

On-Line Offering

We will be making this course, Brown's upper-level programming languages offering, available for free on the Web. People anywhere are welcome to view the lectures, read the materials, and do the assignments.

The on-line version does not offer credit from Brown; but those who successfully complete it can get recognition of this directly from the instructor. In particular, because we anticipate some people following the course will be busy professionals, we will offer four levels of recognition:

You successfully complete a sufficiently high number of the regular quizzes throughout the semester.
In addition to Lite, you also complete the minor project that occupies the first month.
In addition to Mezzanine, you also complete the major project that occupies the remaining two months.
You successfully complete a sufficiently high number of the regular quizzes in the first month, in addition to the minor project that runs during that time. This finishes after one month.


I expect that you are a competent programmer, having the equivalent of CS1 and CS2 courses. That means you should be comfortable designing and debugging medium-scale programs. I also assume you have some basic knowledge of computer internals, and of discrete mathematics. In general, you need the maturity of a student in an upper-level university course.

During the course, you will program in Racket. I don't expect you to know it at all beforehand (indeed, many students at Brown will not have seen it before), but I expect you to be able to learn a new programming language reasonably quickly (this is a good example of the “maturity” remark above).

Time Expectation

At Brown, the course usually takes students about 10-15 hours per week. Since you will be doing most of the same homework as a Brown student, you should estimate the same. (Of course, those who are only watching the video need only the time to watch the videos, read the notes as necessary, and do the quizzes.) In short, for anyone beyond the Lite level, you should expect to allocate at least ten hours a week to the course; more if you are finding it difficult.

Code of Conduct

We don't have a lot of rules for this course (as befits a course at Brown), but we do have a few, and we expect you to observe them all.

Note: This list might change slightly. You're responsible for whatever it says when the class begins on September 5.


The course's written homeworks contain some open-ended problems that must be graded manually. These do not translate well to automated, on-line grading. We don't apologize for these: our primary goal remains offering a high-quality course for enrolled Brown students. These problems will still be available to everyone, but we doubt we will have the personnel to grade your responses. However, everything else will be fully available to people who are not enrolled here.


The course begins on Wednesday, September 5, 2012, and ends in early December. All on-line work must be done at the same pace as the university course.

The class meets MWF 10-11am EST. Videos will become available after class finishes, so people can watch them at any time and need not stay up late at night in Bangalore.


All discussion about course content will take place on Google+, so if you wish to participate in these, you should make sure you have the ability to read and post there.


Please add them to our Google+ post.