Swayam Central

An Introduction to Coding Theory

By Prof. Adrish Banerjee   |   IIT Kanpur
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

Learners enrolled: 3777


Course Status : Upcoming
Course Type : Elective
Duration : 8 weeks
Start Date : 14 Sep 2020
End Date : 06 Nov 2020
Exam Date : 19 Dec 2020
Enrollment Ends : 21 Sep 2020
Category :
  • Electrical, Electronics and Communications Engineering
  • Communication and Signal Processing
  • Level : Undergraduate/Postgraduate
    This is an AICTE approved FDP course


    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


    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.


    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.


    • 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: 19 December 2020, 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

    • 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.