This document outlines various chapters on software design patterns and anti-patterns. Chapter 1 discusses basic design patterns with sections on structure, communication, and other patterns. Chapter 2 focuses on specific programming patterns covering topics like abstraction, polymorphism, and inheritance. Chapter 3 analyzes anti-patterns that should be avoided like feature envy and shotgun surger