Applying to Graduate School in Computer Science

William B. Thompson
School of Computing, University of Utah

Included below is information (hopefully) useful in choosing a graduate school to pursue studies in computer science and then getting in to the program of your choice. Several items represent my personal opinion. As always in such cases, you will be well served if you solicit additional opinions from others!

Apologies for out of date numbers and several dead links that need to get fixed!

Why go to grad school in CS

It's not the money! According to the National Society of Professional Engineers, the median salaries for engineers in 1999 was $92,800 for those with a doctorate, $74,229 for those with a master's degree, and $66,874 for those who's highest degree was a bachelor's. The salaries for engineers in information technology were at the high end of the salary range for all engineers. These numbers, however, don't reflect costs directly associated with getting an advanced degree and costs indirectly associated with the delay in entering the workforce entailed in obtaining an advanced degree. In any event, remember that Bill Gates never finished his bachelor's degree, much less a graduate degree.

An M.S. in Computer Science may make financial sense, particularly if it significantly increases your skills over what you learned as an undergraduate.

While monetary concerns might enter into the decision to work towards a Ph.D., there are non-financial considerations that for many (most?) potential candidates are more important. In industry, a Ph.D. significantly affects the nature of the work you are likely to be assigned. You will have more responsibilities, more independence, and are more likely to work on longer term projects. Pursuing a Ph.D. is a very different lifestyle than you can experience any other way. In addition to course work, you will spend one to three years of your life trying to solve a single hard problem with a minimum of outside distractions. This is hugely challenging, but can also be personally rewarding.

A  Ph.D. is a (near) requirement for obtaining a college or university faculty position.

Finally, with a Ph.D. you can call yourself a doctor, though you'd best avoid treating patients.

Choosing a graduate program in CS (mostly for prospective Ph.D. candidates)

The CRA Forsythe List includes all Ph.D.-granting departments in disciplines related to computing in the United States and Canada. For the full list, click on "Show Search Results" without filling in any of the other fields.

USNews provides a ranking of 70 U.S. CS departments, but you'll have to pay $9.95 to get all but the top five on the list. There is also a very out of date National Research Council Study of Ph.D. Programs in Computer Science that includes rankings. Rankings will tell you about the reputation of a department, but not the quality of the education you will get there should you enroll.

It is a good idea to apply to at least one "safe school" that you are likely to get into, given your grades and GPA. The difficulty of getting into different graduate programs correlates fairly well with the rankings of those programs.

If your are contemplating a Ph.D., the reputation of both department and university you graduate from are critical to your future. Even more important, however, is your thesis adviser. How well your adviser does her/his job and how well you interact with your adviser will in large measure determine whether or not your are successful. Unfortunately, it can be very hard to find out in advance whether or not you and a potential adviser are a good match. Departmental culture (workload, standards, supportive/non-supportive atmosphere) will also have a significant impact on your chance of success both in graduate school and when you look for a "real" job. This is one property of departments difficult to get information on without an in-person visit.

If you have at least a general idea of the research specialization you want to pursue, it is useful to find out the top 2-3 conferences in the area(s) and scan abstracts for the last several years. When you see articles that look interesting, take note of where the authors are from and see if any patterns become apparent. You should also attend as many colloquia as you can at your home institution and any other CS departments within reasonable commuting range. This will give you an overview of research across the country and can provide an opportunity to talk in person with faculty at other institutions.

It is difficult to set up a productive in-person visit unless you have already been accepted to the program you want to visit. Visiting students take up substantial faculty and staff time and so are discouraged except for students that a department has some specific reason to want to recruit. Fortunately, if you do get accepted somewhere you will likely get the chance to visit before you have to decide whether or not to enroll. (See below about deciding where to go .)

Getting in to grad school

Things affecting your chances of getting into a particular CS graduate program:

Timing

Most CS graduate programs primarily accept applications in the fall. Most have an application deadline somewhere between mid December and mid January. Acceptance notifications usually get sent out sometime between early February and early March, though departments vary in this. Rejections tend to get sent out towards the end of the process. Calling or emailing a department to find out the status of your application generally will not work. (Almost) all U.S. graduate departments abide by an agreement that places the deadline of April 15 for your decision to accept or reject their offer of admission.

Deciding where to go

If you are accepted to most top CS Ph.D. programs, you will be offered a chance to visit the department in person before you have to decide whether or not to accept their offer. These visits are usually scheduled in March or very early April. Some or all of your expenses for this visit will be covered by the department. This is an excellent opportunity to find out information difficult or impossible to extract from web pages, brochures, email, and phone calls. In addition to the factual information you can obtain from such a visit, pay attention to the sense of excitement exhibited by faculty and students and the interactions between faculty and students in the department. Try to talk to current graduate students without faculty being present.

Paying for graduate school in CS

Almost all CS graduate programs pay tuition and a (smallish) salary to almost all of their Ph.D. candidates. Some provide tuition and/or a salary to some of their M.S. candidates. Financial support comes in three forms:
NSF Graduate Research Fellowships are available to U.S. citizens and permanent residents. These are prestigious awards. If you qualify, you should apply.

Other resources

The Computing Research Association  Committee on the Status of Women in Computing research (CRA-W) published an excellent Graduate Student Information Guide. It is of value to both women and men.

CRA-W Career Mentoring Workshops Booklet.

Choosing Graduate School in CS, by Rachel Pottinger

Advice for undergraduates considering graduate school, by Philip Agre

Applying to Ph.D. Programs in Computer Science, by Mor Harchol-Balter