# An Introduction to Coding Theory

- Institution: IIT Kanpur
- Department: Electrical Engineering
- Teacher: Prof. Adrish Banerjee
- Level: Undergraduate
- Language: English
- Subjects: Engineering
- Source: [NPTEL](https://nptel.ac.in/courses/108104092)
- Licence: [CC BY-NC-SA](https://nptel.ac.in/faq) (Non-commercial use only.)
- Syllabus: [at the source](https://nptel.ac.in/courses/108104092)
- Who can watch: Tweens profiles and older (sources give no ratings; placed by Invisible Network from the source's own words)

Error control coding is an indispensible part of any digital communication system. In this introductory course, we will discuss theory of linear block codes and convolutional codes, their encoding and decoding techniques as well as their applications in real world scenarios. Starting from simple repetition codes, we will discuss among other codes: Hamming codes, Reed Muller codes, low density parity check codes, and turbo codes. We will also study how from simple codes by concatenation we can build more powerful error correcting codes.

Intended audience: 3rd/4th year UG students, PG students &amp; faculty in electronics and communications engineering

Prerequisites: An exposure to linear algebra and probability theory as well as a course in digital communications

## Lectures

1. [Introduction to Error Control Coding-I](https://invisiblenetwork.ai/learn/nptel/108104092/ee8256c88f99) (YouTube)
2. [Introduction to Error CoIntrol Coding-II](https://invisiblenetwork.ai/learn/nptel/108104092/a7e6931d790b) (YouTube)
3. [Introduction to Error Control Coding-III](https://invisiblenetwork.ai/learn/nptel/108104092/d67e2be0b206) (YouTube)
4. [Introduction to Linear Block Codes, Generator Matrix and Parity Check Matrix](https://invisiblenetwork.ai/learn/nptel/108104092/6189e5f2add5) (YouTube)
5. [Syndrome, Error Correction and Error Detection](https://invisiblenetwork.ai/learn/nptel/108104092/90695a99447a) (YouTube)
6. [Problem Solving Session-I](https://invisiblenetwork.ai/learn/nptel/108104092/1417b96efcfd) (YouTube)
7. [Decoding of Linear Block Codes](https://invisiblenetwork.ai/learn/nptel/108104092/6ecb2692ecb7) (YouTube)
8. [Distance Properties of Linear Block Codes-I](https://invisiblenetwork.ai/learn/nptel/108104092/088282d33f0e) (YouTube)
9. [Distance Properties of Linear Block Codes-II](https://invisiblenetwork.ai/learn/nptel/108104092/fe5984bcf999) (YouTube)
10. [Problem Solving Session-II](https://invisiblenetwork.ai/learn/nptel/108104092/3671868587b9) (YouTube)
11. [Some Simple Linear Block Codes-I](https://invisiblenetwork.ai/learn/nptel/108104092/ebf45ff8b451) (YouTube)
12. [Some Simple Linear Block Codes-II: Reed Muller Codes](https://invisiblenetwork.ai/learn/nptel/108104092/5082f48c3ff8) (YouTube)
13. [Bounds on the Size of a Code](https://invisiblenetwork.ai/learn/nptel/108104092/96a586d7628b) (YouTube)
14. [Problem Solving Session-III](https://invisiblenetwork.ai/learn/nptel/108104092/27bd32747522) (YouTube)
15. [Introduction to Convolutional Codes-I: Encoding](https://invisiblenetwork.ai/learn/nptel/108104092/530c8504064c) (YouTube)
16. [Introduction to Convolutional Codes-II: State Diagram, Trellis Diagram](https://invisiblenetwork.ai/learn/nptel/108104092/fe20e4efc1e1) (YouTube)
17. [Convolutional Codes: Classification, Realization](https://invisiblenetwork.ai/learn/nptel/108104092/36651c7d2f68) (YouTube)
18. [Convolutional Codes:Distance Properties](https://invisiblenetwork.ai/learn/nptel/108104092/3096b2c3692b) (YouTube)
19. [Decoding of Convolutional Codes-I: Viterbi Algorithm](https://invisiblenetwork.ai/learn/nptel/108104092/39ff0f8d0fc9) (YouTube)
20. [Decoding of Convolutional Codes-II: BCJR Algorithm](https://invisiblenetwork.ai/learn/nptel/108104092/0bd898a11cbd) (YouTube)
21. [Problem solving session-IV](https://invisiblenetwork.ai/learn/nptel/108104092/cdba747189e0) (YouTube)
22. [Problem solving session-V](https://invisiblenetwork.ai/learn/nptel/108104092/d57f0cd6c7d9) (YouTube)
23. [Performance Bounds for Convolutional Codes](https://invisiblenetwork.ai/learn/nptel/108104092/944d9c30cee5) (YouTube)
24. [Low Density Parity Check Codes](https://invisiblenetwork.ai/learn/nptel/108104092/5c91ff00b31c) (YouTube)
25. [Decoding of Low Density Parity Check Codes-I](https://invisiblenetwork.ai/learn/nptel/108104092/bae3e7d426d2) (YouTube)
26. [Decoding of Low Density Parity Check Codes-II: Belief Propagation Algorithm](https://invisiblenetwork.ai/learn/nptel/108104092/90b38113bb9c) (YouTube)
27. [Turbo Codes](https://invisiblenetwork.ai/learn/nptel/108104092/e1d8e47fa653) (YouTube)
28. [Turbo Decoding](https://invisiblenetwork.ai/learn/nptel/108104092/3d68fc1ff721) (YouTube)
29. [Problem Solving Sessions-VI](https://invisiblenetwork.ai/learn/nptel/108104092/e47e626db4b4) (YouTube)
30. [Distance Properties of Turbo Codes](https://invisiblenetwork.ai/learn/nptel/108104092/23844a367e87) (YouTube)
31. [Convergence of Turbo Codes](https://invisiblenetwork.ai/learn/nptel/108104092/5ce34ee6151f) (YouTube)
32. [Automatic Repeat reQuest (ARQ) Schemes](https://invisiblenetwork.ai/learn/nptel/108104092/acc4990febfc) (YouTube)
33. [Applications of Linear Codes](https://invisiblenetwork.ai/learn/nptel/108104092/adb0d9d4823f) (YouTube)
