- General
- Research
- Education
- Admissions
Graduate School Advice
If you're thinking about graduate school, feel free to come talk to me sometime during my office hours (or, chat with another CS prof who you know well). In the meantime, here are some general thoughts on grad school in computer science.
David Kotz, 9/93, updated 9/95
Modified by Tom Cormen, 10/98
- Why (or why not) grad school?
- How long does it take?
- What will I do after getting a MS or PhD?
- Should I work for a while between Dartmouth and grad school?
- How do I pick a list of programs to apply to?
- How do I pay for grad school?
- What's important to someone evaluating your application
- Hints about applying to grad school
Why (or why not) grad school?
- Reflect. Do some soul-searching. Why do you want to go to
grad school? Think about your education so far. What are your
passions? What are your goals in life? What excites you? What
lifestyles might you want?
- Avoid listening to what others tell you to do; think about
what you want.
- An MS is basically a technical degree that gives you more
interesting job opportunities. A PhD is basically a research degree,
which opens up a host of advanced and research-oriented
opportunities.
- Think less about how much money you can make but about
quality of life. With a PhD in particular, you will often find there
is more autonomy, freedom, vacations, travel, influence, creativity,
authority, etc. In industry, MS and PhDs are often a ticket to
eventual upper-level management.
- Think more broadly than the major or course offerings at
Dartmouth. There are other things - computer science, computer
engineering, electrical engineering, computer information science, and
even some very unsual special things at some places.
- Talk to professors. Discuss your ideas and goals, and
get some advice. Talk to some grad students here and elsewhere. Find
out what it's like. Talk to recent alum friends about what they've
done, why, and how they like it.
- A PhD can be the ticket to jobs in academia, industry, and
government, usually in some research or advanced development capacity,
or in teaching at the college and graduate level. Or both teaching and
research.
- Understand that a PhD is about one thing and one thing only:
research. You'll probably be required to take
classes and pass qualifying exams, but these are relatively unimportant.
If you have a PhD, nobody should care what your graduate school
grades were (and if they do, eye them with suspicion). And nobody
will care how well you passed your qualifying exams. It will simply
be assumed that you passed your courses and quals.
What people will want to know about your PhD work is your research. What's it about? How good is it? How likely is it that you will be able to continue being productive in your area?
- Do you like inquiry, invention, creativity, exploration,
reading, discussion, writing, thinking, teaching, discovering the
unknown, etc? Do you like to work with others, or independently?
(Both are big aspects of research.) Do you like to tackle
unstructured problems, or would you rather work on a task assigned to
you? Do you prefer thinking up new ideas and sketching out the basic
fundamentals, or do you like to deal with finishing the details on a
project?
- You can always move after getting a Master's degree. Or take a
Master's and run--to industry, or to another school
How long does it take?
- 4-6 years is typical for a PhD. It can take longer, however.
I know folks who took 8 or more years for their PhD.
1-2 years is typical for an MS.
What will I do after getting a MS or PhD?
- The PhD is basically a research degree. Note that scientific
research today does not fit the "lonely scientist" or "lonely hacker"
image, either at the graduate or professional level. Scientists--and
computer scientists are scientists--do work with
people. This is
obviously true for teaching, but research is essentially a
collaborative exercise. Meeting people and talking to people is a big
part of my job, in fact.
- An MS is essentially a technical degree, especially useful when
you are graduating from here with a liberal-arts BA. It will open up a
range of much more interesting jobs than you can get with a BA, with
more responsibility, creativity, flexibility, and income, than the
typical programmer-type job. At least, sooner.
- Opportunities include academia, industry (research and/or
development), and government (research labs).
- Postdoctoral appointments are becoming more common. In this
case, after your PhD you go elsewhere for 1-2 years to do more
research under a different advisor, in a different place, on a
different project. Then you would go on to one of the above
situations. This is still somewhat rare in CS, though.
Should I work for a while between Dartmouth and grad school?
This is a very personal issue.Advantages to working:
- It gives you valuable perspective in grad school.
- Sometimes the company will pay for your schooling.
- Gives you time to consider whether you want grad school at all.
- You can save up some money.
- You get used to the big fat paycheck, and it's hard to take a 75% pay cut.
- You get out of practice of "going to school".
- If you didn't take GRE as a senior, you forget a lot.
- If you did take GRE as a senior, the scores "expire" after a few years.
- Sometimes you lose "currency" if your job doesn't allow
you to learn as you work.
How do I pick a list of programs to apply to?
- Choose the best programs that you can get into.
- Add 1-2 "safe" schools, that you are pretty sure you'll
get into, but you wouldn't hate to be at. Remember that it is
possible you'll get into some of your preferred choices,
but maybe not with financial support. So, choose good
schools, but ones that are perhaps less competitive.
- Pay no attention to the academic reputation of the
university. It is essentially irrelevant. What matters is the
reputation of the department (program) where you
will be applying.
- Do your homework. Get the informational brochures about
the department. Find out what faculty are there, and what their
research areas are. Look for the ones that are relevant to
the kinds of research you are interested in.
You need to find a fit between your and their interests.
Preferably choose places where there are several
possible faculty to work with (what if one of them leaves
the department after you get there?).
- Read their papers. Are you interested in their research?
- Find Dartmouth alums who are now students there; talk to them or find Dartmouth profs who were grad students there and talk to them.
- Student/faculty ratio.
- Success rate.
- Size of program.
- What will you learn there?
- What is required of you there?
- Who is doing interesting work there?
- Departmental dynamics...is there collaboration? Departments like this tend to be more congenial.
- Placement of recent PhDs.
- Searchable
index of all CS graduate programs
- Look through journals in your area of interest;
find out who is doing work in that area and where they are from.
- Talk to Dartmouth professors who
are in the same general field as the one you are interested
in. Discuss the schools you are considering. Ask them for
suggestions. Ask them about particular professors and
programs. They
have connections, too, which might get you more information.
- Visit the campus. Tour the facilities. Talk to grad
students. Try to get a feel for the atmosphere, the morale. This is
more important than you realize. Consider things like office space
(do they have a workstation on every grad student's desk?), library
support, computing facilities, special research labs or computers,
etc. These are important when you try to do research. Try to talk to
the relevant professors. Consider the locale, and the cost of
living.
- Big, famous schools are not necessarily better. In a big
place you may not really be able to even talk to the profs for a few
years. Consider being a big fish in a small pond. On the other hand,
small places can sometimes be somewhat limiting in terms of resources
and variety.
How do I pay for grad school?
- Many terminal-Master's programs (those where you are not
planning to get a PhD, just a Master's) require you to pay tuition and
fees. Note that many big companies will pay all this for their
employees, sometimes on a part-time basis and sometimes as a year off
for school, while still paying you that same huge salary! It's an
option. (Same for PhD, too, though a part-time PhD takes forever!)
On the other hand, in PhD computer science programs, they should pay you to go to grad school. Thus, when you are accepted, they will usually offer you some form of financial package. This usually means that they will pay all your tuition, sometimes the additional fees, and a monthly stipend. The stipend may cover 9 or 12 months of the year, and is usually $8K-$15K per year. You almost never have to apply for financial aid at grad school; they just consider all applicants. Check on each school's policies. These packages come in three basic forms:
- Teaching assistantship (TA): You have to help run labs,
tutor, grade, or even teach. First-year students rarely actually
teach.
- Research assistantship (RA): You help a particular
professor with their research. This is uncommon in the first year;
later, you might get this to do your OWN research in conjunction with
your advisor's grant.
- Fellowship: This is the best. Usually this gives you all
the money but with no teaching or research opportunities. Some schools
do this for many of their first-year students, with the expectation
that you will become a TA or RA in later years. A really good deal
gives this to you for 3 or 4 or 5 years.
Definitely plan to apply for third-party fellowships. Many require you to be a US Citizen, but not all. If you can get one of these, they often pay more, usually don't require any teaching or other duties, and you can call up the schools and tell them you have your own funds...which they are definitely psyched about. It also looks great on your resume in the future.
One thing to know is that your guaranteed student loans (GSLs) are deferred (interest-free) so you don't have to pay them while you're a full-time student. So when you graduate from grad school, and have a big fat paycheck, and inflation has reduced your loans to a fraction of their former value, then you pay them off.
What's important to someone evaluating your application
- Most important are the letters of recommendation! The
best letters are those that will be enthusiastic, be obvious that the
person knows you well, and are from someone the reader can trust
(e.g., someone with a reputation in academics, or the department
chair, etc.). Choose people who know you well, and who can write a
detailed letter. Also try to choose a senior prof who has some
reputation in the field, or who can otherwise establish their
reputation to the letter reader.
For most letters, you have a choice of whether to waive your right to see the letter. You should always waive this right. Yes, it may bother you greatly to waive any right, but think about it this way. If you do not waive this right, then your letter writers will not be able to write about you in confidence. Your letter readers will know this, and the letters about you will be discounted. In essence, the one subjective source of information on you has become worthless. So make sure you waive your right to see your letters.
- If you can, include something that makes you special, like
a paper you wrote or the description of a programming project or the
like. These "appendices" are perfectly fine and will often really make
a big difference. Do not send a printout of code. But you
might consider sending a disk with a cool program you wrote, if you
really have something to show for it. (Or put it on the web and send
them your URL!) Most people won't bother to try it, but if you make
it easy for them to try it (label the disk clearly on what
configuration they need and how to run it), you might try it!
- Test scores and grades are somewhat important; bad scores
and grades are enough to keep you out, but great scores and grades are
not enough to get you in.
- The essay is moderately important; in particular, it had
better not be bad. The best essays somehow set you
apart. Write your
essay carefully, and rewrite it again and again. Tell
them what
research areas you are interested in, and
why. Make it clear
that you have a passion for research and would gladly
charge
through a machine-gun nest for the privilege of doing
research. Tune the essay for each place you apply; tell
them why you
want to go there. Get the essay read over by
someone else;
make sure it is written really well. Sell
yourself! Tell
them what makes you unique. If you have written a
research paper, or a
major computer project, send them the paper (or
documentation, if
reasonable), perhaps after cleaning it up by making it
even better.
Hints about applying to grad school
- Start early: senior fall, or even junior summer.
- Write to lots of departments and request informational
brochures and application materials.
- Take the GREs in October, or at least in December, and
have the scores forwarded directly to the schools where you are
applying.
- Request transcripts and have them directly forwarded.
- Send in your application well before the deadline.
- Follow up on everything. Be paranoid about the mail. For
example, send your application materials return-receipt-requested, and
include a self-addressed, prestamped postcard that says "XXX
university has received my materials", so that you know when they have
arrived. Call them if you do not receive this. Especially:
followup on faculty letters of recommendation (be tactful of
course).
- Ask for your letters of recommendation early,
October if you can. Go ahead and ask even before you have all the
forms they will need, or even before you know the complete list of
places you will apply. They can start writing the letter and then mail
it when you give them the materials. Ask for the letters in person if
possible - talk with the prof for a little while. (Make sure they
remember who you are! Obviously, you want someone who really knows you
well.)
[ Many of these ideas came from notes taken at the general grad-school info session sponsored by CES on 9/28/93. ]