This course develops the basic ideas of information theory, compression, and error-correction. It does not present a comprehensive coverage of these topics. Instead, the stress is on basic concepts that have cohesive mathematical foundations.
A short introduction to counting and probability theory leads to concepts of information and entropy, and then noiseless coding and compression. Shannon's Noisy Coding Theorem, a more substantial piece of work, follows, showing just how much error-correction one can achieve. That covers the material up to the first exam.
After the first exam, the course starts with redundancy checks, which lead to algebraic techniques, which motivate development of abstract algebra and linear algebra over finite fields methods. Those are then used to construct a variety of error-correcting codes.