Coding Theory and Design Theory: Part I Coding Theory (The IMA Volumes in Mathematics and its Applications, 20, Band 20)