MATH 8560 - Theory of Error-Correcting Codes