Survive and Succeed in IITs in the first semester! (PG students)
Hello friends! In this blog post, I am going to share you some simple tips for doing well in the first semester of an IIT level postgraduate program. This mi...
Typically, an M.S. / M.Tech. or a Ph.D. program in India, involves a good amount of coursework credits to be earned in the first year. This can be termed as some sort of a training phase, where a scholar is trained in varieties of subjects, attains skills through assignments, presentations, examinations and so on. This usually includes 6-12 courses, sometimes more and sometimes less depending on the university guidelines and the background of the candidate. After the scholar has cleared this training, he/she is expected to perform research in an area based on choice, availability and other factors like project funding.
So when I joined IIT Hyderabad this year, I was expected to go through something of the same sort. In my first semester, as I had joined in January and usually most admissions happen in July, I had a very limited set of choices in the courses. Many courses were having some prerequisites, that was covered in the last semester and I had not done them. I somehow managed to choose three courses, and the experience is as follows:
“Advanced Computer Architecture”, which was my natural choice, since I am primarily motivated to work on architecture and systems aspects in my research. This course started off from where I had left off in my UG and GATE-CS preparation. Some major topics included in the course were, advanced memory technologies (like STT-RAM, PCM, Flash etc.), branch predictors, low voltage computing, approximate computing, heterogeneous processor architectures etc. This course was the most fun to learn course to me because of my natural inclination towards computer systems.
The second one was an easy choice, since I loved computer security and a course was offered named “Computer and Network Security”. This course was a beautiful mixture of several topics like Cryptography, Wi-Fi and 4G Security, Hardware and Memory Security. This course had a good set of hands on assignments on most of the topics and there was one major project. The project was to develop a basic network firewall, with features like access control, protection against common attacks like DoS.
The third choice was slightly difficult to make, but that eventually turned out to be quite an enjoyable one. This was “Topics in Data Mining”, which essentially revolved around recommender systems, stream mining, opinion mining, big data analytics. Although, these topics were totally new to me, but they had a lot of intuitive ideas, so I loved the exploration. There was a project component as well, in which we formed a team and worked on finding suitable users(answerers) for new questions asked in Question and Answer Forums like Quora, StackOverflow.
My first semester was something of a blazingly fast set of four months. There was a lot of learning, and a lot of drag in some assignments as well. Believe me, some of the assignments make you work like a robot, you neither sense the day not the night, you just keep thriving for it. The semester ended by the 4th week of April, and I did get a moderate GPA. I was disappointed, since I did not feel that my learning and my GPA had a correlation. However, truth I have to admit that, I never studied anything with the perspective of having good scores in exams. I just studied like a free bird, but the system does expect you to perform in the exams. I basically neglected the exams, and the results neglected my learning. Yeah, I do feel that true learning happens when you enjoy like a free bird, but assessments are assessments. You just can’t make an excuse.
There was a summer break of almost 3 months, and I started reading literature as suggested by my advisor. Almost every week, I used to go through a few research papers and try to summarize them. There was a week long summer school I attended at IITK, which was a great experience, I have posted a detailed blog on it, please follow the link to read.
The second semester also had some twists in the course offering. A course named Applied Machine Learning, which I was eagerly waiting to go though from January, was about to start in August. However, due to some reasons the course was available only to the EMDS students, all others were barred from it. In case you don’t know what EMDS is, EMDS stands form Executive M.Tech. in Data Science, and is offered in online mode to working professionals. I would put a detailed post on EMDS program sometime soon. So, I could not officially credit Applied Machine Learning, but thanks to the support of Prof. Vineeth, I could attend the classes online, which still turned out to be a good learning source.
I searched for the other course offerings that suit my profile and interests, yet do not overburden me, and found four elective courses. Although, I dropped one course later, since it would have been a lot of load on me, and to do justice to the assignments and projects would have been extremely difficult. Apart from the three I chose, there was one compulsory course for all PG students in the CS department. These are the four courses I went through in the second semester,
“Advanced Data Structures and Algorithms” abbreviated as ADSA, was literally an advanced algorithms course involving topics like Red Black Trees, Amortized Analysis, Flow Algorithms, NP Completeness, Randomized Algorithms, Approximation Algorithms etc. This was a compulsory course for all PG students of the department. Since, I come from a non-CS (Electronics) background, this was expected to be challenging to me. Apart from me, there were a few more with Electrical or Electronics background, who were doing the course as a part of their M.Tech. in ML coursework (M.Tech. in ML is jointly offered by CSE-EE Departments). For us, it was pretty heavy at first, and since all the quizzes in the course were on topics that the instructor did not cover, rather the topics were expected to be known (or self-studied) at this level. Clearly the CS graduates had an advantage, since they all had recently prepared for GATE-CS and also studied Algorithms in their UG coursework, but we (non-CS) guys did try to do justice to the quizzes.
The second course I opted for was “Topics in DBMS”. This course was a continuation of the course “Topics in Data Mining”. And since I enjoyed TDM quite a lot, TDBMS was a natural choice. This course kept touching more topics in Data Mining, like Clustering Algorithms, Anomaly Detection, Distributed Databases etc. The topics in this course were not as intuitive as in “Topics in Data Mining”, I sometimes used to feel lost. Anyway, moving on… There was also a project component, in which we again formed a group and worked on Review Spammer Detection. Reviews on any web portal is very important and finding spams is a big task in it, as paid reviews and spams are increasing. So this was an interesting problem, and we used a graph based model to approach this problem.
There was one more course on offer, which is very closely related to data mining. Since, I had some idea on data mining and was actually enjoying the topics, I though “Information Retrieval” would be a nice choice. This course focused on text processing, where it started off with a Boolean retrieval model. A Boolean model is used just to classify a retrieved result is relevant or not. Later, we got introduced to ranked models, where the retrieved results were ranked based on their relevance. There were topics like PageRank, HITS, LDA, SVM etc. which do form a strong foundation for research in Text Mining. There was also a set of assignments and a project. In the project we worked on Automated Text Summarization, which seemed like an interesting problem, but not as easy. We understood some approaches like extractive summarization and abstractive summarization, and implemented a couple of basic models.
The fourth choice was “Visual Big Data Analytics” and this was my first purely research oriented course. In this course there was not much of lectures, no end or mid exams, though a couple of programming assignments were expected. In this course, a student is expected to thoroughly understand a research paper, have a basic implementation and look for better solutions, observations and ideas. I chose an interesting topic thanks to the guidance of the mentor TA (Dr. Dinesh) and one of my friends (Nandan). The topic was “Object Detection and Classification on Embedded Platforms”. We were given sufficient time to thoroughly understand the ideas and approaches in the paper we chose, and then present. Based on the presentation, we were further guided to implement the paper and reproduce the reported results with a final presentation. I worked on the famous paper of MobileNetV2, which was fairly tough for me to understand, since I lacked the background knowledge. For the background knowledge, I went through CS231n from Stanford on YouTube on the suggestion of Nandan, which certainly helped me to be on the same page as that of the paper. I took some help of another friend (Poonam), to understand the training of the neural networks on a workstation and deploying the trained model on an Android App.
This is how my 2nd semester went like. There was a lot of learning, lot of challenges, but there was a feeling of happiness and attainment at the end, since I successfully justified my learning with reasonable grades as well.
At the end of 11 months at IITH, I feel I have grown. I have learned many new things starting from advanced topics in computer architecture to various topics in data mining and machine learning too. I also feel that I have developed a stronger research orientation and clarity of thoughts on what I should do and what not. This is still the beginning of my research, now I am restarting my literature survey, that had halted in August, and currently looking for problems in systems hardware and memory security. Hope to pick up a momentum soon. There are 4 more courses still to be done in the upcoming semester. You might be wondering why so many courses? The reason is, I am a direct Ph.D. fellow (direct means without M.Tech.), so I need to do almost 11 courses over here as per the regulations of the Dept. of CSE, IITH. Anyway, I hope that was a good read and gave some insights of how a postgraduate typically spends his/her first year in an IIT (in general in India).