CS 242. 
Autumn 2002. Handout 1
September 26, 2002
 
 
CS 242. Programming Languages
Tues and Thurs, 1:15-2:30,  Gates B-01
 
General Course Information
Instructor:  John Mitchell, Gates 476 
Secretary:   Lynda Harris, Gates 495 
Teaching Assistants: Seth Hallem, Tim Purcell, Rajat Raina, Nafis Upshur
Office Hours
  
  
    | 
       Day   | 
    
       Time   | 
    
       Teaching Assistant   | 
    
       Room   | 
  
    | 
       Sunday  | 
    
       5-6 PM  | 
    
       Rajat Raina  | 
    
       Gates B24A  | 
   
    | 
       Monday  | 
    
       9-11 AM  | 
    
       Tim Purcell  | 
    
       Gates 398  | 
  
    | 
       Monday  | 
    
    
       7-9 PM  | 
    
       Nafis Upshur  | 
    
       Gates B24A  | 
  
    | 
       Tuesday   | 
    
       2:30-4:30 PM  | 
    
       Seth Hallem  | 
    
       Gates 498  | 
 
 
 
 
 
Review session
Thursday 7:00-8:00 in room 380-380X, starting October 3.
The review session is an optional question-answer period held 
once a week. It is not required and, unfortunately, will not be broadcast. 
Electronic information sources
Announcements, copies of homework assignments and other 
information may be found at the course web site,  
http://www.Stanford.EDU/class/cs242/ . 
The class newsgroup, su.class.cs242, may be used to discuss course topics with other students.
Email Policy
Questions about lectures, homework and course organization 
may be sent to the course email address,  [email protected]
. 
The course staff will read this mailbox on 
a regular schedule. Due to the size of this class, we cannot guarantee an 
immediate response. Email will be read once a day and it may take up to 24 hours
for us to respond. When a number of questions are similar, a single response 
may be placed on the website. If a point is more easily explained in person, we 
may suggest that you come to office hours.   
  - Last minute questions (those sent the night before homework is due) may not be answered before class, so be sure to
  send in questions early!
  
 - If you send course-related mail directly to a TA, the mail will
  be forwarded to 
cs242@cs, which may introduce a delay.
 
Prerequisites
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 procedural language 
such as C or Pascal, and one object-oriented language such as Smalltalk or C++, 
to be able to compare different languages. About 60% of the class will have 
taken a course on compilers.
Text
A printed textbook is on order from Cambridge University Press. Reading material
will be handed out in class or put on the web until the textbook arrives. If the
textbook is delayed beyond mid-October, a course reader will be printed.
Programming
You may find it useful to have access to an ML compiler, a 
C++ compiler, and a Java programming environment. The Standard ML of New Jersey 
compiler is available by anonymous ftp without charge; it runs on campus 
machines and most major platforms. (The course web page has specifics.) There 
will not be any homework assignments that require you to run a program and turn 
in the results.
Course Work and Exams
There will be weekly homework assignments, a midterm exam, 
and a final exam. These will count approximately 35%, 30% and 35% of the final 
grade, respectively.
Homework will be assigned each Tuesday and due the following Tuesday. Late homework will be accepted only by prior arrangement. 
Homework is due in class and may be turned in up to 5PM on Tuesday. 
Homework  may be emailed to
 [email protected], 
in plain ascii or postscript/pdf that prints.
 
  The midterm is  Thursday, November
  7, 7-9 PM. 
   The final 
exam is 3:30-6:30 PM on Thursday, December 12. 
 
If you have a conflict with either exam, you must let us know 
before the end of the second week of class.
Handout Hangout
Handouts and graded homework sets that are not picked up 
during class may be found in the file cabinet at the entrance to the fourth 
floor B wing of the Gates Building.
TV students and Exams
Local students must come to campus for the midterm and final exam.
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.
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; na.mxr@forsythe) before the second class session; otherwise it will 
be understood that you have given your consent to appear on camera.
Calendar
The order and duration of topics are subject to change. We will keep the
online calendar up to date if there are changes.
  
    
      
        
          
            
              | September 2002 | 
             
            
              | Sunday | 
              Monday | 
              Tuesday | 
              Wednesday | 
              Thursday | 
              Friday | 
              Saturday | 
             
            
              |   | 
                | 
                | 
             
            
              | 1 | 
              2 | 
              3 | 
              4 | 
              5 | 
              6 | 
              7 | 
             
            
              | 8 | 
              9 | 
              10 | 
              11 | 
              12 | 
              13 | 
              14 | 
             
            
              | 15 | 
              16 | 
              17 | 
              18 | 
              19 | 
              20 | 
              21 | 
             
            
              | 22 | 
              23 | 
              24 | 
              25 | 
              26 First Class 
                Intro, Halting Problem | 
              27 | 
              28 | 
             
            
              | 29 | 
              30 | 
             
            
              | October 2002 | 
             
            
              | Sunday | 
              Monday | 
              Tuesday | 
              Wednesday | 
              Thursday | 
              Friday | 
              Saturday | 
             
            
              |   | 
                | 
              1 
                Lisp | 
              2 | 
              3 
                Foundations | 
              4 | 
              5 | 
             
            
              | 6 | 
              7 | 
              8 
                Foundations | 
              9 | 
              10 
                ML Overview | 
              11 | 
              12 | 
             
            
              | 13 | 
              14 | 
              15 
                Types, 
                Polymorphism | 
              16 | 
              17 
                Stacks and 
                Scope | 
              18 | 
              19 | 
             
            
              | 20 | 
              21 | 
              22 
                Stacks and 
                Scope | 
              23 | 
              24 
                Exceptions | 
              25 | 
              26 | 
             
            
              | 27 | 
              28 | 
              29 
                Continuations | 
              30 | 
              31 
                Modularity | 
                | 
             
            
              | November 2002 | 
             
            
              | Sunday | 
              Monday | 
              Tuesday | 
              Wednesday | 
              Thursday | 
              Friday | 
              Saturday | 
             
            
              |   | 
                | 
                | 
              1 | 
              2 | 
             
            
              | 3 | 
              4 | 
              5 
                Objects | 
              6 | 
              7 MIDTERM 
                7-9pm | 
              8 | 
              9 | 
             
            
              | 10 | 
              11 | 
              12 
                Simula | 
              13 | 
              14 
                Smalltalk | 
              15 | 
              16 | 
             
            
              | 17 | 
              18 | 
              19 
                C++ | 
              20 | 
              21 
                C++,Java | 
              22 | 
              23 | 
             
            
              | 24 | 
              25 | 
              26 
                Java | 
              27 | 
              28 
                NO CLASS | 
              29 | 
              30 | 
                | 
             
            
              | December 2002 | 
             
            
              | Sunday | 
              Monday | 
              Tuesday | 
              Wednesday | 
              Thursday | 
              Friday | 
              Saturday | 
             
            
              | 1 | 
              2 | 
              3 
                Concurrency | 
              4 | 
              5  Last Class 
                Review | 
              6 | 
              7 | 
             
            
              | 8 | 
              9 | 
              10 | 
              11 | 
              12 FINAL EXAM 
                3:30-6:30pm | 
              13 | 
              14 | 
             
            
              | 15 | 
              16 | 
              17 | 
              18 | 
              19 | 
              20 | 
              21 | 
             
            
              | 22 | 
              23 | 
              24 | 
              25 | 
              26 | 
              27 | 
              28 | 
             
            
              | 29 | 
              30 | 
              31 | 
                | 
             
          
         
       |