How I Completed 5 Minors at IITK

Jul 11, 2022 min read

I graduated from IITK with a bachelor’s degree in Aerospace Engineering, and 5 minors: Linguistic Theory (HSS), Algorithms (CSE), Machine Learning & Applications (CSE), Theory of Computing (CSE), and Computer Systems (CSE). I almost jumped with surprise when, during his convocation address, the Director mentioned that it was the first time someone was graduating with five minors. I never intended for it to be a record, and I don’t think it’ll hold up much longer because I myself almost got to 6 :p. Here’s a little write-up about why and how I did it.

The Beginning

I have been programming since I was 11 years old, and I was already pretty good at it when I came to IITK. So I was naturally interested in computer science. I am also, in general, a very overconfident person. So I wanted to do what every overconfident non-CSE interested-in-computers fresher tries to do at IITK - branch change to CSE. When people asked me my branch in my first year, I would say “abhi tak aerospace” (aerospace for now). Yes I was mocked for that, but I used to join in the laughter too. After all, I was overconfident and believed that I would somehow figure it out even if I didn’t get my branch changed to CSE.

So in my first semester, I got an SPI of 10. It was great, but that made me even more overconfident. Usually, for me, overconfidence works out well. Sometimes, it doesn’t. 2nd semester was one such instance. I got an SPI of 8.6, and my CPI went from 10.0 to 9.3. And so I couldn’t get my branch changed to CSE.

I wasn’t too unhappy about it. I had faith in IITK’s famed academic flexibility. My motive for switching to CSE was not to get a good offer in campus placements. There were plenty of examples of non-CSE people getting lucrative job offers (glad to now be added to that list) and plenty more examples of off-campus job offers being significantly better than campus placement offers (again, glad to now be added to that list). I wanted to switch to CSE because that’s what I was naturally good at, or at least that stuff was more exciting and easier for me than physics or chemistry or maths. So that was when I decided I would do a double major, or minors, or just random CSE courses, to pursue my interest.

Lucky me

A good thing happened to me in the summers. My first year summers were pretty loaded with aquatics summer camp, IITK’s New York Office internship, CSE@IITK Summer of Code, and a couple of SnT projects. So I didn’t want to take up a summer course. But almost every other summer-stay student was doing one. So, under peer pressure, I decided half-heartedly to fill the summer courses form 15 minutes before the deadline. I added just one course preference - for a course where I knew that the professor was highly lenient in grading, so that I wouldn’t have to put in much effort considering my already packed schedule (it was probably the only time I chose a course like this).

Somehow, luckily, I got that course! I didn’t think too much of it then. It was only later that I realized how important this one course was in the whole scheme of things. This course cleared a slot in my 3rd sem, which, with the convenient aerospace template, allowed me to do ESO207A (Data Structures & Algorithms) in that sem, which later enabled me to do more CSE courses at all the right times. So yes, I owe it to luck that I got these 5 minors.

Minor 1: Algorithms

I am very interested in algorithms. So the algorithms minor was something I had specifically planned for. Doing ESO207 in the 3rd sem enabled me to do CS345A (Algorithms II) in the 5th sem. The sad part is that usually, CS345A professors don’t allow non-CSE people without approved minors/double-major to enrol in that course. Again, I was lucky in this regard. In my 5th sem, Prof. Surender Baswana was offering CS345A. He put only the condition, that students from other branches should have an A grade in ESO207A. So he gladly accepted my course request without any prejudice.

CS345A was not easy at all, and I could only manage to get a B. Yet, the algorithms minor was actually the only minor I truly wanted, so I was determined to complete it. Prof. Baswana offered CS648A (Randomized algorithms) in my 6th sem. Again, he gladly accepted my course request, and was very accommodating to conduct extra lectures to teach probability pre-requisites that CSE people learn in their 2nd year. I got a B in this course too, but learnt a lot of interesting stuff. Thus, my algorithms minor was complete.

Minor 2: Theory of Computing

When the form to opt for minors was floated, I had filled in the following 3 preferences: Algorithms, Computer Systems, and Theory of Computing. Due to my not-so-high CPI at the time, I was allotted only one minor: Theory of Computing. I had already done ESO207A. And because of my interest in cybersecurity, I wanted to do CS641A (Modern Cryptology), which was an optional course in this minor. So I did that in my 6th sem.

In my 7th sem, I was looking for interesting courses to do. And there were tons of interesting courses being offered - on IoT, Game Theory, Hardware Security, Cyber-Physical Systems, Cybersecurity of Critical Infrastructures, etc. But they either clashed with my other courses, or I didn’t meet the prereqs. So I looked up the syllabus of CS340A (Theory of Computation), which was a compulsory course for this minor, and it didn’t seem too bad to me. Not wanting to “waste credits”, I took it up, thinking that I’d drop it if I found it boring, as my CSE friends had warned me that it was a boring course. Surprisingly, I found it rather interesting. I’d actually count it among the top 10 most interesting courses I’ve done at IITK. And thus, my minor in Theory of Computation was done too.

Minor 3: Linguistic Theory

This one was a surprise for me. During our orientation, we had to fill in our HSS preferences. ENG124A (Language & Society) was my second last preference. I thought that I was unlucky to have been allotted this course, since I didn’t want to learn any more ENG(lish). I was not at all excited about it, but it turned out to be absolute fun. I found it so interesting that now if you’d ask me to tell you a random fact, I’d probably tell you something I learnt in this course. (This is just one example of how sometimes you think things are going wrong for you, but they actually turn out to be good - this happens more often than you may think). I think it also had to do with the fact that Prof. Achla Raina is a great teacher. Anyway, I was also learning Spanish at that time, so I found it quite relatable too.

Later, I found out that there is an even better HSS Level 2 course that would be more relevant to me - ENG408A (Second Language Acquisition). Since I was trying to improve my Spanish, I thought maybe this would teach me a few things that would make my task easy. So I filled that as my first preference in the HSS lottery. But I got something else. I dropped the course that I got and wrote the mail to the ENG408A prof requesting the course. He readily accepted my course request.

Finally, for my last HSS Level 2, I put my first preference as ENG423A (Current Issues in Linguistics) because: 1. I had already started loving linguistics by now; 2. Prof. Achla Raina was going to teach it (did I mention I got an A* in ENG124A?); and 3. A minor in “humanities and social sciences” would sound cool coming from someone who studied at an IIT (?). By the grace of Pingala, I was allotted my first preference. Interestingly got an A* in this course too. This completed my minor in linguistic theory.

Minor 4: Machine Learning & Applications

I never really liked machine learning until my final year. I had tried learning ML but never got around to it (proof: some blog posts I wrote a couple of years ago). I was prejudiced against it because I disliked the fact that it involved a lot of math that was way too difficult for me. However, during my Amazon internship after my 3rd year, I had to do a course on Machine Learning on Amazon’s internal learning portal. I think it was mistakenly assigned to me by my manager, but I completed it nevertheless. And now I had a certificate that claimed that I have a working knowledge of machine learning? Funny.

Then after my internship, I thought: I already know some stuff about coding ML models; what if I go ahead and try to actually learn the theory? So I requested CS771A (Introduction to Machine Learning) in the add-drop period. Since this course is always in very high demand, I didn’t really think I’d get it. I was mostly indifferent to whether or not the request would be accepted (except for not wanting to “waste credits”), as I wasn’t much of an ML fan. But I think the professor accepted all Y18 course requests, so I got to do this too. It wasn’t much fun, honestly.

Also, I had told Prof. Arnab Bhattacharya that I would do a course with him (I had worked with him in my first semester on Pingala security). I really just wanted to do CS315A (Principles of Database Systems), as he used to offer it. But I wasn’t able to do it then, for some reason. So in my 7th sem, he offered CS685A (Data Mining), and a very close friend of mine wanted to do it for her minor in ML. So I decided to do this course too, to work with her on the same group project for once. The icing on the cake was that we (our course project group) were the only 3 students who got an A* in the course.

And thus, even though I didn’t plan it, I got this minor in Machine Learning & Applications. I find it quite strange because even my overconfident self is not at all confident in ML, despite having this minor. Yup, it’s a joke.

Minor 5: Computer Systems

This has to be the most interesting CS minor. It has all the juicy CS courses like computer organization, architecture, databases, networks, compilers, software engineering, etc. You know - the stuff that a computer engineer actually works on.

It was my final semester, and there were very few courses that I needed to do for graduation, so I had much more leeway regarding the extra courses I could do. And perhaps for the first time, neither CS315A (Principles of Database Systems) nor CS425A (Computer Networks) clashed with anything in my template. So I requested for both of them on Pingala, and both the professors accepted my course request without any hassle.

The situation was quite contrasting in the two courses. I scored 99% in CS425A and missed out on the A* by one mark. On the other hand, I got the second C grade of my IITK life in CS315A, owing to a strange turn of events in the endsem. And with this, I had my fifth minor.

Minor 6: One that almost happened

I also had an approved minor in Industrial and Management Engineering (I had filled that in just for fun because my friends were doing it, and somehow I even got that). I had enough free slots that I surely could have done the required courses. In fact, I even registered for one: IME636A (Introduction to Game Theory). The course, particularly the teaching, was not like I had expected. It was utterly dull, and I wasn’t very enthusiastic about completing the IME minor, so I dropped the course. (Yes, the only time I ever “wasted credits”).

Conclusion

So you see - I wasn’t really trying to “collect” as many minors as possible. I was just trying to do the courses that I was interested in. I did many more “extra” courses purely out of interest, that counted neither towards my graduation requirements nor towards any minor: CS628A (Computer Systems Security), CS658A (Malware Analysis & Intrusion Detection), CS350A (Principles of Programming Languages), etc.

IITK’s academic flexibility is not a myth. In every semester after the first year, I did close to 65 credits, and I would have done more had I been allowed to. At IITK, you can truly learn things you are interested in; you just have to put in efforts.

I admit that I got lucky a few times. Sometimes the Pingala/OARS algorithm allotted me the right courses, while sometimes I got the right professors offering courses in the right semesters. And, of course, I am grateful to the aerospace department template for being so facilitative.

But more than that, I think it was just my desire to learn as much as possible.

comments powered by Disqus