Object-Oriented Systems Design

CS108

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.

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

What You Need to Succeed

  • A conferred bachelor’s degree with an undergraduate GPA of 3.0 or better
  • Computer organization and systems (CS107) or equivalent

What You Need To Get Started

Before enrolling in your first graduate course, you must complete an online application.

Don’t wait! While you can only enroll in courses during open enrollment periods, you can complete your online application at any time.

Once you have enrolled in a course, your application will be sent to the department for approval. You will receive an email notifying you of the department's decision after the enrollment period closes. You can also check your application status in your mystanfordconnection account at any time.

Learn more about the graduate application process.

How Much It Will Cost

Learn more about tuition and fees.