There are about 190 CS graduate programs in the US and Canada (according to US News). Deciding which to apply to is daunting, but with a little research and understanding of admissions works you can make good choices.
A good guiding principle is to apply broadly, since Ph.D. admissions is partly a “numbers game” – the more places you apply the better your chances of getting in somewhere good. Still you should play the game as smartly as you can.
Before you start picking schools, you should read about Ph.D. admissions works.
Don’t Worry Too Much
Selecting schools to apply to is just the first stage of the application process – you aren’t committing to anything, so there’s little downside in applying to any particular school or applying to many schools overall. So, err on the side of applying to places rather than not.
Likewise, this is not the time to carefully analyze and research schools. Save that effort for when you’ve been admitted and you are making the much more important decision of where to go.
Criteria To Consider
Your goal in the application process is to get into the best Ph.D. program possible. What “best” means will vary depending on your situation. Some criteria consider:
School rank: The ranking of the school in computer science and in your area of interest. School rankings are imperfect but useful. A school’s rank is the best measure of how competitive it will be to get in.
Geography: Can you stand the cold? Or the heat? Or the rain? Or the humidity? Or the smallness of the town? Or the bigness of the city? Or being that far away from home?
If you aren’t sure what area you’re most interested in, target larger departments. They will tend to have faculty working in many/most fields of CS.
There are a few things to consider here.
First, how well can you calibrate the quality of your application? If you are enrolled at a university with a Ph.D. program, the faculty there can help you calibrate which tier of schools (top-10, top-20, ranked 10-30, etc) you should target. With that information, you can apply to a more targeted set of schools — maybe 5-10.
If you attend a school without a Ph.D. program, it will be harder to find someone with first-hand knowledge of how Ph.D. admissions works. In that case, you should apply to more schools to cover a wider range of possibilities — maybe 10-20.
Second, how much effort do you want to expend? Applying to ten programs is not that much harder than applying to one. You’ll have to write the same essays and take the same standardized tests. Clicking “submit” nine more times is not hard, at least not compared to getting a Ph.D.
Third, how many can you afford? Quick googling shows that the average application fee is around $70/school, but many schools provide a link to request a waiver based on need or other criteria. If money is a limiting factor for you, take full advantage of these.
Remember, if applying to more schools gets you into a better Ph.D., the benefits will more than make up for the cost in time and money. Apply as broadly as you can.
Make Your List
Taking all of the above into account, apply to a range of schools (based on rankings) that meet your other criteria (research area, geography, etc.). I would apply to relatively more higher-ranked schools, since your odds will be less good there. If you are unsure if you should apply somewhere, apply.
Video Answers To Related Questions
- What are some of the qualities of an ideal candidate for a PhD? Conversely, what might raise a red flag in a candidate’s application?
- How do I know where to apply? Where might I get in? Another answer.
- What matters most in the application? Undergrad grades, graduate (MS) grades, GMAT/GRE, recommendations or research experience?
- How does work experience as software engineer factor in? Or does that only count if you’re part of a published research project?
- What’s the weight of different parts of the application (test scores, grades, letters, SOP, undergraduate research)? Another answer.