Describir: The theory of error-correcting codes