Home Announce Handouts Slides Reading People Office Hours

Collaboration Policy Statement

Under the Honor Code at Stanford, each of you is expected to submit your own work in this course. On many occasions, it is useful to ask others (a TA, the instructor, or other students) for hints and debugging help, or to talk generally about problem-solving strategies and presentation. Such activity is both acceptable and encouraged, but you must indicate on your assignments any assistance you received. Any assistance received that is not given proper citation may be considered a violation of the Honor Code. In any event, you are responsible for understanding and being able to explain all of the statements in your homework and exam solutions.

Course Information and Policies

Email Policy:

Questions about lectures, homework and course organization may be sent to the course email address, cs242@cs.stanford.edu. This mailbox will be read by the course staff on a regular schedule. Due to the course size, we cannot guarantee an immediate response. When a number of questions are similar, a single response may be posted as an announcement. If a point is more easily explained in person, we may suggest you come to office hours.


The prerequisites for the course, as listed in the catalog, are "CS 107, or similar experience with Lisp, C and Smalltalk, or similar languages." This is not a course on how to write simple programs in different languages. You should be familiar enough with one functional language such as Lisp, Scheme or ML, one conventional language such as C or Pascal, and one object-oriented language such as Smalltalk, C++ or Java, to be able to compare different languages. About 60% of the class will have taken a course on compilers.


The course textbook, Concepts in Programming Languages by John Mitchell, is available at the Stanford Bookstore. You may also order it from other places if you prefer. Here is a web page with errata and other links.

Handout Hangout:

Handouts and graded homeworks that are not picked up during class will be available from the "Handout Hangout." This is a file cabinet on the fourth floor of Gates, at the entrance to the B Wing of the building. One of the drawers of the file cabinet is marked "CS242"


You may find it useful to have an ML compiler and a C++ compiler. You may also want to compile and run Java programs.

Further information about Stanford computing resources may be found on the Programming link off the CS242 home page.

Course Work and Exams:

Homework will be assigned each Wednesday and due the following Wednesday. Late homework will be accepted only under unusual circumstances and by prior arrangement. Homework may be turned in before class or up to 5PM on Wednesday.

Grading: Midterm exam: 25%, Final exam: 35%, Homework: 40%.

The midterm and final exam times and set and posted on the CS242 home page. If you have a conflict with either exam, you must let us know before the end of the second week of class.

Homework Submission

We do not accept homework submitted by email because our attempts to do so in the past have been time-consuming and unreliable.

If you are an SCPD student, and you submit homeworks with a routing slip, those homeworks will be returned to you through SCPD. If you do not use a routing slip (for example, by coming to class and handing it in), then the homeworks will be available in class for pick-up, or after that, in the handout hangout on the fourth floor of Gates. The routing slip tells us that you want it sent to your site.

For submissions by courier, please make sure that you drop off the solutions before the collection time at your site on Tuesday. We should receive the courier no later than Wednesday evening.

Homeworks may be faxed to SCPD at (650) 736-1266 by 5PM the day it is due. We will return graded HW by courier.

Homework Regrade Policy

After you receive your graded homework and the sample solutions, you may believe that we made an error in grading your homework. If so, and if you feel the error is significant enough to merit additional attention, you may submit your graded homework with a written request for reconsideration. You must explain clearly and succinctly how you believe that we made a mistake. When a member of the course staff regrades a problem, our goal will be to see if we applied our criteria correctly to the homework paper in question. In fairness to all students, we will not reexamine the systematic grading criteria we applied to the problem set. Please be courteous to the course staff and bear in mind that a few points difference on a few homework solutions should not change your final letter grade in the course.

SCPD students:

Local students must come to campus for the midterm and final exam.


The newsgroup su.class.cs242 is for class discussions. It is recommended that you read this newsgroup, but it is not required. Important information from the newsgroup will also be posted to the web site.

Participation in Televised Courses

This course is being televised and taped as part of the Stanford Center for Professional Development, and may be viewed by other class participants or in other educational settings. As such, there may be times that you will briefly appear on camera, or that your comments will be incorporated into the audio. If you do not wish to appear on camera, please discuss this with Mike Rouan at SCPD (725-3005; mailto:na.mxr@forsythe.stanford.edu) before the next class session; otherwise it will be understood that you have given your consent to appear on camera.