How to Apply to a PhD in Computer Science
Applying to a PhD is overwhelming, especially if you don’t know others who have gone through the process. As someone who has been both an applicant and a reviewer, I have seen the process from both sides. I noticed the trends in “good” and “bad” applications. I have provided individual advice to people, but thought I could share it with others. I hope it’s useful to you!
PhD applications typically consist of four (up to six) parts. These parts all work together to form a cohesive narrative of your experience, your motivation, and your goals.
- Curriculum Vitae (i.e., CV)
- Statement of Purpose
- 3+ Recommendation letters (i.e., “letters of rec”, “rec letters”)
- Transcripts
- [Optional] Personal Statement, Diversity Statement.
- [Optional] Graduate-level entry exams (GRE). Schools have been moving away from standardized exams like the GRE for the last 5 years. Double-check with the universities if they require the GRE. This is excluding requirements for English-language proficiency exams (e.g., TOFL).
Disclaimers
- I am a PhD student in CS specializing in NLP/AI/language generation at Johns Hopkins Center for Language and Speech Processing (JHU CLSP).
- I served on the admissions sub-committee where I read through applications and made notes on their accomplishments, letters, etc. These summary notes were passed along with the applications to the faculty on the committee.
- My advice and opinions are my own and do not reflect those of the Johns Hopkins Admissions committee.
- My experience is very US- and computer science-centric and might not transfer to institutions in other countries or applications for other majors.
Note: When I say “Reviewer” I am referring to anyone reading your application.
Skip Ahead
- Part 1: The Curriculum Vitae
- Part 2: The Statement of Purpose
- Part 3: The Recommendation Letters
- [Optional] Personal Statement
- Closing Thoughts and Resources
I thank Suzanna Sia and Alyssa DeLucia for taking time to provide feedback on this guide.
Part 1: The Curriculum Vitae
There are many guides available for writing Curriculum Vitae (CV) so my advice focuses on the sections that must be present.
- Education. Any previously attended schools, years attended, degrees awarded, graduated honors, GPA, scholarships, and thesis titles.
- Note: If you GPA is low due to a personal issue or a rough semester, you could use the space in the Personal Statement to explain this.
- Research Experience. A section dedicated to any prior research positions or internships, such as Research Experiences for Undergraduates programs (REU).
- If you worked with a professor at a school, make sure to put their name and the name of the lab (often the lab name is just “Professor Farnsworth’s Group”).
- For each experience you should include bullet points for the project overview and your contribution. Your contribution should be clear, e.g., “Annotated 100 AI-generated summaries across 3 axes (fluency, coherence, appropriateness) for the human evaluation portion of the analysis.”
- If you worked on multiple projects in the same lab, it is visually easier to understand if you group them.
- Publications and Pre-prints. A list of citations of work that you are involved in. If you have a lot of prior work and not all of it is relevant, you can title this section “Selected Publications and Pre-prints (X out of 6)”.
- You can combine this section with “Research Experience” and visually separate the paper citations with a separate bullet point or an indentation.
- Note: Be explicit about whether the paper is a pre-print or workshop paper. Also, list all paper authors and bold your name so it is clear whether you are first, second, etc, author.
- Other Work Experience. While research experience is the greatest indication to a Reviewer that you are capable of performing research, internships and work experience in a non-research position are also good.
- Include the years of working there, the position name (“Business Analyst”), the company name, and the company city.
- Describe your duties and any notable projects you did. Since PhD programs involve communication skills, definitely highlight presentations and reports that you were responsible for. Regarding projects, highlight any experimentation, testing, and evaluation you did. E.g., “Designed a X-sampled test suite through [a process] to evaluate which third-party products our company should support for our clients.”
General Tips
- Bullet points are easier to read than paragraphs for the prior Experience sections.
- Experiences and publications are usually ordered in reverse chronological order (most recent is first).
Part 2: The Statement of Purpose
The statement is a roughly 2-page essay that expands on your CV. A reviewers should be able to clearly identify which project you are talking about. Similar to the 5-paragraph essay taught in US-based high schools, there is a typical format for a PhD Statement. It is OK if yours does not fit this outline, but the same information should be present.
Outline
- Introduction
- Introduce your motivation, background, and PhD goals in roughly a paragraph. This is a high-level overview that the remainder of your essay will draw from.
- Have a clear thesis statement of your interests and goals. Ideally a single sentence the Reviewer can quote or highlight. E.g., “As a software engineer with industry experience, I know firsthand how important code debugging is and I want to improve the level of detail and speed at which programming debuggers work.”
- Past experiences.
- This section is the prose form of your CV and doesn’t need to include everything. It’s best to focus on experiences that:
- Inspired you to pursue a PhD
- Prepared you for a PhD
- Are with the supervisors that are writing your letters of recommendation
- If you have research experience. Be clear about the project motivation and your contribution. It’s good to have an understanding of other parts of the project, but you shouldn’t waste space detailing contributions that were not yours (e.g., if you did data annotation, it’s misleading to the Reviewer if you’re detailing experiments). If you are discussing a specific experience that is a published work or a pre-print, you add a “References” section and cite it. You can also cite presentations that you gave and non-archival workshops that you participated in.
- If you don't have research experience. Draw from experiences where you had ambiguity in a project and had to figure out what to do. PhDs are very self-driven and an advisor wants to make sure you can be successful with limited direction.
- All experiences should be very easy to tie back to your CV to make it easier for the Reviewer to follow.
- This section is the prose form of your CV and doesn’t need to include everything. It’s best to focus on experiences that:
- What you are interested working on in the PhD.
- If you know exactly what you want to do. Congratulations for having your life figured out! Why are you evening reading this post? (Kidding, but if you know what you want, just write that. And note that it doesn’t have to be a detailed thesis outline.)
- If you don't know exactly what you want to do. Some programs and professors prefer students who know exactly what problem they want to solve for their thesis, and other programs don’t focus on that. It’s OK if you don’t know, and sometimes your interests change as you are exposed to new areas of research. I suggest drawing from why you are pursuing a PhD in the first place and also figuring out which professors’ research at the school interests you, and then find how they describe their research on their websites.
- If your past work doesn't align with your PhD goals. Ideally you can tie in your past experiences and motivation to what you are interested in, but it’s OK if your goals in your PhD are different from your prior work. Is your past work in Networking and you want to move to Programming Languages? That’s fine! Was there something in Networking that made you interested in Programming Languages? Draw from your motivation and reasons for why you want to pursue a PhD.
- Note: like the past experiences section, you can cite your own prior work or that of others in the field. The citations can go in a “References” section at the end.
- Why you are a good fit for the school/program
- This section is the final paragraph and should be different for every school. All other parts can be re-used.
- Mention at least 2 professors by name that you would like to work with. And provide a sentence of why their labs would be a good fit. You want the reviewer to know you took the time to look at professors’ webpages and some of their work and you are not only listing the most well-known professors.
- Do you have a personal connection to the school or location of the school? You can mention this here or in your Personal Statement. Programs like to be sure that when they extend an offer, the student will accept. A personal connection such as growing up in or having family in the area can assure that you would accept the offer.
General Tips
Reviewers are reading multiple applications and will often take notes to summarize your statement or look back to reference it. Make your statement easier to reference through:
- Subheadings. Not necessary but could be helpful for quick reference. E.g., Motivation and Research Interests.
- Bolding key ideas. Please do not over-bold your essay. The key pieces of information that should be bolded or emphasized are your: research interest keywords (e.g., “cybersecurity”, “optimization”, “large language models”), and list of professors you want to work with (e.g., “Professor Farnsworth”).
Part 3: The Recommendation Letters
Similar to the Statement of Purpose, the reviewers should know which project/experience the letter-writer is discussing. Ideally the letters are from those supervising the projects and experiences you expand upon in your Statement. This completes the story of your application: what you did, what you learned, and a third-party source confirming your story.
How to choose your letter writers
Choosing someone to write a letter is important and you should prioritize those connected to you through:
- Research Experience. This category includes thesis advisors, people whose labs you have worked in, and research-related internships. Someone in a more senior position who has worked with you. If you worked with a graduate student closely and not the professor directly, that is OK. Typically a professor will ask the graduate student to write the letter and then review it before signing it and sending it out. I have done this before for undergraduates / Master’s that I have worked with for my advisor.
- Job / Internship Projects. This category is for either internship or full-time work that was not research-focused and more software or product-focused. There are skills in non-research work experience that transfer well to a PhD.
- Academic Coursework. Personally, I think coursework-related letters are the weakest. A possible exception is if you have taken many classes with the same professor, did a really cool or extensive project in the class (like a senior capstone), or was a Teaching Assistant for them. The main problem with letters from a professor only related to you through coursework is that they typically don’t have anything to say about you. Applicants often think that a big name on the letter is important, and while that does hold weight for some reviewers, a good letter from a lesser-known professor carries more weight than a mediocre letter from a famous professor.
Other, more general tips on choosing letter writers:
- Experience diversity. Do not ask 5 people from the same project to write you letters. It leads to extremely boring letters because they will all say the same thing. I have read applications with multiple letters that said the same thing and it was honestly a waste of my time as a reviewer. Another option is to still ask multiple people from the same experience, but submit the letters to different schools. This can be helpful if one letter is not very good.
- Choose experience quality over supervisor h-index. As touched on under Academic Coursework letters, a strong letter from a not-famous professor is worth more than a bad or mediocre letter from a famous professor. This tip is mostly from my frustration at reading letters where a professor obviously didn’t really know the student and only had them in a 100-person lecture class for one semester. This letter adds nothing to your application story.
- Trust your letter-writer when they say they can’t write you a letter. This part is difficult because it can be very disappointing when someone you have worked with or looked up to says they cannot write you a letter. A supervisor will say no when (1) they have their plate full writing letters for people who asked before you or (2) they don’t think they can write you a good letter and excuse themselves from potentially tanking your application with a mediocre one. Situation (2) can happen if you do not do good work on the project or do not deliver on your promises.
Helping your letter writers
Your letter writers are typically busy and while are eager to help, might not know what to focus on. Here are some general tips:
- Ask (politely) that they stay in their lane. Each letter is meant to support or augment a portion of your application story. A single letter does not need to discuss absolutely everything you have ever done, only describe their experience with you on Project $A$. Providing a list of your project contributions (explained below) is a polite and gentle push to tell them what you want their letter to focus on. There is nothing more annoying than a letter-writer who spends paragraphs discussing the applicants’ “high GPA”, “extensive extracurricular involvement”, and (my personal favorite) “dedication to their family”. Also, if this letter-writer went to the university you are applying to (ideally as a PhD), ask them to mention that in their letter. It’s always nice to hear from an alum! Usually they are submitting the letter to the multiple schools, so they might omit mentioning this so they don’t submit it to the wrong place.
- Remind them what you did on the project. Supervisors are busy people and may not remember everything you did. Provide them your CV and/or Statement of Purpose to tell them which contributions and skills you highlight, or, ideally you can pull out the pieces and make a list for them. Concrete contributions like data annotation on $X$ samples, setting up a web server, presenting research updates, holding focus groups, etc.
- Ask early and send (not annoying) reminders. Not having your letters submitted can be stressful. An important note is reviewers should be nice and not penalize you if a letter-writer does not submit their letter. Having none of your letters submitted is definitely an issue and will hurt your application. There is a bit of leeway between the actual application deadline and the time that your application is actually read (depending on the program, could be a few weeks), so a late letter is OK and is better than no letter! Note: a professor might disagree on the reminders, but just be reasonable. A weekly reminder is a no-no but I see no reason why a month-out and a week-out reminder isn’t acceptable.
[Optional] Personal Statement
There is a space for an optional essay, referred to as the Personal Statement. This statement should be considered a free-text box to:
- Explain gaps or “odd” things in your application. When presenting your journey to a PhD through transcripts and your CV there might have been unexpected life events. Was there a death in the family that led to poor grades for a semester? Do you have less Computer Science electives because you switched majors late in your degree? Did you fail Machine Learning but then learn the concepts through a research project? This free-space is the perfect place to address potential red flags like failed classes.
- Personal motivation not included in the Statement of Purpose. If your Purpose statement was highly research-focused and did not go into your personal motivation for wanting to do a PhD or why you are interested in a specific area of research, this is a good place to delve into that. Did you get your information stolen online and now you want to do cybersecurity? Do you speak a language with little support in machine translation and now you want to work in low-resource machine translation? Was your Computational Photography or Algorithms course the best course you took in college? Did you have a really great mentor who inspired you? Reviewers love to hear about any life event that encouraged you to want a PhD.
- Address personal or other barriers you encountered/overcame. Barriers to success could be anything from health issues/disability, discrimination due to your race/ethnicity/gender/sexuality, or general lack of access to opportunities. When discussing barriers, clearly tie them to your motivation and story of your journey to a PhD, and make sure you discuss how you overcame or dealt with the barriers. An important thing to consider if you chose to disclose a disability (e.g., depression) or self-identification (e.g., LGBTQ+) is that the Reviewers and Professors (including your potential advisor) will read and know about it. Carefully consider if this is something you are comfortable letting your future boss know and note that academia is not free from bias/discrimination.
- Self-Disclosure of Health Issues/Disability/Neurodivergence. If you had or continue to experience an impactful health-related diagnosis that has made your PhD journey challenging, you can write about it. For my undergraduate admissions essay I wrote about how my misdiagnosis of cancer at 14 made me want to become a Radiologist so I could read scans correctly and reduce misdiagnoses of future patients (I had a bone infection and my diagnosis was corrected two weeks later).
- Impact of Self-Identity. If you have been discriminated against or felt unwelcome due to your self-identity, you can discuss this. While race by itself cannot be explicitly used for admissions decisions in US colleges, applicants can self-disclose how their race has affected their life, e.g., feeling or being explicitly unwelcome in higher-level classes or robotics clubs. (Note: Race in the US is defined outside of Nationality/country of origin and is grouped into White, Black, Asian, American Indian, Hawaiian/Pacific Islander. Read more here.)
- Lack of Opportunities. Not everyone has equal opportunity to pursue a PhD due to financial status or where they grew up/went to school. If you attended an underfunded school or had to work to save up money for college or graduate school, you can discuss this. It’s good to let the Reviewer know what opportunities you had access to. For example, while I attended a college with great Professors, there was not the same level of research as there is at other universities. I had to apply elsewhere for a summer to get research experience, whereas students who go to undergrad at larger universities could do research in their own department. Also, if you had to work instead of doing research internships to be able to afford college or living expenses, you can disclose this.
Closing Thoughts and Resources
Your application is your story that has led you to pursue higher education. Never forget your motivation, and let that passion show through your application. Good luck!
Helpful Resources
- CSRankings: Computer Science Rankings In a PhD, the advisor is more important than the school ranking. I include this resource as a helpful way to find professors to research as potential advisors. This is often more up-to-date than school faculty pages.
- Professor Jason Eisner’s guide on how to ask for a letter of recommendation
- Statements of Purpose from current PhD students The best way to use this resource is to look at how they present their experience and motivations. Do not compare your application to theirs and be discouraged. Everyone is unique and has their own path to a PhD.
- Your network! Always ask friends, colleagues, and acquaintances for their thoughts and advice. Always ask EARLY and don’t wait until last-minute.