An Introduction to Symbolic Dynamics and Coding by Douglas A. Lind, Douglas Lind & Brian Marcus