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?
- 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.
Disadvantages of working:
- 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.
So, if you really know you want grad school, go for
it. Otherwise, you might consider working for 2-3 years, and then
going to grad school.
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.
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
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
- 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
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
- 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
teaching or other duties, and you can call up the schools
them you have your own funds...which they are definitely
about. It also looks great on your resume in the
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
research areas you are interested in, and
why. Make it clear
that you have a passion for research and would gladly
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
make sure it is written really well. Sell
them what makes you unique. If you have written a
research paper, or a
major computer project, send them the paper (or
reasonable), perhaps after cleaning it up by making it
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
- 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
- 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
[ Many of these ideas came from notes taken at the general grad-school
info session sponsored by CES on 9/28/93. ]