Stanford University
Computer Science 249a: Fall 2009
Overiew | Details | Materials | Assignments | Exams | Project | Policies
This course examines object-oriented programming techniques and issues, emphasizing programming as modeling and simulation. We will explain the role of programming conventions, style and restrictions in surviving object-oriented programming for class libraries and programming-in-the-large.
The objectives of the course are to:
Students will design and implement a simulation in C++ in several stages, applying the techniques covered in the course. Students may also elect to do a project. There will be an in-class midterm and a final exam.
For more background information, see the email sent out to advertise the course last year.
Below are prior midterms to help you prepare for the midterm exam on November 4, 2008. Sample Midterms
Below are prior finals to help you prepare for the final exam. Sample Finals
We expect the programming assignments to be done individually. This may seem odd since the techniques and approaches covered in this course are useful for team projects. However, we want to ensure a uniform experience for all students, i.e. to avoid the usual situation in team projects where one student does the bulk of the work and the others make only a minor contribution.
Of course you are permitted and encouraged to discuss design strategies with one another, but there should be no sharing of code or header files, and all assistance (other than from the TA or instructor) must be cited. See this link for more detailed explanation of what is permitted and what is not.
You may work on the assignments on any Unix machine with a modern C++ compiler and debugger. But since we will evaluate your assignment on one of the pod machines in the Terman Hall computer cluster, we strongly recommend that you develop and test your code on one of these machines.
You should receive an additional 100 MB of disk quota on your afs drive within two days after registering for the course in Axess. Email us if the extra quota proves insufficient.
Midterm: November 4th, in class.
Final: December 11 at 3:30 pm. Terman Auditorium.
Exams are closed book, closed notes. Remote SITN/SCPD students may take the exams at their company sites; please have your local tutor send us email to make arrangements.
Students wishing to do a project, either individually or in a group, can take the course for 4 or 5 units. A rough guideline for the size and scope of the project is one assignment's worth of work for each additional unit. The project might be an extension of one of the assignments, or an application of the techniques in this course to a topic from another course. You will be expected to formulate your idea into a detailed project proposal fairly early in the quarter.
If you are interested in doing a project, please talk to Prof. Cheriton.
Assignments submitted past the due date will be accepted and will be penalized 10% for each 24-hour period (including weekends).
Since lectures are made available via SCPD on the same day they are taped, SITN/SCPD students are expected to follow the same schedule as the rest of the class. This means that the above late assignment policy applies to SITN/SCPD students as well; exceptions are not granted due to students' work obligations.
It should go without saying, but because computer science project courses have a long and ugly history of honor code violations, we will say it anyway:
The Stanford honor code applies to all work done in this course. All work you submit must be your own. Suspected violations of the honor code will be investigated and referred to the Office of Judicial Affairs.
Honor code violations are a serious matter, and being found guilty of one can ruin your academic career. Review the honor code. If you ever find yourself uncertain about how it applies to your situation, ask. Asking what you might think is a silly question is better than risking your career.
(This section is based on a handout for CS 244A.)
No incompletes will be given in this course, so make sure you determine before the drop deadline whether you can complete it satisfactorily.