Advanced Object Oriented Design

This course will introduce important concepts such as inheritance and polymorphism, which are crucial tools needed for crafting object-oriented solutions to real-world problems. Design patterns that commonly occur in design situations will be covered. A formal notation for describing and evaluating object-oriented designs such as the Unified Modeling Language (UML) will be taught. Students will apply the concepts to design and implement object oriented solutions to one or more reasonably sized real-world problems.