doing a ph.d with me
what to expect, how to prepare
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:
- Programming skills - C, C++, Makefiles, Scripting, Linux
- 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.