CPSC 210 921 2023S
Instructor(s)
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