Object-oriented design using design patterns. Topics include: Study of creational, structural, and behavioral patterns; Applications of these patterns in the design and implementation of object-oriented systems; complete analysis, design, implementation, and refactoring of online and batch systems.
- Demonstrate expertise in reading peer-reviewed papers in object-oriented design and explain them in writing.
- Use major design patterns in the design and implementation of object-oriented software.
- Create flexible, modular, reusable, and understandable designs.
- Identify opportunities for the use of major design patterns.
- Make appropriate design choices.
- Apply refactoring techniques to improve solutions.
- Understand the major architectural patterns useful for the construction of distributed systems.