I gave IIITH PGEE – 2019 on 28th April,2019.
Written Exam consisted of two sections – 1. General Aptitude 2. Subject Paper (Computer Science in my case). (More information is here :https://www.iiit.ac.in/admissions/postgraduate/monsoon/syllabus)
General Aptitude section was of moderate difficulty. I was able to do most of the questions and left only 4-5 of them. Subject paper was easy to moderate. About 95% of the questions were from previous year GATE papers. While preparing for GATE, I have solved almost all previous year questions from GO PDF, so the paper seemed easy to me. I was sure that I will be shortlisted for the interview. So I started preparing for the interview right away.
I was right. I received interview call letter on 10th May, 2019. My interview date was 10th June, 2019. I had exactly a month in my hand to make sure that I don’t screw up my interview. (I will share my preparation strategy in detail later)
10th June, 2019 – The Judgment Day
I reached the IIIT Hyderabad Campus at 8:00 AM. All the candidates were standing outside a hall, staring at a list on which our names and interview panel allotted to us were mentioned. I was allotted Panel-1. I entered the hall. After a while, a professor, who was in-charge of admission process, came in. He entered and started walking across the hall barefooted (I guess he was completing his morning walk). He then told us about the selection process, research facilities and placement opportunities. He addressed all our questions regarding interview process, difference between MS and M.Tech, stipend, fellowship etc; however, he didn’t disclose details like selection criteria, cut off, result date etc. After that, we were taken for registration, and then I waited for 3 hours for my turn.
During 1st hour, my friend asked me some C programming questions on WhatsApp and I was chatting with him, discussing those questions. After that I sit back for 2 hours relaxing my mind. I saw a lot of people revising their notes, while some of them were relaxing just like me. At first, I thought of revising some important concepts and pseudo code of graph algorithms, but then I feel what I will revise right now is not going to be asked in the interview. (Spoiler Alert – I was right)
(Side Note: My friend, whom I mentioned above, got into MS programme in IIT Kanpur. You can see his interview experience here : https://gateoverflow.in/blog/8079/iit-kanpur-ms-interview-experience)
The wait was over and I, along with 2 other candidates, were taken to the interview hall. One guy went before me, and then it was my turn. I took a deep breathe and entered in. My interview went for about half an hour.
It was a panel of four professors, out of them one was a lady professor. (I’m gonna refer to them as P1, P2, P3 and P4)
On the table there were a bunch of flowers and a bowl of eclairs (May be kept there to break our nervousness)
I greeted them with a smile (probably a fake one as I was not feeling to smile at all).
P1: What’s your name?
Me: Astitva Srivastava
P1: That’s a nice name.
Me: Thank you Sir.
P2: Have a seat. Sign the attendance sheet, and give me your certificates.
Me: *Rushing through my documents in a hurry*
P2: Give me the whole folder.
Me: *I gave the folder, thinking now they are going to analyze me completely*
P2: What’s your first preference, M.Tech or MS?
Me: Sir, MS (Smiling inside that now he’s going to ask “Why MS?” and I prepared a really good answer for that)
P2: *To my surprise he smiled and didn’t ask “Why?”* Instead he asked, “What’s your favorite subject?”
Me: Sir, Algorithms.
P2: *Gave a gesture to P1 that you slaughter him first*
P1: *Asked me to come on white board* You are given a matrix M of integers, and a number K. Write an algorithm to find any sub-matrix of M whose elements sum up to K.
Me: *I came up with an approach but it was not efficient. I was looking for a solution involving Dynamic Programming.*
P3: OK, we need to know what you’re thinking?
Me: Sir, I am trying to come up with a dynamic programing solution. Right now I only have a brute force approach.
P1: No problem, tell me the brute force approach.
Me: Sir, for each element in matrix M, I will consider a sub-matrix starting from that element and then I will loop further to make that matrix grow cell-by-cell and keep adding the elements and stop when I get sum equals to k.
P1: OK, so how will you improve it further?
Me: Sir, there will be instances when part of sub-matrices will overlap. We can memoize the sum of that part and use it later to reduce the complexity of adding up the same elements again and again.
P1: Write pseudo code for that.
Me: *After struggling for a while* Sir I am not able to think of a way to perform memoization.
(I think I did right to give up so that they can ask me other questions instead of wasting the time)
P2: You didn’t studied DP?
Me: Sir I did, but there all a lot of problems. I have studied only some classical problems. Right now my mind is not going in a direction that can give me a good approach.
(I tried to be as honest with them as needed)
P1: *Smiling* OK leave DP. Devise a new algorithm to sort numbers using stack. You can take as many stacks as you want. Numbers are arriving in a stream, not stored in an array.
Me: *After thinking for a minute* Sir, I will use two stacks, say S1 and S2. Then I wrote a pseudo code somewhat like this:
(1) Take a number from the input stream, lets call it x.
(2) if (Top(S1) >= x OR S1 is empty) : Push(S1,x)
(3) else: y = Pop(S1)
(4) while (S2 is not empty):
z = Pop(S2)
(5) Repeat from (1) to (4) until all numbers are processed.
(6) Pop out all the elements from S1 to the output stream.
(Then I explained them the whole approach by taking an example)
P1: OK, what is the worst case complexity of this algorithm?
Me: Sir, O(n²)
P3: *trying to distract me* No no, you’re wrong it can’t be O(n²).
Me: *Explained the worst case. He seemed satisfied*
P3: The complexity you are telling about, on what factor it is based?
Me: Sir, it is based on the number of comparisons.
P3: Why we don’t consider clock cycle time, or complexity for operations like adding, multiplying etc.?
Me: Sir, we analyze the algorithms on the basis of RAM model of computation, and all of our assumptions are based on this model.
(In case you don’t know about this, take a look : https://www8.cs.umu.se/kurser/TDBA77/VT06/algorithms/BOOK/BOOK/NODE12.HTM)
P3: OK, so you’re saying that if we improve our hardware, algorithms will not improve in any way.
Me: Sir, speed of the algorithm or program will increase but complexity will remain same.
P3: Right. Well, apart from number of comparisons on what other factors the complexity of the algorithm you have written will be based on.
Me: I think only on number of comparisons.
P3: Are you sure? What about number of push and pops. Wouldn’t push and pop contribute towards complexity?
Me: *Acting over smart* Sir each push and pop will take constant time.
P3: No no, I’m talking about NUMBER OF PUSH AND POP OPERATIONS. Just tell me yes or no, will complexity depend on it or not?
Me: *Realizing my stupidity* Yes sir, it will depend on number of push and pop operations too.
P2: OK, we’re done here……
Me: *Thinking, Whaaat?? Is that it?? Ask me more*
P2: *to P1* …...Sir, do you want to ask anything else or should we stop?
P1: Hmmmm...ok. I will ask some maths. What is a bijective function?
Me: Sir, the function which is both injective and surjective.
P1: You are given two sets A and B. There are ‘n’ elements in both sets. What is the number of bijective functions possible from A to B?
Me: *After thinking for a while* Sir, n! (n-factorial)
(I’m still wondering at this moment while writing this post that why he said “No”)
(Before I could explain why I am getting n!, he bombarded another question)
P1: So, Astitva have you studied linear algebra?
Me: Yes Sir. (I was happy because I prepared linear algebra well)
P1: OK so tell me, what do you mean by the rank of a matrix?
Me: Sir matrices are a way to represent linear transformation, so if we take a column vector and perform linear transformation on it using a matrix M, and if the output vector lies in a K dimensional space, then we say that rank of matrix M is K.
P1: *Gave me a blank look*
Me: *I continued* If we have a matrix, then the number of linearly independent rows or columns in it is called it’s rank. We can find the rank by looking at number of non-zero rows in Row-reduced Echelon form of the matrix.
P1: *Gave me a matrix and asked its rank*
| 1 1 |
| 2 2 |
Me: Sir, the rank will be 1.
P1: How can you say this without reducing the matrix in Echelon form?
Me: Sir the two vectors in the matrix are linearly dependent. So one vector can be written as linear combination of another vector and then can be reduced to zero vector.
P1: What do you mean by linearly independent vectors?
Me: If we are given a set of vectors say v1, v2, v3 ………….…….. vN and :
c1.v1 + c2.v2 + c3.v3 + …………………. + cN.vN = 0, if and only if the constant ci = 0 for all i, 1<=i<=N
(I wrote the above equation on board)
……...then the given set of vectors will be linearly dependent
P1: Linearly dependent ???
Me: Sorry Sir, linearly independent.
P1: OK. That’s it from my side.
Me: *addressing the panel* Anything else you want to ask? Operating systems, Theory of Computation etc…
P4: You’re a singer? I saw your certificate.
Me: Yes Ma’am.
P4: Can computers sing?
Me: Yes Ma’am, there are some artificial intelligent systems that can sing and compose new music.
(I remembered the one I saw on YouTube)
P4: Can they sing better than humans?
Me: Not now, but I believe in near future they might.
P2: Where did you learn singing from?
Me: Sir, I’m from a musical background. My father is a classical singer and he has performed at various places. He’s been teaching me music since childhood.
P2: Okay then sing a song.
(I was like, what is happening??? Is it a technical interview or what???)
Me: Sir which song?
P2: Whatever you like.
( I asked for water as I was feeling thirsty)
( Then I sang “Afreen Afreen” song, they liked it)
P2: Have you listened to the original version?
Me: Yes Sir, by Nusrat Fateh Ali Khan.
P2: Good. OK we’re done here, you can go now. You can take eclairs if you want.
(I took two eclairs)
P2: Carefully, it’s not good for your throat.
(We both smiled at each other)
Then i took my documents from the table and came out.
As i was putting my folder inside the bag and leaving, the professor P2 came running behind me. I accidentally took attendance sheet along with my documents.
I apologized for my mistake, to which he said “You got the attendance sheet carried away with your singing, including us.” I felt amazing.
The professors were extremely down-to-earth and supporting. They were constantly smiling so that we don’t undergo a nervous break down. It was the best interview experience till now in my life. I had a feeling that I will be selected.
I came out and instantly messaged my friend asking about question regarding bijective function. He also said n! to which I felt relaxed.
But when I came back home, I started thinking about moments during my interview where I made mistakes and my mind started to emphasize on those mistakes. Then I thought that professors were good not only with me, but with others too. I started believing that my interview was not extremely outstanding and also intakes from MS are low, so I started making up my mind for the worst case scenario.
18th June, 2019
My friend, Anuj, called me saying that someone has posted on the group that results for the interview are declared.
I checked the portal, and after a while, i got the offer letter.
I was in.
I am grateful to everyone who helped me in achieving this – my parents, my friend Anuj, all the seniors, who supported me, gave me suggestions and clear my doubts. I know I have done hard work, but I also needed the kind of support which I got from these people.
I’m going to accomplish my dream of studying in one of the finest institutes of India.