Course Title
Software Construction
Extended Description

The following broad topics will be covered. The main learning goals for each topic are also provided.

Data Abstraction
  • describe how data abstraction makes possible the construction of larger software systems
  • specify, use, test and implement a data abstraction in Java
Control Flow Models
  • produce inter- and intra-method control flow diagrams from Java code
Type Hierarchies, Polymorphism and Dispatching
  • trace the execution of Java source code that uses polymorphism, inheritance and dynamic dispatching
  • determine if one type is substitutable for another
Robust Data Abstractions
  • specify, test and implement a robust data abstraction using exceptions
Object-Oriented Design
  • record the design of an existing system using a UML class diagram
  • extract UML sequence diagrams from existing code
  • express a UML class diagram as a Java program
  • make effective use of the Java Collections Framework
Design Patterns
  • apply the Composite, Observer, and Iterator patterns to a given design problem
Calendar Description
Design, development, and analysis of robust software components. Topics such as software design, computational models, data structures, debugging, and testing.
Course Info
Course Number
CPSC 210
Term 2
Time (start)
1:30 PM
Time (end)
4:00 PM
Date (start)
Date (end)
UBC Course Schedule