This document discusses error detection and correction techniques using Hamming codes and cyclic codes. It provides examples of calculating Hamming distance between words and finding the minimum Hamming distance of coding schemes. Linear block codes are introduced where the XOR of two codewords results in another valid codeword. Simple parity check codes that can detect single bit errors are examined. Hamming codes that can detect up to two errors and correct single errors are analyzed. Cyclic codes are discussed as a special type of linear block code where cyclically shifting a codeword results in another valid codeword. Polynomial representations and cyclic redundancy checks are presented.