Linear block codes: Systematic linear codes and optimum decoding for the binary symmetric channel; Generator and Parity Check matrices, Syndrome decoding on symmetric channels; Hamming codes; Weight enumerators and the MacWilliams identities; Perfect codes; Introduction to finite fields and finite rings; factorization of (X^n-1) over a finite field; Cyclic Codes; BCH codes; Idempotents and Mattson-Solomon polynomials; Reed-Solomon codes, Justeen codes, MDS codes, Alterant, Goppa, and generalized BCH codes; Spectral properties of cyclic codes; Decoding of BCH codes: Berlekamp’s decoding algorithm, Massey’s minimum shift register synthesis technique, and its relation to Berlekamp’s algorithm. A fast Berlekamp-Massey algorithm; Convolution codes; Wozencraft’s sequential decoding algorithm, Fann’s algorithm, and other sequential decoding algorithms; Viterbi decoding algorithm.