doing a ph.d with me

Start Initial Discussions
If a student is interested in pursuing a Ph.D program with me, then the first thing he or she should do is contact me. The details are given in my contacts page. Please choose any method of contact. Calling me up on my mobile phone is absolutely fine. If I am not on international roaming, I will respond. After initially contacting me, it would be great to have a face-2-face discussion.
I would like to focus on some key issues: career aspirations, expectations from a Ph.D, and the suggested course of action. I would first like to deeply understand why the candidate wishes to go for the Ph.D program. Is it the best option for him keeping in mind his career aspirations? I will also explain the career options after a Ph.D, and what the student stands to gain from a Ph.D in detail. We will also discuss research interests, and any specific areas that the student wishes to focus on.
As I have mentioned in my earlier posts, the main objective of doing a Ph.D should be to get a better life in terms of material and philosophical aspects. We need to jointly ensure that this is going to be the case, and the candidate is genuinely going to benefit from a Ph.D.

Start the Formal Process
The next step is to look at the departmental and institute requirements, which are given at this page. There is typically an interview process that the student has to go through. The interview committee evaluates his knowledge in a few core areas of computer science. Once the student has completed all of the admission requirements successfully, he can get admitted to the Ph.D program.

Finish the Required Course Work
There are a list of core courses that need to be taken by a Ph.D student in the computer science department. Along with the recommended list, I would highly recommend taking some courses in advanced computer architecture, operating systems, and compilers. The student should also take a basic course in VLSI design. Please note that some of these courses are also there in the compulsory list of courses that need to be taken by all the Ph.D students in the department. This process should typically take about 2 to 3 semesters.

Development of Skills
Along with taking courses, the student can slowly begin to involve himself in research activities. However, before starting any research, I need to ensure that he has the foundation required to perform basic tasks. Otherwise, this will prove to be a major roadblock in the future. The skills can be divided into two types:
  1. Programming skills - C, C++, Makefiles, Scripting, Linux
  2. Language skills
Either through courses, or through focussed training, we need to ensure that the student is fairly proficient in C and C++. The student should be able to code fairly complicated algorithms with relative ease and on his own. Secondly, the student should also be aware of other aspects of complex software like writing makefiles, and build scripts. Along with such skills, the student also needs to learn how to quickly plot graphs in batch mode with gnuplot or pychart, and write research papers in latex. If the student is deficient in one or more of these skills, then he needs to gain proficiency in them. The entire process should not take a long time, and will prove to be very beneficial in the future.
The second skillset is the ability to write research papers. This takes some time to learn. Hence, we need to focus on writing skills from very early on. We can start with small sections, and gradually move to full length research papers. By the time a student graduates, he should be able to write fairly long and complex documents in perfect English. This skill is very valued in both academia and industry, especially in India.

Research Work
Once the student has acquired the right skills to perform research, he is all set to start work on his Ph.D. We will start out by looking at a set of areas that the student is interested in. I might already have some problems in these areas that either myself or others have been working on. If the student wishes, he can work on these problems or choose new problems of his own. The other important factor in choosing an area is to look for the right corporate sponsors. They can help in refining the ideas, and can also offer internships, and future job opportunities.
Once we have aligned all of these elements, it is time to start the more intensive part of the Ph.D. The student needs to gain a thorough understanding of the area by reading all the relevant research papers. Once he has understood them, he is all set to find novel solutions and implement them. The implementation phase would typically take a few months. We would use some open source simulators for this purpose. Once, we have some good results, it is time to summarize them in a research paper, and send it to an international conference or journal for publication. It typically takes about two to three tries to get a paper in. Once the paper is accepted, the student needs to travel to the conference venue to present the paper.

Internships, Mentoring, Collaboration
I would ideally like every student of mine to be paired with a corporate sponsor. This will ensure that the problems that they choose have some real world relevance. Secondly, they will be able to go on internships in the summer. The internship experience will broaden their horizon, as well as prove to be financially beneficial. Sometimes it might be possible to arrange for an internship overseas.
I would also highly encourage my students to work on collaborative projects with faculty members in other universities on joint research. This will help them pursue post-doc opportunities in those universities, along with further broadening their view of research.

When is it Time to say "All Done"
See this link.