This document provides an overview of finite state machines (FSM) including concepts, examples, and implementation using Unified Modeling Language (UML) state diagrams. It defines an FSM as an abstract mathematical model that represents the behavior of a system. Examples of systems that can be modeled as FSMs include traffic lights, text parsers, and characters in video games. The document discusses Mealy and Moore machines, state structure, advantages of UML state diagrams such nested states and extended states, and limitations of state diagrams. Commercial and open source tools for designing FSMs using state diagrams are also mentioned.