Coding Theory: A First Course