The first step is to decide if you're applying to a master's program or a PhD program. Generally, admission to PhD programs is substantially more selective and the application materials may differ somewhat as well.


Here are the steps and suggested schedule for applying to graduate school and fellowships.

  •  By September of the year that you plan to apply (and earlier if possible)...
    • Meet with your advisor or other professors to decide on a set of schools where you will apply. It's a good idea to have a spectrum of schools ranging from ones that are pretty safe to "a stretch". Find their application deadlines so that you don't accidentally miss them. (Most are between December 1 and January 1, but some fellowships have deadlines in late October or early November.)
    • If you're applying for a PhD program, talk to your advisor about applying for a graduate fellowship such as the National Science Foundation (NSF) Graduate Research Fellowship, NDSEG Fellowship, or Hertz Fellowship. Fellowships provide a generous level of financial support and are prestigious as well! (More on fellowships below.)
    • Identify at least three potential letter-writers. Most graduate schools want three letters of recommendation, but some fellowships request four letters. The very best references are those with whom you have done research. Next best are professors that know you reasonably well based on multiple courses and/or course projects where they saw your creativity first-hand. Approach your prospective letter-writers and ask them if they would feel comfortable writing letters of recommendation for you. (More on letters of recommendation below.)
    • Register for the GRE general exam. (More on the GRE below.)
    • Start working on your statement of purpose essay. This essay is where you describe your research interests, relevant background, and why you're applying to that particular school. This is one of the most important parts of your application to a PhD program. (More on the statement of purpose essay below.)
  • By mid-October, have a "package" ready for the people who will be writing your letters of recommendation. This package should typically include the schools to which you are applying, a copy of your transcripts, and a polished draft of your statement of purpose essay.
  • November through January: Complete the application forms.
  • February through April: You should hear back from graduate schools in the early spring.


The statement of purpose essay

This is a one to two page essay where you are asked to describe your background, your interests, what you hope to get from graduate school, and why you are applying to this particular graduate school. This essay will be read by professors at the school to which you are applying and it's a good idea to take the time to write a thoughtful and cogent essay. And, it's great idea to have one or more people read your essay and give you feedback and suggestions—both on the writing itself and the content.

The goal of the statement of purpose will differ slightly between an MS and a PhD application. For a PhD, the goal of the statement is threefold: to demonstrate that you understand research, to provide the reader with a picture of your prior research experience, and to give the admissions committee a sense of your research interests. For the MS, the goal is to make clear what your goals are for obtaining a Master's degree and what experience you have that makes you qualified to take on such an endeavor.

Here are some tips for writing a good statement of purpose essay, particularly for a PhD program:

  • Describe your prior research experiences, your contributions to those projects, and any results (e.g., papers, posters, talks, software deliverables)
  • Describe your future research interests – the more specific the better
  • Demonstrate that you have some ideas for interesting and important problems to study
  • Personalize each statement with at least one paragraph about why this particular department is of interest to you
  • Have at least one person (ideally a professor) read your drafts and give you feedback

Choosing prospective letter-writers

Most graduate schools will want three letters of recommendation from professors who know you well, research mentors, or job supervisors. If you're applying to PhD programs, the most useful letters are those that can attest to your creativity and potential to engage in research.

  • If you've done research with someone, that person is an ideal person to write you a letter. If you've done a project in a course, the professor for that course may also be a good person to write you a letter.
  • If there are other professors who know you well enough to write something more than "this student did well in my course," that person can also write a letter for you. If the professor only knows you well enough to say "this student did well in my course," that is not as valuable (since your transcripts will reflect that, too).
  • Finally, if you had a job and a supervisor who got to know you and your work and can attest to your creativity and problem-solving abilities, that person can also write a letter for you. It's ideal if that person has PhD themselves, since they will have a good sense of what's expected for PhD and will therefore have the most credibility with the admissions committee.

Letters of recommendation are particularly important for PhD programs. We recommend that you talk to your advisor or mentor about your options for letter writers. After you have selected your prospective letter-writers, ask them if they would feel comfortable writing for you. If they say "no", don't be offended. They may just not know you well enough to write you a helpful letter. If they say "yes," ask them what kinds of materials they would like before writing your letters. They might want a draft of your statement of purpose essay, a copy of your transcripts, etc.

Assistantships and fellowships

When you apply for admission to graduate school - and particularly for PhD programs - you will be considered for a graduate assistantship as well. Most departments will offer you some form of assistantship when they admit you. Generally, these assistantships will provide you with a monthly stipend that is sufficient to cover your living expenses and will include a waiver of tuition and fees.

Assistantships typically come in two flavors: A teaching assistantship (TA) will require that you help a professor with a course by doing some combination of holding recitation sections, developing assignments, and grading. The expectation is that this will take somewhere on the order of 10 hours per week (sometimes more). A research assistantship (RA) usually provides about the same amount of financial support but your duties are working on research with your research adviser. Often, the RA funds come directly from your adviser's grants, so the RA offer may be to work with a specific adviser on a specific project. While a RA is good for making progress on your research and your degree, a TA provides useful teaching experience. Some departments require that you serve as a TA for at least part of your time.

Some departments also offer their own fellowships which have "no strings attached" - meaning that the funding is yours and you can choose to work with any adviser that you like. A fellowship is generally the most desirable form of support because it gives you the most flexibility. However, most departments have few fellowships that they can give out themselves.

There exist a number of fellowships for which you can apply directly before entering graduate school. These are prestigious, pay relatively well, and provide you with a great deal of flexibility. They are also quite competitive, so talk to your adviser to decide whether it's a good investment of your time to apply. Some of the most popular fellowships are:

GRE scores

There is no longer a GRE subject test in computer science. The only GRE test that you might need to take is the general test of basic math, reasoning, and language skills. 

Many graduate schools no longer require GRE scores at all. At other schools, they are recommended and at some they are still required. Perhaps the best thing that we can say is that very high or low scores can have some impact (positive or negative) in the decision process. And, if your school is not so well-known to a graduate school to which you're applying, the GRE's may be looked at more closely.

The Educational Testing Service has a web page with detailed information on the GRE ( The general test can be taken online at a testing site more-or-less when you want to take it. Many students choose to take the general test in the summer between the junior and senior year or in the early fall of the senior year and take the subject test in October or November.

If you plan to take the GRE, we strongly recommend taking practice tests. You can find information on practice exams and study guides at the ETS website (

Grades and transcripts

Graduate schools will ask for your transcripts. There is not much for you to do other than make the appropriate arrangements with your registrar. How important are grades? Generally pretty important. Most graduate schools will want to see that you have the abilities and discipline to do well in all of your courses and will be particularly interested in how you did in your CS courses. If you have some lower grades, it is generally not a show-stopper. On the other hand, the most competitive PhD programs can afford to be very selective and take students with uniformly high grades.

In a recent survey of fourteen PhD programs ranked roughly 5-50 in the U.S. News rankings, we found that the average GPA of accepted students was about 3.75. Keep in mind though the GPAs vary from school to school and most graduate admissions committees are aware of this and adjust accordingly. Moreover, the GPA is just one of many inputs to the graduate admissions decision function, so don't let a somewhat lower GPA discourage you.


Choosing a graduate school

Once you've been accepted, you may be the in the enviable position of having to decide which graduate school to attend. PhD programs will frequently invite their admitted students to “admitted students days” and some will pay some or all of the travel expenses. We recommend visiting the graduate schools that you’re considering. If you can’t visit in person, it’s wise to at least chat with some professors with whom you’re interested in working and with some current graduate students in your desired area.

Here are some of the things to look for and consider in making your decision:

  • Does the department have a strong research community in your area of interest? Ideally, there will be several professors and a good sized group of graduate students working in your general area of interest. This will afford you options on the kinds of problems you can work on and will provide an intellectual community of people to work and talk with.
  • How is the morale of the graduate students? Do they get ample mentoring from their advisors and does the department generally take good care of them?
  • Are most students finishing their degrees in a reasonable amount of time (e.g., around 5-6 years for a PhD)? Unlike college, the timeframe for a PhD varies by department, research area, advisor, and to a large extent the engagement and motivation of the graduate student her/himself. But, if a department or your intended research group has a track record of keeping graduate students for a very long time, that should be taken under consideration.
  • What kinds of support are you likely to get? Most PhD students are supported by either a teaching assistantship, research assistantship, or fellowship. Many schools require that their PhD students spend some time on a teaching assistantship in order to get valuable teaching experience, doing this for the duration of your graduate studies will take time away from research. So, it’s good to get a sense of what type of funding you’re likely to have over the course of your graduate studies.