For a first course on coding theory at the senior or beginning graduate level. A reorganized and comprehensive major revision of a classic textbook. This text provides a bridge between introductory courses in digital communications and more advanced courses in information theory. Completely updated to cover the latest developments. It presents state-of-the-art error control techniques.