Table of Contents

Graduate School in Computer Science

Thinking about going to graduate school in Computer Science for either a master's degree or a PhD, but you want more information? You've come to the right place!

While we have created a comprehensive page that answers many questions about graduate school in computer science, we hope that you will not find all of this information overwhelming! (Remember how you felt about college when you were in high school?)

Please use this document as a general guide, and discuss your specific circumstances with your advisor.

Why Go To Graduate School?

What is graduate school in computer science?

As a graduate student in computer science, you will embark on a focused study of computer science to master its fundamental concepts, such as designing, implementing, and analyzing algorithms, software, and systems, and to expand on the frontier of computer science.

A typical full-time course load in graduate school is 9 hours. You won't spend as much time in class than as an undergraduate, but most–if not all–of your courses will be computer sciences courses, and you will spend more time preparing for each class. In general, you will work on larger, more independent, open-ended projects as opposed to the homework and programming assignments from undergrad.

As part of your studies, you may also perform research. Research is meant to answer a question. Often, you'll pose a problem or question, propose a solution, implement the solution, and evaluate the solution to see how good it is. Unlike in courses, there often is no defined end point. Examples of research questions are “Does new technique X perform better than existing technique Y to accomplish Z?” and “Can we create a system that does X with properties A, B, and C?”

In graduate school, there are two tracks: the master's degree and the Ph.D.

Master's Degree

There are different types of master's programs, which have different requirements. In general, a master's degree requires

Some master's degrees are specialized to specific subfields of computer science, such as software engineering, video game design, internet or Web technologies.

Ph.D. Degree

In some programs, you “pick up” your master's degree along the way to the Ph.D., but that is not always the case; some Ph.D. programs have additional requirements to receive a master's, and some do not have a terminal master's degree option.

There is a lot of variation between programs. This will give you a general idea of what you need to do to get a Ph.D.

A CS graduate student's memoir

Who Should Attend

Graduate school is not for everyone. It requires an additional one to six (or more!) years of school, depending on if you go for your master's degree or a Ph.D.

Master's Degree

You should attend graduate school for your master's degree if you

Ph.D.

You should attend graduate school for your Ph.D. if you

In pursuit of a Ph.D., beyond the coursework and research, you will also learn

Can I Afford It?

Many programs have funding available for Ph.D. students and some may have funding for master's students as well. Funding typically includes tuition and a modest living allowance. The three main types of funding are fellowships (for which no additional work is required), research assistantships (for which you perform research with an advisor), and teaching assitantships (for which you may teach or grade for a section of the class). Programs may also offer other alternatives.

External Funding

You can apply for fellowships from sources other than the school you're applying to. These fellowships will make your application to a program look even better because they don't need to find funding for you. Some programs may also have program-specific external funding opportunities as well.

The University of Delaware's Graduate Student Association has collected a list of some external funding opportunities.

Should I Go Immediately After College?

That's a difficult, personal decision. There are pros and cons to going immediately after college. If you decide to wait, you should still take the subject GREs during your senior year.

Pros and Cons to Going Immediately

Pros:

Cons:

Pros and Cons to Waiting

Pros:

Cons:

Preparing for Graduate School

You can start preparing yourself for graduate school as early as your first year of college.

Course Work

With a B.A. in Computer Science, you should be well-prepared for graduate school. While the ideal preparation depends on the program you choose, you should have a solid background in

At W&L, these topics are covered in our major's core courses: CS111, CS112, CS209, CS210, and CS211.

In addition, many programs would also like you to know

Do not be overwhelmed by this list. The exact list depends on the program and may not include all of these. Of course, you'll be in a better position to succeed in graduate school if you have a firm grasp of all of these topics, but many people apply to–and get accepted to and succeed in–graduate school without knowing all of these when they begin. You may be required to take the program's undergraduate courses before taking the graduate-level courses, or you may jump right into the graduate course.

I do recommend that you take the Theory course at your undergraduate institution because it's a course that many people struggle with. Having some experience with the material will help you if you take the course or need to know the material for the breadth exam.

You should also take any elective that you think you are interested in pursuing as a research topic in graduate school. By taking the elective, you may confirm your interest in the area or realize that the subject is not for you. You'll also have experience to draw on for your personal statement.

Research

To help you get a feel for what computer science research is and to help you write “previous experience” essays, you should collaborate with a faculty member on a research project–during the summer, as an independent study, or as an honors thesis.

You could also participate in a summer REU (Research Experience for Undergraduates) at another institution or in other programs. Our Research Resources page has more information about other opportunities.

Application Process

How to Apply to Graduate School

Applications for most CS grad school programs require

Schools look at the applications and weigh criteria differently. If you feel that you are deficient in any area, make sure that your letters of recommendation address why that deficiency doesn't mean that you will not succeed in graduate school.

Applications are often due in December and January. You have at least until April 15 to make a decision on where to go.

Matt Welsh's advice on how to get into grad school

How To Apply to Graduate School - slides from CRA-W Workshop

Statement of Purpose

The exact requirements for this essay will vary with the school. The most important thing for you to do is to sound convincing. Even if you're not sure what you want to do, tell a convincing story that this is what you're going to do and why you're motivated to pursue that research topic. If you're not comfortable with that approach, you can talk about a set of topics that you're interested in and why you're interested in them. If applicable, stress your undergrad research experience and how it got you interested in these topics and pursuing an advanced degree.

If space permits and you have a specific professor that you'd like to work with, you may want to include that in your essay. This shows that you have invested time in looking at the specific program and the areas that you are interested in.

Letters of Recommendation

Content

A top US University will often ask the recommender to evaluate the applicant in comparison with others the recommender has known during the recommender's professional career based on the following criteria:

Requesting Letters

:!: In summary, make writing a recommendation as easy on the recommender as possible by providing them with all the information they need to write a strong recommendation for you.

Some advice from Michael Ernst on requesting letters of recommendation.

Where Should I Apply?

Where you should apply depends on what degree you want to pursue, what schools offer those degrees, what schools have the specialties you are interested in, as well as many other factors.

Grad Application FAQ

Ph.D. Programs

You should apply to between 5 and 7 programs. Try to apply to a range of schools, e.g., “reach” schools and “safety” schools.

When looking at programs, think about

You should probably choose two or three research areas that you are interested in. Try to be more specific than “systems” (e.g., parallel processing, pervasive computing, architecture, etc.) or “artificial intelligence” (e.g., natural language processing, machine learning, etc.) but not too specific, unless you have a lot of experience in the area.

Although it is good to have a research topic or theme in mind when applying, it pays to be flexible about your work when choosing an advisor. Your potential adviser may have a grant that will pay you to do something related, but not identical, to the topic that interests you most. In general, Ph.D. advisors are looking for students who show an ability to do research, as opposed to a specific brilliant idea or topic. You may be surprised to find how excited you are by an idea that you hadn't considered after you're in a research lab with like-minded students and an adviser who knows how to inspire (and fund) you!

For better or worse, name recognition–either the school or the advisor–means a lot in academics. For example, if you want to be a professor at a top-10 CS research program, you should try to attend a top-5 CS research program or have an advisor who is a well-known leader in the field. (There are always exceptions!) Not every well-known researcher is at a top-10 school, and a Stanford/MIT/Berkeley/CMU degree is not a must-have for a good academic career. As with everything in computer science, there are tradeoffs. You have to know yourself well: will you succeed in a highly competitive program or without much one-on-one mentoring from your advisor?

The above process is the ideal way to choose the programs that you'll apply to. You can still find programs that meet your needs even if you don't know all of this information.

Talk to your advisor about which programs will fit you best.

For another perspective: Choosing a Ph.D. program in Computer Science

Master's Programs

In general, it doesn't matter where you get your master's degree, as long as the program is accredited and its graduated students have gone on to decent jobs. Employers care more about your skills than the school you graduated from.

Visiting Graduate Programs

After you've been accepted into a graduate program, many programs will pay for you to visit to help you make your decision. You may be able to visit a program before you apply to help you determine if you want to apply.

When visiting a school, try to figure out how you would fit into the program–with the graduate students and with the faculty. Do you click with the faculty? Do you have similar working styles? (You may need to talk to a faculty member's graduate students to learn about his or her working style.)

More Information: Visiting Grad Programs

Additional Information

And, talk to your advisor!

Bonus: And, after I get to grad school?

Here is some more advice:

Acknowledgments

Sara Sprenkle is the main author of this page. Holly Esquivel, Emily Hill, Simon Levy, and Lori Pollock contributed ideas and gave feedback on this document.

Our advice is based on our experiences and the experiences of our colleagues, students, and friends. There are many different approaches that will lead to your own personal success, which may or may not include a graduate degree.

Good Luck!