Text this: Fundamentals of codes, graphs, and iterative decoding