Object-Oriented Systems Design


Stanford School of Engineering



There are many benefits of object-oriented programming (OOP) including faster development, reusability, and decreased maintenance costs. OOP ties a set of data to a set of behaviors and provides a greater sense of context for data.

This course is designed to strengthen a student's programming ability through several large and interesting programming projects. Students will be taught how to find information on their own and find solutions using available documentation to encourage programming confidence in industry. The course covers object-oriented principles and provides a broad exposure to programming areas such as multi-threaded programs, communication between processes and interacting with databases. Students should expect a project component within this course.


CS107 or equivalent

Topics include

  • Java review and unit testing
  • Android programming
  • Encapsulation and inheritance
  • Programming with threads
  • Software development and engineering strategies
  • Approaches to programming in teams

Course grades will be based on individual assignments and a group project at the end of the quarter.

Course Availability

The course schedule is displayed for planning purposes – courses can be modified, changed, or cancelled. Course availability will be considered finalized on the first day of open enrollment. For quarterly enrollment dates, please refer to our graduate education section.

Thank you for your interest. No sections are available. Please click the button below to receive an email when the course becomes available again.

Notify Me