Reliability is an essential feature of any effective communication. This course introduces a rigorous study of error-correction coding. The use of the correct coding scheme is imperative in ensuring integrity, which is an information security primitive. Error correcting and detecting codes used for computers and communications will be studied. Topics covered in this course include mathematical background, the communication channel, Reed-Muller Codes, parity check codes, cyclic codes, Hamming codes and compression coding.