Spring 2026 - CMPT 213 D100

Object Oriented Design in Java (3)

Class Number: 5409

Delivery Method: In Person

Overview

  • Course Times + Location:

    Jan 5 – Apr 10, 2026: Wed, 11:30 a.m.–12:20 p.m.
    Surrey

    Jan 5 – Apr 10, 2026: Fri, 10:30 a.m.–12:20 p.m.
    Surrey

  • Prerequisites:

    CMPT 225 with a minimum grade of C-.

Description

CALENDAR DESCRIPTION:

An introduction to object oriented design using Java. The Java programming language is introduced, with an emphasis on its advanced features. The course covers the building blocks of object oriented design including inheritance, polymorphism, interfaces and abstract classes. A number of object oriented design patterns are presented, such as observer, iterator, and singleton. The course also teaches best-practices in code construction. It includes a basic introduction to programming event driven graphical user interfaces. Students with credit for CMPT 212 cannot take this course for further credit.

COURSE DETAILS:

Throughout the course, you will learn and use Java to solve interesting problems but no background in Java is expected. The course will cover a number of design patterns which you will use in the assignments. There will be a focus on designing and writing good maintainable code, as such all code submitted will need to conform to a coding standard which will be discussed in class.

Topics include:

  • Introduction to Java, including advanced features such as enum, generics, and mutable vs immutable.
  • Inheritance, polymorphism, interfaces and abstract classes.
  • Introduction to object oriented design (OOD) and some UML diagrams.
  • Code construction, best practices and coding standard.
  • Basic software design patterns such as iteration, singleton, observers, or template methods.
  • Introduction to refactoring.
  • Basic introduction to event driven user interface programming or web servers, and use of threads.
  • Software development tools, such as advanced IDE features, build tools, debuggers, and JavaDoc.
Policy on the use of generative AI will be discussed in the first week of class.

COURSE-LEVEL EDUCATIONAL GOALS:

By the end of this course students should be able to:

  • Explain and justify the benefits and drawbacks of object-oriented design
  • Design and write code that employs useful design patterns
  • Write and maintain Java programs

Grading

  • Assignments and Project 40%
  • Midterm Exam 25%
  • Final Exam 35%

NOTES:

Grading will be confirmed in the first week of class.

Students must attain an overall passing grade on the weighted average of exams in the course in order to obtain a clear pass (C- or better).

Materials

MATERIALS + SUPPLIES:

See Required & Recommended Reading for the reference books used in this course.

REQUIRED READING:

Horstmann, C. S. (2006). Object-oriented design & patterns / Cay Horstmann. (2nd ed.). Wiley.

The author offers online access to the latest version of the book for students, instructions to acquire access which will be announced during class.
ISBN: 9780471744870

RECOMMENDED READING:

McConnell, S. (2004). Code complete / Steve McConnell. (2nd ed.). Microsoft Press.

An online version (sufficient for this course) is available at the SFU Libray with valid SFU credentials.

ISBN: 9780735619678

Freeman, Robson, Sierra, Bates, Robson, Elisabeth, Sierra, Kathy, Bates, Bert, Freeman, Eric, & EBSCOhost. (2021).Head First Design Patterns: building extensible and maintainable object-oriented software, 2nd Edition, O'Reilly.

An online version (sufficient for this course) may be available at the SFU Library with valid SFU credentials.

ISBN: 9781492078005

Grand, M., & EBSCOhost. (2002). Patterns in Java : a catalog of reusable design patterns illustrated with UML. Vol. 1 / Mark Grand. (2nd ed.). Wiley Pub.

An online version (sufficient for this course) is available at the SFU Library with valid SFU credentials.

ISBN: 9780471449331

Schildt, H., Coward, D., & Oracle Corporation. (2024). Java : a beginner’s guide / Herbert Schildt. (Tenth Edition). McGraw Hill.

An online version (sufficient for this course) may be available at the SFU Library with valid SFU credentials.

ISBN: 9781265054632

REQUIRED READING NOTES:

Your personalized Course Material list, including digital and physical textbooks, are available through the SFU Bookstore website by simply entering your Computing ID at: shop.sfu.ca/course-materials/my-personalized-course-materials.

Department Undergraduate Notes:

The following are default policies in the School of Computing Science. Please check your course syllabus whether the instructor has chosen a different policy for your class, otherwise the following policies apply.
 
  • Students must attain an overall passing grade on the weighted average of exams in the course in order to get a C- or higher.
  • All student requests for accommodations for their religious practices must be made in writing by the end of the first week of classes, or no later than one week after a student adds a course. After considering a request, an instructor may provide a concession or may decline to do so. Students requiring accommodations as a result of a disability can contact the Centre for Accessible Learning (caladmin@sfu.ca).

Registrar Notes:

ACADEMIC INTEGRITY: YOUR WORK, YOUR SUCCESS

At SFU, you are expected to act honestly and responsibly in all your academic work. Cheating, plagiarism, or any other form of academic dishonesty harms your own learning, undermines the efforts of your classmates who pursue their studies honestly, and goes against the core values of the university.

To learn more about the academic disciplinary process and relevant academic supports, visit: 


RELIGIOUS ACCOMMODATION

Students with a faith background who may need accommodations during the term are encouraged to assess their needs as soon as possible and review the Multifaith religious accommodations website. The page outlines ways they begin working toward an accommodation and ensure solutions can be reached in a timely fashion.