The theory of error-correcting codes is a relatively recent application of mathematics to information and communication systems. The theory has found a wide range of applications from deep space communication to quality of sound in compact disks. It turns out that a rich set of mathematical ideas and tools can be used to design good codes. The set of mathematical tools used in the field generally comes from algebra (linear and abstract algebra). The purpose of this module is to introduce the basics of the subject to students with an elementary knowledge of linear algebra, via a well-known class of codes known as Hamming codes. Interesting properties and projects related to Hamming codes are introduced.