Thursday, September 19, 2013

PhD Admissions @ IIT Gandhinagar

I am looking for 2 highly motivated PhD students to work on challenging problems in Computer Vision and Computational Photography (with CSE/EE background) under my supervision at IIT Gandhinagar. Students can apply to either EE or CSE depending on their background. The PhD positions are fully funded.

You may follow the below links for more details and free online application. The posters can be accessed in my previous blog post.
My Personal Webpage @ IITGN

Sunday, July 14, 2013

The Joy of Teaching at an IIT - 2

My first semester teaching at IIT Jodhpur was highly satisfactory due to the Programming and Data Structures course. The elective course Computational Photography was a good experiment to carry out though I was not fully convinced with the complete organization of the course. The main problem with that course was the lack of proper textbook from which I could teach coherently. The course I believe turned out to be similar to a great movie script with an incoherent screenplay. Students' feedback for these courses also gave me many indications about what I still lack as a teacher. I wanted to correct such mistakes in the courses I taught in the second semester through proper planning and organization.

I wanted to first identify the best textbooks for the second semester courses - Digital Electronics and Microprocessor Technology (DEMT) and 3D Computational Photography and Vision (3DCPV). While "Digital Principles" by Malvino and Leach is supposedly the best book for digital electronics, the beauty of the original text was remixed by an Indian author resulting in complete chaos. This forced me to use "Digital Systems" book by Tocci, Widmer, and Moss and "8085 Microprocessor" book by Ramesh Gaonkar. The best aspect of both these books is that they are highly practical which helped me conduct the lab sessions in sync with the lectures.

3DCPV was named like that as I wanted to focus only on the depth recovery aspect of computer vision and not focusing on the high level vision tasks such as recognition and segmentation. The book by Richard Szeliski provides a very good overview and gives pointers to all the material related to computer vision. It can be the only best reference for computer vision but it demanded more effort from students to locate appropriate material from other sources. Most students do not perform this extra task to learn. I decided to teach classical depth recovery algorithms through "Robot Vision" book by BKP Horn and modern projective geometry based algorithms using "Multiple View Geometry in Computer Vision" book by Richard Hartley and Andrew Zisserman. I found all these three books complement very well for a complete 3D vision course.

While DEMT course I taught for third year BTechs (electrical engineering) was more practical, 3DCPV elective course for final year BTechs, MTechs and PhDs was more theoretical in nature. However, I made sure that I derived almost all the relevant equations in my lectures to deliver the intuition behind various algorithms which can then be readily implemented. DEMT lab sessions ran parallel to the lectures which helped students try out what I taught immediately during the lab sessions. I evaluated 3DCPV course only through the mid semester and end semester exams. As always, there were no marks allotted for attendance and class participation in all the four courses and associated lab sessions I taught last year. I strongly felt that the students should come to class out of their own interest for better knowledge transfer.

I liked teaching both DEMT and 3DCPV courses in the second semester of my teaching career. They enabled me to correct and fix some of the errors I had made earlier. The only concern towards the end of DEMT course was I could not cover some of the advanced topics in microprocessors due to time constraints. Anyway, I tried my level best to make sure I made the fundamentals clear through my lectures in both these courses. I should thank all the 44 students in the DEMT course and 39 students in the 3DCPV course for their active participation in the lectures which helped me deliver the best I could.

P.S: Courses at IIT Jodhpur - Details

Tuesday, June 18, 2013

The Joy of Teaching at an IIT - 1

It just went like a breeze! Here I am writing this blog after one year of my academic career at IIT Jodhpur. My first year of teaching at IIT Jodhpur got over before I could even come to terms with things completely. Nevertheless, it was a truly enriching experience for me over the past one year. Four full courses (one of them had 146 students), two laboratory courses, few lectures for a third course (see my last post) all in 2012-13. I always loved to teach on black board as I have the opinion that teaching in this manner enables one to explain the concepts coherently. This also helped me to interact more with the students rather than being monotonous.

I never believed that I would be able to contribute to this much amount of teaching in my first year of academic career. IIT Jodhpur students should be credited for this amazing journey which I took over the past one year. I hope they did not feel an overdose of my teaching. They should be complimented for keeping me on toes every lecture and extracting the maximum I could provide. Classroom teaching was always my passion ever since I was a  teaching assistant (TA) at IIT Bombay. In this blog, I will write about the two courses I taught during the first semester.

The first course which kick-started my academic career was Programming and Data Structures (PDS) for the first semester BTech students at IITJ. There were 146 of them in my class to be exact. It was a great class comprising of different types of students. I felt it odd when students called me 'Sir' the first time ever in my life. Though I am not from computer science background, I have working on different algorithms and into full fledged programming for the past ten years. PDS course taught me that programming oneself is much easier than teach someone to program. I found that the best way to teach a programming course is to write the entire algorithm and program on the board and explain each line of the code with the logical flow. In between the lectures, I used to wake up the sleeping students to just relax myself a bit. I should thank them as well for providing a lot of entertainment during the lectures.

The lab sessions clubbed with the lecture sessions helped me track the progress of each and every student. I used to give lecture in the morning and go to lab in the afternoon. I reckon that I know the names of almost 80-90% of the class comprising of 146 students. I will never forget the PDS course as it shaped my teaching abilities, students of PDS course who were vigilant throughout are highly responsible for that. I taught C and some C++ in the course using basic algorithms such as computations, searching, and sorting. Dedicated TAs made my life easier during the lab sessions.

I taught another course in my first semester called Computational Photography (CP) as an elective for final year BTech students. I was surprised to see 24 students register for that course even though I was a new faculty then. Pressure was on me from day one to deliver the best I could. I felt myself in an awkward position not to dash the hopes of the students who opted for this elective. It was a quite challenging course as most of the CP techniques were developed in the past 15 years or so.

I used to read a lot of research papers and teach from them as there is no standard textbook available exclusively to teach CP course yet. Though I followed Szeliski's book, I am still waiting for the book by Ramesh Raskar and Jack Tumblin to get published. I primarily focused on edge preserving filters, gradient domain processing, HDR imaging, and selected applications in the course. At the end of the course, I felt I did some justice to the course but was not fully satisfied with myself in explaining some concepts. This feeling helped me teach an advanced course much better in the next semester.

These two courses  really helped me figure out what classroom teaching at an IIT is all about. It exposed some of the weaknesses I had while trying to explain tricky concepts. The feedback from students also helped me a lot to perform more justice to the courses I taught in the following semester. For these reasons alone, these two courses will be close to my heart ever. These were the courses which helped me realize the dream of becoming a teacher and I would like to thank all the students in these two courses for their encouragement, cooperation, and support.

P.S: Courses at IIT Jodhpur - Details

Thursday, May 09, 2013

Research Methodology - The Feynman, Katz and Hamming Way

I recently gave two lectures as part of the Research Methodology course at IIT Jodhpur. This is a mandatory course for the post-graduate students in order to explain them how to do high quality research. I started off with a famous article by Richard Feynman called "Cargo Cult Science". This was his famous speech delivered at the California Institute of Technology. Feynman talks about scientific integrity while doing research. He clearly explains how to do proper scientific research and how to recognize pseudo-science so that we do not make fool of ourselves while doing research. This article is a must read for any researcher who aspires to carry out very high quality work for his/her thesis.

I have always been fascinated by experimental neuroscience ever since I learned the basics from my MTech advisor Prof. Rohit Manchanda at IIT Bombay. The most important discovery of experimental neuroscience was the one made by Bernard Katz and his colleagues in understanding the functioning of single synapse of a neuro-muscular junction (NMJ). These pioneering studies were carried out primarily in the 1960s and 1970s. Katz was conferred the Nobel prize in 1970 for his experimental discovery of the quantal neurotransmitter release in a NMJ. The Nobel lecture of Bernard Katz is available online.

I had missed the references of the work of Katz which I primarily learned from one of his earlier books called "Nerve, Muscle and the Synapse". I had a hard copy of that book which I lost over time. I was fortunate enough find the complete details of this amazing work in another brilliant neuroscience book called "From Neuron to Brain" (5th Edition) by G. Nicholls and others. This book drew my attention towards the work of Katz and others in NMJ of a frog.

Katz and his colleagues discovered the quantal release of neurotransmitters at the NMJ and proved that the release can be modeled using a Poisson distribution. Since the number of synaptic vesicles are very large and only a tiny fraction of them get released with each depolarization and Calcium in flux, the Poisson distribution models the entire phenomenon perfectly. I tried to illustrate this work as a case study as to how to do inter-disciplinary research in science. The work of Katz involves understanding of the basic electrical engineering, chemistry, and a bit of statistics.

Then, I focused on the principles behind high quality applied research and how to make fundamental contributions to engineering and technology. My last part of the lecture was derived from the famous article by Richard Hamming, "You and Your Research". Hamming is famous for his fundamental contributions to the area of communication systems such as Hamming codes, Hamming distance, and Hamming window. He was one of the pioneers in the field of communication and his works are found in all standard textbooks on Signal Processing, Communication, and Error Detection Codes. His book on numerical analysis is a classic one. I found his suggestions on research to be the best suited for engineering students.

The top ten rules emphasized by Hamming in his lecture was published by the journal Computational Biology. I found these ten rules simple to teach in the classroom. The successive articles in the same journal contained more tips for the students at various stages of their research career and the collection can be accessed as Ten Simple Rules collection. I found the rules for best research by Hamming, successful collaboration, and graduate students to be highly relevant for the course audience and covered them in my lecture. I am sure that these articles would be indispensable for any student who aspires to do high quality research.

The Research Methodology course page I created contains all these links. I plan to add more contents to this page in future.