At the end of this course, the student will:
- know design pattern terminology and GoF design patterns
- use software design patterns in appropriate context and able to justify this use
- be able to evaluate object oriented design
- recognize design problems and propose solutions