OPTIMIZING SIZES OF CODES 1. Introduction to Coding Theory