This document discusses SOLID principles and design patterns. It introduces SOLID, including the single responsibility, open-closed, Liskov substitution, interface segregation and dependency inversion principles. It then explains three design patterns - decorator, strategy, and visitor patterns - with examples. The document concludes with a recap and information for questions.