This course offers participants, hands-on experience with the most common object-oriented design patterns. During the course, they will learn how to apply these patterns to build superior-quality, reusable software development applications. In addition, participants will also review essential OO programming concepts as part of the program to help them develop a strong fundamental knowledge of object-oriented design patterns. The course framework is designed with sessions which require participants to work in coding labs as well as undertake several ‘mini-projects’ throughout the program to help participants effectively apply and review the design patterns in a practical manner. The course focuses on relatively advanced topics, selected specifically to provide participants with an extensive background on concepts relating to OO, combining the latest and most efficient techniques with the most effective practices.