This document discusses finite state machines (FSMs). It provides background on FSMs and their history. It describes deterministic finite automata (DFAs) and nondeterministic finite automata (NFAs). It provides examples of constructing DFAs and converting NFAs to equivalent DFAs. It also discusses applications of FSMs in areas like games, artificial intelligence, text parsing, and network protocols.