This document provides an introduction to patterns and pattern languages. It discusses that patterns describe recurring problems and proven solutions, and that a pattern language connects related patterns. It outlines Christopher Alexander's definition of patterns and quality without a name. It then summarizes the history and use of patterns in software, including design patterns and organizational patterns. The document presents examples of strategies and factories patterns. Finally, it discusses writing patterns and connecting them into a pattern language.