This document discusses design patterns at the medium scale level between architectural patterns and programming language idioms. It provides an overview of different categories of design patterns including structural decomposition, organization of work, access control, management, and communication. It then focuses on explaining the whole-part pattern for structural decomposition and the master-slave pattern for organizing work. It describes the context, problem, solution, structure, dynamics, implementation, variants, examples, and consequences of these two patterns.