An introduction to Coding Theory

By Prof. Adrish Banerjee   |   IIT Kanpur
Learners enrolled: 2767
ABOUT THE COURSE : 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 & faculty in electronics and communications engineering

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

INDUSTRY SUPPORT: Telecommunication Companies
Course Status : Completed
Course Type : Elective
Duration : 8 weeks
Category :
  • Electrical, Electronics and Communications Engineering
  • Communication and Signal Processing
Credit Points : 2
Level : Undergraduate/Postgraduate
Start Date : 25 Jul 2022
End Date : 16 Sep 2022
Enrollment Ends : 08 Aug 2022
Exam Date : 25 Sep 2022 IST

Note: This exam date is subjected to change based on seat availability. You can check final exam date on your hall ticket.

Page Visits

Course layout

Week 1-
Lecture 1: Introduction to error control coding
Lecture 2: Introduction to linear block codes, generator matrix and parity check matrix
Lecture 3: Properties of linear block codes: Syndrome, error detection

Week 2-
Lecture 4: Decoding of linear block codes
Lecture 5: Distance properties of linear block codes

Week 3-
Lecture 6: Some simple linear block codes: Repetition codes, Single parity check codes, Hamming codes, Reed Muller codes
Lecture 7: Bounds on size of codes: Hamming bound, Singleton bound, Plotkin bound, Gilbert-Varshamov bound

Week 4-
Lecture 8: Introduction to convolutional codes-I: Encoding, state diagram, trellis diagram
Lecture 9: Introduction to convolutional codes-II: Classification, realization, distance properties
Lecture 10: Decoding of convolutional codes-I: Viterbi algorithm

Week 5-
Lecture 11: Decoding of convolutional codes-II: BCJR algorithm
Lecture 12: Performance bounds for convolutional codes

Week 6-
Lecture 13: Low density parity check codes
Lecture 14: Decoding of low density parity check codes: Belief propagation algorithm on BSC and AWGN channels

Week 7-
Lecture 15: Turbo codes
Lecture 16: Turbo decoding

Week 8-
Lecture 17: Distance properties of turbo codes
Lecture 18: Convergence of turbo codes 
Lecture 19: Automatic repeat request schemes
Lecture 20: Applications of linear codes

Books and references

1. “Error Control Coding”, by Shu Lin and Daniel J. Costello, Jr., second edition, Prentice Hall, 2004.
2. Todd K. Moon, “Error Correction Coding”, 1st Edition, Wiley-Interscience, 2006. 
3. F. J. MacWilliams, N. J. A. Sloane, “The Theory of Error-Correcting Codes”, North-Holland, Amsterdam, 1977
4. R. E. Blahut, “Algebraic Codes for Data Transmission”, 1st Edition, Cambridge University Press 2003.
5. Cary W. Huffman, Vera Pless, “Fundamentals of Error-Correcting Codes”, 1st Edition, Cambridge University Press, 2003.
6. Rolf Johannesson and Kamil Sh. Zigangirov, ``Fundamentals of Convolutional Coding’’, IEEE Press, 1999.

Instructor bio

Prof. Adrish Banerjee

IIT Kanpur
Prof. Adrish Banerjee received his Bachelors degree from Indian Institute of Technology, Kharagpur and Masters and Ph.D. degree from University of Notre Dame, Indiana, USA. He is currently the Next Generation Broadcasting Chair Professor in the Department of Electrical Engineering at Indian Institute of Technology, Kanpur. He is a recipient of Microsoft Research India young faculty award, Institute of Engineers India young engineer award, and IETE Prof. K. Sreenivasan memorial award. His research interests are in the physical layer aspects of wireless communications, particularly green communications, and error control coding.

Course certificate

The course is free to enroll and learn from. But if you want a certificate, you have to register and write the proctored exam conducted by us in person at any of the designated exam centres.
The exam is optional for a fee of Rs 1000/- (Rupees one thousand only).
Date and Time of Exams: 25 September 2022 Morning session 9am to 12 noon; Afternoon Session 2pm to 5pm.
Registration url: Announcements will be made when the registration form is open for registrations.
The online registration form has to be filled and the certification exam fee needs to be paid. More details will be made available when the exam registration form is published. If there are any changes, it will be mentioned then.
Please check the form for more details on the cities where the exams will be held, the conditions you agree to when you fill the form etc.


Average assignment score = 25% of average of best 6 assignments out of the total 8 assignments given in the course.
Exam score = 75% of the proctored certification exam score out of 100

Final score = Average assignment score + Exam score

YOU WILL BE ELIGIBLE FOR A CERTIFICATE ONLY IF AVERAGE ASSIGNMENT SCORE >=10/25 AND EXAM SCORE >= 30/75. If one of the 2 criteria is not met, you will not get the certificate even if the Final score >= 40/100.

Certificate will have your name, photograph and the score in the final exam with the breakup.It will have the logos of NPTEL and IIT Kanpur .It will be e-verifiable at nptel.ac.in/noc.

Only the e-certificate will be made available. Hard copies will not be dispatched.

Once again, thanks for your interest in our online courses and certification. Happy learning.

- NPTEL team

MHRD logo Swayam logo


Goto google play store