Spring 2025 - CMPT 213 D100

Object Oriented Design in Java (3)

Class Number: 5375

Delivery Method: In Person

Overview

  • Course Times + Location:

    Jan 6 – Apr 9, 2025: Wed, 11:30 a.m.–12:20 p.m.
    Surrey

    Jan 6 – Apr 9, 2025: 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

  • 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.

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 Recommended Reading for the reference books used in this course.

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: 0-7356-3507-2

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

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

ISBN: 9780471744870

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.

Registrar Notes:

ACADEMIC INTEGRITY: YOUR WORK, YOUR SUCCESS

SFU’s Academic Integrity website http://www.sfu.ca/students/academicintegrity.html is filled with information on what is meant by academic dishonesty, where you can find resources to help with your studies and the consequences of cheating. Check out the site for more information and videos that help explain the issues in plain English.

Each student is responsible for his or her conduct as it affects the university community. Academic dishonesty, in whatever form, is ultimately destructive of the values of the university. Furthermore, it is unfair and discouraging to the majority of students who pursue their studies honestly. Scholarly integrity is required of all members of the university. http://www.sfu.ca/policies/gazette/student/s10-01.html

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.