Symbolic dynamics provides a mathematical framework for solving coding problems in data storage and transmission and is also a useful tool in the study of dynamical systems. This first textbook on the subject assumes only a modest mathematical background and is suitable for both engineering and mathematics students.