Text this: Essentials of error-control coding