What you Can do in College to get into a CS PhD Program

Are you considering grad school? Here are a few steps you can take to maximize your chances. The bad news is that it’s best to start planning and working towards getting into grad school early: I recommend you take first steps some time at the end of your sophomore year in college. The good news is that the process is not only about admission, but will give you a good sense of what grad school is like and prepare you for it.

Letter of Recommendation

Doing a PhD in computer science (or any other field) is a challenging but often intellectually fulfilling experience. I certainly had a great time in grad school, and I’m sure that many other students also did.

There are several guides out there that discuss how to apply to grad school in CS, and they contain very useful advice. I want to contribute a complementary perspective here: I want to talk about what you should do, starting maybe in your second or third year of college, to increase your chances of getting into grad school.

I’m writing this because I sometimes get requests for letters of recommendation for grad school from students that take a class I’m teaching who I otherwise don’t know. The classes I teach are often rather large (~100 students) so that I unfortunately don’t have an opportunity to get to know many students that well. If I get such a request, I usually oblige, after asking the student if I’m really their best bet for a letter, since I haven’t personally worked with them. The resulting letter then is of the “did well in class” kind, which isn’t particularly helpful for an application.

Most graduate schools require three letters of reference. I’ll lay out a strategy of what to do so that you can get strong letters. These things will also help you to strengthen your CV, but more importantly, they’re very related to the things you’ll be doing in grad school, so they will help you figure out whether grad school is the right thing for you.

Work as a TA as Soon as Possible

Getting engaged in research early is difficult, as many research projects are in fairly specialized areas, and you’ll need to go through a few classes to be able to productively contribute to a research program. The way to get involved with a department early is through teaching: by being a teaching assistant for a class you’ve already taken, typically a large intro CS class. This has multiple benefits for you: you’ll learn the material better by teaching it, you’ll get paid to be a teaching assistant, you’ll experience what it’s like to teach (which you will do as a grad student but especially as a faculty member), and you’ll get to know the faculty member teaching the class. This person should eventually be one of your three letter writers, as they will know you quite well and will be able to comment in detail on your teaching, your communication skills, and on how organized you are. This faculty member can also give you tips on where to get engaged in research, and offer you to join their research team or recommend you to someone else who does research in an area that interests you.

Do Research Projects with Faculty

Around your third year, you should get involved with a research program, and continue that engagement for multiple semesters. There are many ways to do this; usually it’s best to take a research credit course (such as independent study, or thesis credit) with a faculty member who works in an area that you’re interested in. Many schools also offer stipends (UROP at the University of Utah) for undergraduate research, and the National Science Foundation also has a REU program that your faculty mentor can apply to get financial support for you. Some faculty members will also offer to pay you as a research assistant, although I personally only do that with students who I have already worked with for at least one semester. I frequently take on undergraduate students who do research with me during the semester as paid interns over the summer.

When you do a research project, make sure that you take it seriously. Getting a strong letter, or even contributing to a publication, is much more important for your chances of getting admitted to a PhD program than having a 4.0 GPA. So don’t treat your independent study research project as an “easy grade”, you should spend as much, if not more effort on that project than on your hardest class.

I typically give students in their first semester a problem to work on that would be nice-to-have for a larger research project in our group, and have them work with a PhD student. After a student has shown that they’re engaged and can make progress on that problem, I often involve them in larger research projects that lead to papers – and co-authorship for the students. Sometimes, I even have them lead an independent paper project. At this point, I’m typically very engaged and work with that student closely, so that I can easily write a very strong letter of recommendation and comment on details of the research the student has conducted.

Experience like this, possibly with a publication record, and a letter from a faculty member that comments on your research in detail will give you a shot at the very best PhD programs out there. You’ll also have something meaningful to write about in your statement of purpose, and your faculty mentor can guide you to which kinds of PhD programs may be a good fit for you.

Who Should Write your Third Letter?

By now you should have a letter from somebody you worked with as a TA, and somebody who mentored you as a researcher. So who should be your third letter writer?

First, if your two other letter writers know you well, the third one doesn’t matter quite as much. It’s OK to have a single “did well in class” letter, if you have two other strong letters commenting on your teaching and research.

However, there might be other things you can do: sometimes, you might find that a particular research area or lab isn’t quite what you had hoped, so you move on after an initial semester. Your mentor for that project is still likely to know you better than your average teacher in the classroom, so they could still be a good letter writer.

In other cases, your primary research mentor might be part of a larger research group or lab, and other faculty in that lab or group might also be familiar with your work and write you a letter.

If you did an internship, you could also get a letter from your supervisor at that internship, although academic programs tend to value letters from other academics more highly.

What if it’s too Late for You to do What I Suggest Here?

Don’t panic. Not everyone who gets into grad school and is successful in the program does so right after college with a long-standing plan as I lay it out here. Maybe you have other things in your CV, such as outreach activities, or open source projects, that make you a standout candidate and give you access to potential letter writers.

Alternatively, you can also start out with a Master’s degree program – admissions to master’s programs aren’t as competitive as for a PhD program. You can then get research experience while in a master’s program, and apply to grad school after you graduate. It’s also often possible for faculty members to “move you over” to the PhD program, if you’re doing research with them. However, the path via an MS program is potentially more expensive: instead of being paid to be a grad student (like a PhD student), you have to pay tuition.

Finally, I’ve seen very successful graduate students who come back to school after a couple of years in industry. Academic letters will still be helpful in these cases, but there might be things in your job that you have learned and that make you stand out in the applicant pool.


Getting into a good grad school isn’t easy, but if you’re strategic about it, it’s not an impossible endeavour. I’m aware that what I’m suggesting here sound like it’s a lot of work, similar to the many extra-curricular activities you might have done to get into college, but I think it’s actually quite different: First, at least in CS, you always get paid to teach and sometimes also to do research. Second, your experiences as a teacher and researcher will be very similar to what grad school will be like, so you can think of them as a test run. If you don’t enjoy these things as an undergrad, you might also not like them as a PhD student. And finally, engaging in these activities will not only improve your chances to get into a great program by building a CV and by getting great letters, you will also be much better prepared for what is to come than you would be if you only take classes as an undergraduate.