Prof. Davis’s Advice on Applying to Graduate School in Computing in the USA
Summary
This blog contains my advice on applying to research-intensive graduate programs in computing in the USA. I think the world is made a better place by engineers who understand the capabilities and limitations of computers and can think critically about when and how to apply them, so I think the world needs more people who complete graduate school in computing. I also think that many people want to complete graduate training in computing but are held back by their applications — applications that do not communicate the information that reviewers need to assess them. The purpose of this blog is to help prospective students to communicate their aspirations and qualifications. This blog is not about “three funny tricks that will get you into graduate school”. There are not shortcuts here. But I hope it is helpful to applicants who do not have access to mentoring on this topic, in order to prepare the best application they can based on their accomplishments and circumstances.
This is a long blog. I’ve used headings to help you navigate. The main topics are:
- Why take my advice?
- What is graduate school like?
- Pros and cons of graduate school
- Choosing a program
- Advice on the components of a graduate application
I’ve deliberately placed the concrete advice on applications until after the general information about the nature of graduate school. Many applicants do not understand the meaning of graduate study, so I thought it best to start there and let you decide if it’s really the path you’re looking for.
Why take my advice?
I have a PhD in Computer Science from Virginia Tech. I applied to ~10 computing graduate programs myself and was admitted into some, though not all. I am now an assistant professor in ECE at Purdue University, where I have reviewed hundreds of applications at the MSc and PhD level, and coached dozens of students as they prepared applications. This blog contains my perspective. If you search the Internet you can find what many other professors have said.
What is graduate school like?
Graduate school is not like undergrad
Repeat after me: “Graduate school is not like undergraduate. Graduate school is not like undergraduate. Graduate school is not like undergraduate”.
- The goal of undergraduate training is for you to master the body of knowledge in your topic, to a sufficient degree that you can pick up new topics in the workplace. Most undergraduate programs give a guided tour of many textbooks on many topics. If you complete a bachelor’s degree in computing, then you’ve probably encountered many topics in a shallow way — a bit of object-oriented programming, a dash of operating systems, a soupçon of data structures, a neural network here and there, and a rough understanding that everything is layers and abstractions. Congratulations, you are ready for the workforce! (at least, if anyone is hiring this year). Different jobs will then call for different specializations, which means that you might find yourself getting a lot of domain expertise in farming, or knowledge about GIS and GPS, or a taking a deep dive into distributed systems, or becoming a wizard at algorithm development. Thanks to your practice through undergrad at learning new things, you’ll be able to self-learn and master these topics too.
- The goal of graduate training is for you to take a deep dive on a particular topic. Instead of learning a little bit about many topics, you will learn a great deal about a few topics. The idea is for you to specialize — you might focus on cybersecurity, or on machine learning, or on privacy, or on distributed system design, or on many other topics — so that you can work on the hardest problems in industry. Where undergraduate training takes a smorgasbord approach and you get to try your hand at many things, in contrast graduate training pushes you to a deep study of a single topic. Some graduate degrees have these specializations in the title (e.g., “MSc in Distributed Systems”) while others do not, and leave it to you to select the courses that will give you the expertise you want. You technically can complete an MSc in a smorgasbord style, by picking and choosing a random assortment of classes, but I wouldn’t recommend it. If you’re going to the trouble of completing graduate training then you’d better get a specialization out of it. Conversely, if your actual goal is to keep taking classes because you enjoy learning, may I humbly recommend that you get an engineering job and buy some textbooks on eBay to study nights and weekends?
Kinds of graduate degrees in computing
There are three main kinds of graduate training.
- The MSc-Coursework/Project. A coursework MSc means that you have developed some mastery of a specialized topic, but have not yourself produced new knowledge. MSc-Coursework students almost never receive funding from the program that admits them.
- The MSc-Thesis. A thesis MSc means that you have made a modest contribution to humanity’s knowledge on a particular topic. The topic you choose may be up to you (and your advisor), though expect more constraints because the advisor will be trying to help you choose a topic that you can plausibly complete in 2–3 years. MSc-Thesis programs will sometimes come with a guarantee of funding (tuition + stipend), though this is unusual by now.
- The doctorate (PhD). A PhD means that you have made a substantial contribution to humanity’s knowledge on a particular topic. The topic you choose is up to you (with guidance from your advisor). PhD programs often come with a guarantee of funding (tuition + stipend), sometimes explicit and sometimes predicated on satisfactory progress.
Which one should you pursue? I advise you to begin with the end in mind. If your career goal is to have a job with the title “researcher”, whose responsibilities are to discover new things or apply them for a company, a government, or a university, then you should pursue a PhD. If you would like to assist in such endeavors, or aren’t yet sure you want to commit to the PhD, then you should pursue the MSc-thesis. If you want to get an advanced engineering role, then an MSc-Coursework should be fine, though a thesis won’t hurt.
These degrees are arranged in the order of difficulty in gaining entry to the program (and completing the program once you’re in it). Many schools will be happy to admit undergraduates with a 3.5+ GPA into an MSc-coursework program; you’ve shown you can do coursework and you are welcome to continue to study. Obtaining entry to an MSc-Thesis or a Phd requires a track record of excellence ins scholarship (often a 3.75+ GPA) as well as independence of thought. More on this later.
Pros and cons of graduate school
Pros
The greatest benefit of graduate school, and here I am particularly thinking of research-oriented programs, is that it is the best way I know of to truly improve your mind. If you are completing a research-based degree, you must discover something new and communicate it to others. If you don’t, no self-respecting advisory committee will sign your degree. Take a moment and think about how remarkable this requirement is. I suspect that at no point during your previous schooling — 13 years of K-12 and 4 more of undergrad — have you been expected to produce something new. Most people go through their entire lives without ever discovering something new. The process of creating new knowledge requires you to undergo rigorous criticism from your advisory committee, who will poke and prod at every suggestion you make in order to help you refine your thinking. Researchers seek the beauty of new ideas. There is a profound poetry here that can be a wonderful experience.
A more obvious upside of graduate school (whether research- or coursework-based) is the chance to learn the latest knowledge in your field. As an undergraduate student, you probably sat through at least one giant lecture-style class with dozens or hundreds of students all sleeping through the same slides and boring textbook. That experience happens in part because many professors consider the material in question to be rote and uninteresting — after all, this material hasn’t changed in years — and so they don’t care too much to teach it. At the graduate level, you’re taking advanced courses that are kept up to date because the material keeps changing (new knowledge and techniques keep getting discovered). Faculty are also much more enthusiastic in the teaching because they are teaching the advanced topics that they study and love themselves. This doesn’t guarantee they are good teachers, of course, but on average the classes will be more engaging.
Another benefit, and related to the previous one: graduate school unlocks some job opportunities. Specifically, if you want to work in a research and development (R&D) role, especially at a larger company, then you typically need a graduate degree. Want to work at Microsoft Research? Almost everyone there has a graduate degree. Want to work at IBM Research? Almost everyone there has a graduate degree. Want to work at Argonne National Labs? Almost everyone there has a graduate degree. There are exceptions, of course — research divisions often have what are called research engineer roles that may be filled by folks with bachelor’s degrees; and sufficiently brilliant-and-lucky people seem to be able to get a job anywhere — but most people who want roles like these will complete a graduate degree. Graduate degrees may also help you obtain a US work visa by providing a basis for arguments about your global preeminence or specialized expertise.
A final upside is the chance to study with like-minded peers. In your undergraduate school you may have had peers who were just going through the motions to get a degree. You may have been on a group project with them (sorry about that). In graduate school there are still some people like this, but most students are in graduate school because they love learning and want to be great in their chosen careers. It is truly a joy to work and study with other students who take school seriously and who really want to master the material. Many folks in the military go through boot camp and make friends for life. Similarly, many folks in the professions go through graduate training and make friends for life.
Cons
I think the biggest downside of graduate school is the financial opportunity cost. Time in school is time spent not working, and time spent not working is time spent not earning money. In computing, many entry-level jobs have a $100K+ compensation package between salary and benefits, including 401(k) and retirement matches. So, for every year you spend in graduate school, let’s say that you are giving up perhaps $150K/year. For a two-year MSc that’s $300K (the cost of a house in many parts of the USA); over the course of a 6-year PhD that’s $900K (most of a comfortable retirement!). Sometimes the job market is rough for fresh BSc graduates and getting a job is hard. But a little patience and practice usually rewards the applicant much more quickly than the two years spent getting an MSc. Don’t get me wrong, people with graduate degrees do usually start at a higher salary than BSc. But the bump is not enough to offset the missed income, especially since your BSc peers will have had a few years of raises and bonuses and 401(k) matches and so on before you start working yourself.
There are some other possible downsides — grad school is mentally and emotionally taxing; you might not like the climate or the location of the university; many college towns have trouble with abusive landlords; and so on. But in computing, I think the biggest cost to weigh is financial.
Topics on which I am ambivalent
In computing, many students are interested in entrepreneurship. Does a graduate degree help here? It’s hard to say. I know some entrepreneurs with a BSc and others with a PhD. I have heard that the credential impresses some venture capitalists (“Ooh, this founder must be smart!”), and the sharpened thinking may help. But the successful entrepreneurs I know are a pretty sharp bunch regardless of their credentials, and most venture capitalists will care more about your business plan than the letters after your name. Instead of graduate school, you might be better off working a bit and saving scrupulously so you can self-fund the venture and avoid diluting your ownership. The exception here is graduate (or undergraduate) studies at high-prestige institutions, where the professional network you obtain can create new opportunities for you.
Many computing students go into management roles. Here, again, graduate training in computing may be helpful, but it’s certainly not required.
My analysis
Personally, I think that if you are a person who loves to learn and study, and you do not have pressing personal obligations that need money, then you should seriously consider graduate school. You should never pass up an opportunity to improve your mind. Over the course of a career in computing you’ll make plenty of money. You don’t need a car right now and you can wait a few years to buy a house. Meanwhile, an investment in your mind now will benefit you for the rest of your life. However, if you have a family that needs to eat, or parents who are struggling, or any of the myriad reasons for which one needs money, then of course you must be guided by these responsibilities.
Choosing a program
Do rankings matter?
Yes, rankings matter. Let me be clear: I do not think that rankings have much effect on the quality of the education you will receive. There are great professors and great research opportunities at universities all over the United States, at schools big and small, top-ranked and low. However, rankings they do affect the opportunities that will be available to you after you graduate. Why? Well, one of the biggest challenges in running a successful organization (or funding winning startups) is choosing good staff. Staff selection is hard because you cannot easily judge a person’s character or the quality of their work from their application. Hence, most hiring managers rely, to a greater or lesser degree, on the applicant’s reputation. The ranking of the school you attend will rub off on you a bit, and so will the professional network associated with your school. Did you go to a famous school like Harvard, Yale, MIT, or Berkeley? You’ll have no trouble getting interviews and job offers. Did you go to a little school nobody has heard of? You won’t have the benefit of your institution’s reputation to support your job application. This doesn’t mean you’ll be a bad employee or entrepreneur, but it does mean you will have to work harder to convince others of that fact.
So, if you are choosing between schools that are at least 10 ranks apart, then you should prefer the higher ranked one. However, if the schools are only a few ranks apart, then you should consider the specific attributes of the programs.
For US schools in computing, there are two major ranking systems. The first is the US News Graduate Ranking System, which is reputation-based. Check both the CS and the ECE rankings. The second is the website csrankings.com. This website is publication-based; it uses the DBLP database to count the number of papers published at top-tier venues by faculty at each school. Note that this website only includes faculty who can solely supervise a PhD in CS, which means that many researchers (including me!) are excluded from it. If you compare the two rankings, you’ll see that some schools, such as Carnegie Mellon, Purdue, Michigan, and Georgia Tech, show up in both places, while others are highly ranked in one and not the other.
Here’s how I think about it. The csrankings system considers the raw number of publications, which will favor schools that have many faculty. The USNews system considers the reputation of the faculty and the graduates, which will favor schools that set a high bar for rigor and depth of thinking. Some schools have both, while others are more oriented toward one or the other. Both systems have their merits — USNews makes for an easy-to-use number, and csrankings gives a fine-grained analysis by topic, and makes it easier to see which faculty at each institution you should talk to.
For research-focused applicants, especially PhD: Keep your advisor options open
There is plenty of research on success in graduate school, and in particular on success in research-focused students (MSc-thesis and PhD). The factor that most strongly correlates to success — and with a hefty effect size — is your relationship with your advisor. Not the school, not the topic of the research, not the resources, not the size of the stipend. It all comes down to the advisor-advisee relationship. So the most important factor to consider as you select programs is this: Does this department have faculty members who could be a good advisor for me? A suitable department will have not one, but multiple viable advisors. Having options is important because faculty members do change institutions, take leaves of absence, and leave academia.
I cannot emphasize this enough: If you are interested in doing research, do not apply to a department simply because it is famous. Apply to a department whose faculty are well suited to advise you. Sure, you should consider rankings (see previous topic), but without advising your graduate career will be an unpleasant one.
Now, how to find these prospective advisors? First you’ll need to have nailed down your research interests, at least broadly. (See the topic below, “Statement of purpose”). Then, you’ll want to find the faculty members who are actively working in this topic. I recommend two distinct approaches — you should try them both.
1. Use the department website. Departments enumerate all of their faculty, and the department view will let you see how the faculty are collaborating — for example, you can look for the centers of excellence in the department.
2. Use www.csrankings.com. This website lets you see the faculty who currently publish in the most prestigious computing venues, organized by sub-discipline of computing. You should be cautious about the actual rankings provided by this website, because it has a bad case of tunnel vision — as mentioned above, it only counts faculty who can supervise a PhD student in “Computer Science”, which omits the many computing researchers who work in Colleges of Informatics, Polytechnic Institutes, and departments of Electrical & Computer Engineering. However, if a university does not have a research-active CS department then it probably does not have much active research in computing.
The graduate school application
I hope my thoughts above have helped you assess whether you want to do graduate study at all, and the institution(s) you might consider. But you opened this blog looking for advice on how to get into a graduate program! So let’s dive in.
Purpose of the application
Across your application package, you are trying to answer three questions.
- Why graduate school? First, explain what your long-term career goals are and how they will be advanced by graduate study. Do you want to be a professor? Then graduate school clearly makes sense. Do you want to be an engineer? Then explain carefully why graduate study is relevant to this goal.
- Why are you suited to succeed in graduate school? Second, persuade us that you have the appropriate foundation and experiences to succeed in graduate study. I am looking for students who have excelled at every opportunity they have been given. When I look at students from the USA, where I grew up, it is relatively easy for me to assess this. When I look at students from other countries, it is a lot harder. Do us a favor — help us interpret your application!
- What do you want to do in graduate school? Third, explain to us what you would like to accomplish while you are in graduate school. What project or thesis will you work on? What is your vision for the work, and why are you able to do it? What faculty would you like to work with on that project?
How applications are reviewed
Applications are reviewed by an admissions committee. Committee processes vary widely from institution to institution, but as a rough approximation, you should assume that your reviewers are examining 50 applications and looking for the 0–5 best ones in their pile. Their evaluation rubrics will include (1) Relevance of prior coursework and experiences; (2) Demonstrated excellence in field of study; (3) Potential for success in open-ended research and engineering work; and (4) Quality of letters of recommendation.
Individual faculty (including those not on the admissions committee) may also review applicants who list their names as prospective supervisors. These faculty may be trying to fill an open position for a research assistant, and if you list their name it is another way to get their attention.
Elements of the application
Here are the standard elements of an application to graduate school in computing in the USA:
- Your resume / CV
- Your letters of recommendation
- Your statement of purpose / academic statement
- Your personal statement
- Your list of faculty of interest
- Your performance on standardized tests*
Let’s look at each of them. I’ll describe this in terms of my own evaluation method.
CV / Resume: This is where I start my review of an application. If your CV shows a good track record, then I will be looking at the letters of recommendation to give an unbiased view of your work, and your statement of purpose to see how your plans are connected to your past. On the other hand, if you have no track record of success — well, the saying in finance is that “past performance is no guarantee of future returns”, but it’s a pretty good predictor.
- The most basic question I ask is this: Is your CV formatted well? If you did not take the time to prepare an academic-style CV that highlights your academic skill, then your application may suffer because your reviewers cannot assess it well. You should not submit the same CV/Resume document to industry jobs and graduate schools. (Hint: look at the CVs of faculty at the institution you are applying to — they follow a pretty uniform style and you should emulate it. There are templates on Overleaf).
- Did you attend a good undergraduate institution, earn good marks there, and demonstrate excellence through extracurricular activities? Do you have prior research experience?
- Are the names of your letter-writers indicated on this CV where appropriate, so that I can correlate your experiences to others’ views of you?
Letters of recommendation: Do your supervisors agree that you have demonstrated excellence?
- You should be thoughtful about whom you select as letter-writers. You can also provide your letter-writers with reference material, e.g. a list of your accomplishments under their supervision. For example, did you obtain a patent? Remind your internship supervisor of such. Did you earn the best marks in a class? Remind your professor about it. Letter-writers are busy people and struggle to keep track of all of the details for all of the students they work with. I do not advise you to ghostwrite these letters, but it is helpful to make sure your letter-writers have a full record of your work with them.
- For graduate study — whether research or coursework — the strongest letters are from PhDs who have supervised you in some open-ended research activity. The weakest letters are often from university staff such as members of a writing center or a tutoring center. Maybe you did great work there, but the admissions committee wants to know primarily about your technical skill as communicated by people we perceive as our peers.
Your statement of purpose / academic statement: This statement is devoted to explaining what you want to accomplish in your graduate studies. It should show how graduate study, at this institution, under this institution’s faculty, forms a reasonable stepping stone between your past achievements and your future goals. A graduate degree is about specialization, so you should describe the specialization you are seeking. If you are proposing to do research (PhD or MSc-Thesis), you should explain your plans. Be as specific as you can be; you may not have a project fully mapped out, but you should have read some recent papers on the topic and you should name the faculty at this institution who work on that topic and justify your selection.
A common structure for this document is to tell one’s life story as a narrative. To each their own, but I think this is a mistake. Your first paragraph should give the bottom line up front (BLUF). Shape the rest of the document in a way that makes sense, but make it easy for the admissions committee to put you into the appropriate bin (e.g. ML, computer systems, architecture, etc.) and contact the relevant faculty if they need a deeper opinion.
Your personal statement: This statement is where you can explain the context from which you’ve come, and how you have excelled at every opportunity to which you have had access. Have you risen above your family’s socioeconomic circumstances? Have you had some experience we should know about that affected your grades or access to opportunities? Are you applying from a country whose institutions are not globally renowned? Tell us how to interpret the institution you attended (e.g. entrance exams?) and its rigor (e.g. alumni). Are you applying from a university where GPAs don’t convert easily to the US 4.0 system (e.g. you received a “first class honors” degree)? Help us read your CV.
Your list of faculty of interest: All graduate programs would like to know the faculty under whom you want to study. Some may have a field for this on the application, while others don’t ask directly but expect you would put it into your statements. Either way, this question is not an optional part of the application. Part of your application process is to assess whether an institution has the right faculty to supervise you. If you do not put thought into this and make a good selection, it may harm your application. You will be perceived as not having thought things through.
Your performance on standardized tests: These may include language scores as well as the GRE.
- Your performance on language scores may influence your ability to obtain funding — you may meet the university’s language requirement for admission, but the requirement for being a Teaching Assistant is often a higher bar.
- The GRE is a more controversial one. GRE scores are now optional at many institutions. This increases the accessibility of the program (fewer costs to apply) but on the other hand it also decreases the amount of information that the admissions committee has about your case. Even if the scores are optional, my advice is that if you have the money, and do well on standardized tests, then taking the GRE may strengthen your application. If you are a native English speaker, you would be expected to have good performance on all aspects of this exam. If you are not a native English speaker, then I expect your quantitative score to be good (at least 160) and your verbal/writing scores to be above the 50th percentile. These scores give us a way to compare applicants worldwide, and good scores will be particularly beneficial for students who lack the advantage of a strong educational pedigree or strong letters of recommendation. Of course, one may argue that one’s studies in graduate school are not like the GRE, and that people training for the GRE dilute its utility as a predictor. My personal view (supported by research papers I’ve read on this topic, and by my observations of students) is that the GRE is still a reasonably good predictor of “cleverness”. While clever people do not always succeed in graduate school, non-clever people rarely do.
Calibrating your expectations
In ECE@Purdue, we receive thousands of applications each year across our PhD and MSc programs. What are your odds of getting admitted?
The typical profile of the students that we admit into our research tracks looks like this:
- Undergrad GPA > 3.5/4.0 from a respected undergraduate institution.
- Letters from multiple faculty that describe, in detail, their observations of the ways in which you are an outstanding student.
- Substantial extracurricular achievement, e.g., undergraduate research, being part of a winning programming team, medaling in a national competition of some kind.
- If they took the GRE, their scores are >160 on the quantitative portion, and are not abysmal on the verbal and writing portion.
Even these properties do not guarantee admission. When I applied to graduate school, I had a 4.0/4.0 GPA, letters from undergraduate research supervisors, 3 US patents, 3 years of experience as a software engineer at IBM, and near-perfect GRE scores. I was accepted to many but not all schools to which I applied.
I also note that US institutions have a truly global application pool, and we do not look for all of these criteria from all applicants. We are looking for students who have excelled at every opportunity they have been given, and are hungry for more. Admissions committees tend to be risk-averse, and they place a lot of emphasis on your track record and pedigree. But brilliance comes from every background; the admissions committee knows that there are exceptions to every rule, and perhaps it’s you.
But let’s do a little math. Suppose your odds of getting accepted into a Top-20 program are 5%, and let’s suppose that you apply to all 20 programs. What are the odds of being rejected by all of them? The equation is:
Prob(rejected by all) = 95% x 95% x … = .95^k where k = 20. The result is 0.36 — In other words, with a 5% chance of acceptance, about one third of the time you would expect your application to be rejected by all of the Top-20 programs.
I know many excellent students who applied only to the Top-10 programs, where their odds are even less favorable. Some of them are rejected by all of the schools they apply to, and this can place them in an uncomfortable position — they would have been happy to go to any good graduate program, and they simply misunderstood their chances of acceptance. If you are targeting MIT or bust, more power to you. But if you want a research career, don’t apply only to the Top 10 — include some safety schools, and remember that “safety school” in graduate school may mean going further down the rankings than you did in high school. Why is this? Well, for undergraduate study, most students are competing against the best and brightest from their own country. For graduate study in computing in the USA, you are competing against the best and brightest from the whole world — the USA has the best institutions, the best resources, the best climate for study, and the best opportunities after graduation. Everyone wants to come. That means that to get into the best programs, you need to stand out not only amongst the peers you remember from high school, but also against the rest of the world. Don’t lose heart, but also be realistic about your chances. One of your letter-writers should be willing to give you an estimate if you ask them. Previous alumni from your undergraduate institution can also give you tips about what kinds of schools they got into and how they planned their applications.
Closing thoughts
I hope that this guidance has been helpful. If you are interested in disciplining your mind and studying computing intensively, graduate school is a great option. I hope this article helps improve your understanding of how to apply.