Text this: An introduction to symbolic dynamics and coding