Introduction to Object-Oriented Software Design, including concepts of encapsulation, modularity, coupling and cohesion. Use of Unified Modeling Language (UML) in design documentation. Introduction to the concept of design patterns and exposure to some commonly used design patterns.