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
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 closed-book midterm and a final exam.
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.
No incompletes can be given in this course. Please make sure you determine before the drop deadline whether you can complete the course satisfactorily.