- Object oriented design patterns.
- Understand when to apply design patterns to improve the quality of the code.
- Understand the affects of coupling and cohesion on code quality.
- Design, implement and evaluate a computer-based system, process, component, or program to meet desired needs
- Use current techniques, skills, and tools necessary for computing practice.