This course examines object-oriented programming techniques and issues, emphasizing programming as modeling and simulation, and covers the role of programming conventions, style, restrictions, and design patterns to leverage object-oriented programming for programming-in-the-large.
The objectives of the course include to cover issues involved in developing large-scale object-oriented software systems, to show how programming style conventions and language restrictions can ease object-oriented software development, and to provide insights into software component interface design.
For more background information, see the email message sent in the past to advertise the course.
Students will design and implement simulations in C++, applying the techniques covered in the course. You may develop your C++ code on any machine with a modern C++ implementation (must support C++11 language features), but you should test your code on one of the Stanford corn machines (corn.stanford.edu) because we will evaluate assignments on these machines.
There will also be a midterm exam in class on Thursday, October 23, and the final exam will be on Wednesday, December 10 from 7:00-10:00pm.
Under the Stanford Honor Code, each of you must submit your own work in this course. However, we expect you will ask others (instructor, CAs, other students) for hints and debugging help, as well as discussing problem-solving and program-structuring techniques.
We encourage you to collaborate with others, but we require that you indicate on your assignments any assistance you received. You are also responsible for understanding and being able to explain the work that you submit.
Any assistance not cited may be considered a violation of the Honor Code, and suspected violations of the honor code will be investigated and referred to the Board on Judicial Affairs. Honor code violations are a serious matter, and being found guilty of one can ruin your academic career. Please review the honor code. If you ever find yourself uncertain about how it applies to your situation, please ask. Asking what you might think is a silly question is better than risking your career.
Each student has 5 24-hour extensions to use for late projects. No more than 3 extensions can be used for any single project.
Lectures are made available via SCPD on the same day they are taped, so 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 SCPD students as well; exceptions are not granted due to students' work obligations.
No incompletes can be given in this course. Please make sure you determine before the drop deadline whether you can complete the course satisfactorily.