EE605 - Error Correcting Codes
Course offered in: Session – 2016 Autumn Instructors: Prof. Sarvanan Vijayakumaran
Overview: The aim of this course is to teach the student a few general techniques in error correction. The methodology is to study 4-5 different classes of codes used for error correction throughout the semester, both at an abstract level and at a concrete level with specific examples. The quizzes and exams especially like to focus on students being able to use and manipulate concrete examples of given codes. The properties, advantages and disadvantages of these various codes are discussed. What I liked about the course was that proving properties of codes was taken seriously and undertaken in a rigorous fashion (though this tailed off towards the end of the course, maybe due to the complexity of the codes involved or maybe due to a lack of time), and this helps sensitize the student to thinking about proofs in a more logical fashion.
Course Content: I could type out the course contents here, but it would be much more beneficial for the prospective student (and look, also easier for me. Wonder how that fell together so neatly) to just post a link to Prof. Sarvanan’s course webpage. Here (https://www.ee.iitb.ac.in/~sarva/courses/EE605/Autumn2015.html) he has a repository of all his lecture slides and past papers and practice sets, dating back to 2011. While looking at the slides may or may not be Greek to you, just looking at the names of the slides will provide as good an overview of the course contents as you can get.
Prerequisites: There are no formal prerequisites, but a slightly basic knowledge of linear algebra does help, especially for the “Linear Block Codes” part of the course. Most of the content is built from the ground up, so a student need not worry about needing prior knowledge. So reading about “Groups” and “Fields” in the course contents should not daunt you. These topics are taught assuming little or no knowledge on the part of the student.
Feedback on Lectures: Prof. Saravanan goes at a moderate pace and writes pretty much everything on the board. Taking notes is useful and quite sufficient as material.
Feedback on Tutorials, Assignments and Exams: The evaluation patter is: 10% assignments: There are 4-5 such assignments throughout the sem, but each one consists of just one or two problems to be submitted. Not too taxing timewise. 20%: Best two quizzes out of three. 10% per quiz. 30%: Midsem 40%: Endsem The key thing to note is that every exam (be it quiz, midsem, or endsem) had a healthy dose of questions from the practice problem sets the Prof provides, or from lectures. Every exam had a few questions that were new, and one had to think on the spot to answer them.
Hence, simply solving the practice problems is a good way to get decent scores in the exams (although mind that since everybody can do this, the average scores in the quizzes are decently high)
Grading Statistics:
Difficulty: The difficulty level isn’t too high, the Professor explains concepts logically and clearly with enough examples. Asking him to repeat explanations is not met with a frown, and he goes to sufficient lengths to ensure the class understands what he is talking about. This coupled with the fact that most topics are taught from the basics makes this not a very tough course. Timewise, this course is not intensive, since assignments can be done within a few hours, and there are no Projects, etc.
Study Material and References: The Prof uploads enough practice problem sets to engage the curious minds, and has a couple of books that he suggests for further reading, based upon the topic going on in class. This helped me delve further into the current topic in a manner the Prof found beneficient to students. Error Control Coding, S. Lin and D. J. Costello, Second Edition, Prentice Hall, 2004.Fundamentals of Convolutional Coding, R. Johannesson and K. Sh. Zigangirov, Wiley-IEEE Press, 1999
Review by - Jay Mardia (jay.mardia19@gmail.com)