The course focuses on fundamental software design patterns, antipatterns, and refactoring bad design to design patterns. Hands-on experience on reuse of design patterns will be established by a several homework and a class project. The course includes reviews of UML, object-oriented design, and Gang of Four patterns. Students will be able to efficiently communicate program structures using patterns and to develop software of high quality.
At the end of this course, the student will: