# IIT Guwahati Mtech-PhD(Dual Degree) Interview Experience

IIT Guwahati conducted their Mtech-PhD (Dual Degree) interview through online mode amidst the pandemic situation.

**Note: **

This dual degree program is different from the Ph.D. program because candidates from various departments(other than CS/IT) are encouraged to apply for the dual degree program. For more information, you can visit the official website.

**SHORTLISTING :**

18 people were shortlisted based on Gate Score, B.E/B.Tech final CGPA.

**INTERVIEW :**

This round was conducted via Skype. Before the interview, they shared a google form where we had to share our Skype id, phone number, and most importantly, three preferred subjects.

The panel consists of 5-6 (let’s say P1, P2, P3…) professors. At first, they do some basic verification and then they jump straight into questions.

My preferred domain was theoretical computer science and then two professors( P1, P2) bombarded questions on DS, Algorithms, and TOC.

**Question –**Prove that every finite language is a regular language?**Answer –**As a finite language has a finite number of strings and the length of strings is also finite, we can construct a machine with a finite number of states (a finite machine).

More formally, suppose we have n strings of finite length. An initial state and a final state. So, for each and every string, we can construct a path so that the string is accepted by the machine. As the language is finite, the number of paths we have to construct is finite( at most O(n)).

**Question –**Difference between ∈, { } and {∈} ?**Answer –**∈ means a string with length 0 (a null string), { } means the language doesn’t contain any word/string,{ ∈ } means the language contains a single string with length zero.**Question –**What do you mean by Recursive Language and Recursively Enumerable Language?**Answer –**Recursive Language means the languages are accepted by turing machine and upon rejection, it halts in a non-final state. But, Recursively Enumerable Languages are those that are accepted by turing machine but upon rejection, it doesn’t halt(Enters into infinite loop i.e it’s an undecidable problem).

Give examples of the following languages-

**Question –**Regular**Answer –**L= { a^{n}| n>0 } as we can create this language in finite states.**Question –**Non-Regular but Context Free**Answer –**L= { a^{n}b^{n }| n>0 } as we need to count the number of a’s to accept\reject a certain string and to count we need to have a stack (memory)**Question –**Non-CFL but Recursive**Answer –**L= {a^{n}b^{n}c^{n}| n>0} one stack is not sufficient to accept the strings**Question –**Non-Recursive but Recursively Enumerable**Answer –**a c program that doesn’t go into an infinite loop**Question –**Non-REL and then justify the answers**Answer –**diagonalization language ( L_{d})

Professor P1 asked to prove the above statements logically. I guess he wants to judge my intuition about the subject.

Then Professor P2 started asking questions about data structures and algorithms.

**Question –**Define big-O notation mathematically**Answer –**f(n) =O( g(n) ) means there exists a positive constant c for which 0 <=f(n) <= c* g(n) for all n>=n_{0}**Question –**Prove n+log n=O(n)**Answer –**considering the definition of big-O notation if we can find a positive constant for which 0<= n+log n<= c*n- Can we say for every function f(n) we can write O(f(n))=O(f(n/2))
**Answer –**I tried to answer the question using f(n) = n^{2}. But the interviewer was not satisfied with my answer. - Implement stack using queues.

The interview lasted for about 30mins.

My friend was asked some coding questions too. I am sharing those also.

**TIP : **

- They always ask questions about data structures and algorithms, whether you mention them or not.
- Always prepare your basics well.
- They don’t want you to know fancy concepts, they judge you based on your basics.
- When thinking about a question, always think loudly. You are allowed to use pen and paper and you can show your work at the time of the interview.

For coding questions, they wanted optimal solutions. Practice some common coding problems from geeksforgeeks on topics of the array, searching, sorting, etc.

** EDIT:** They selected 4 students and I was one of them.