David Yue

picture of me
  Blog

My Experience Applying to Computer Science Ph.D. Programs

Friday, January 31st, 2025

Applying to Computer Science Ph.D. programs was one of the most challenging—and rewarding—experiences of my life. In this post, I document my journey through the entire process: from researching potential advisors using CSRankings, to crafting personalized outreach emails, to writing a compelling Statement of Purpose with the strategic help of AI. I share practical tips on identifying research-aligned programs, approaching professors effectively, and strengthening your research profile—especially if, like me, your GPA isn’t perfect.

Applying to graduate school has been one of the most stressful experiences I’ve gone through. I decided to record my experience here in the hope that it might help anyone else walking the same path.

Background

I applied to Computer Science Ph.D. programs in the U.S. and Canada. If you’re applying in a different country or field, take my advice with a grain of salt—graduate applications can vary significantly across disciplines and regions.

Here’s my profile at the time of applying:

  • Education: Honours B.Sc. in Computer Science and Mathematics, University of Toronto
  • GPA: 3.25 / 4.0
  • Research Experience:
    • ~2 years at Huawei Technologies’ Big Data and AI Lab
      • 4 co-authored papers in Applied AI/ML (AAAI, SIGKDD, ICPR, SIGCSE, and 1 pending)
    • A few months in Computer Science Education research
      • 1 poster paper
    • An independent study on programming language interpreters and theory (final grade: 98%)
    • A personal compiler optimization project in progress

Step 1: Finding Schools and Advisors

I began my search for programs and potential advisors in January 2024. The most useful resource I found was CSRankings. It compiles publication data from major CS conferences by subfield and ranks universities based on research activity.

I was interested in compiler optimization, and identifying professors in that niche was tricky. Selecting Programming Languages alone surfaced many researchers focused on PL theory (which wasn’t my focus). After some trial and error, I discovered that choosing a combination of Programming Languages, High-Performance Computing, and Computer Architecture produced the best results.

My approach was simple: Go through CSRankings, open each school’s faculty links in new tabs, and review each professor’s research page. Check their recent publications (within the last 2–3 years) and see if their work aligns with your interests. Also note any instructions for prospective students—some professors specify not to email them, require a “codeword” in your message, or outline eligibility requirements.

I kept track of all this information in a spreadsheet, including each professor’s website, research area, and any contact guidelines.

Step 2: Contacting Professors

Some applicants suggest skipping professor outreach altogether. Personally, I recommend reaching out to every professor you’re genuinely interested in—unless they explicitly ask not to be contacted.

When emailing professors, keep your message short, specific, and personalized. Many faculty receive spammy, generic emails from applicants. To stand out, show that you’ve read their work. Reference one of their papers, summarize what you found interesting about it, and ask one thoughtful, constructive question.

Here’s the email template I used:

Subject: Prospective Ph.D. Applicant Interested in Your Research

Hi Dr. [Professor Name],

Are you accepting Ph.D. students for the Fall 2025 intake? I’m interested in applying to the Computer Science Ph.D. program at [School Name], focusing on [field of interest], and was hoping to list your name in my application this cycle.

I’m particularly interested in your [Research Group Name] and your work on [specific topic].

[Cite and briefly describe the paper you found interesting, and ask a short question about it.]

I’ve also been working on my own compiler project, where I built a custom IR, parser, and optimization passes. You can find it here: GitHub link. I also completed an independent study on compiler frontends under one of my professors: GitHub link.

I have about two years of research experience at Huawei Technologies’ AI Research Lab and several co-authored papers from that time. As requested, I’ve appended preprints of pending papers to my attached CV.

I hold an Honours B.Sc. (with Distinction) in Computer Science and Mathematics from the University of Toronto.

I’d be happy to chat if you’d like to learn more about my experience or research background.

Best regards,

David Yue

Step 3: Strengthen Your Research Profile

In your emails and application materials, highlight your research experience—where it took place, how long you worked there, and what you contributed.

From my own experience, research experience (and recommendation letters) carry far more weight than GPA. For instance, one professor initially told me my GPA made me an uncompetitive candidate. Two years later, after gaining substantial research experience, the same professor commented that I had “done well.” Another said I had an “impressive record.”

I’m not sharing this to brag, but to emphasize how crucial tangible research output is in Ph.D. admissions.

Step 4: Attach Supporting Materials

Always attach your CV when emailing professors. Include:

  • Your GPA
  • Published and pending papers (attach preprints if possible)
  • Key research experiences

You’ll also discover which professors are not taking students this year, allowing you to refine your list.

Final List of Schools I Applied To

  • MIT
  • Stanford
  • Carnegie Mellon University (CMU)
  • University of Illinois Urbana-Champaign (UIUC)
  • University of Texas at Austin
  • UCLA
  • University of Toronto (M.Sc.)
  • Purdue University
  • University of Washington
  • University of Utah
  • North Carolina State University (NCSU)
  • University of Alberta (M.Sc.)
  • Stony Brook University

Closing Thoughts

Many professors won’t respond to your emails—and that’s perfectly normal. You can’t predict who will reply or show interest, so it’s still worth reaching out to everyone whose research genuinely excites you.

Applying to grad school can be daunting, but being organized, proactive, and specific about your interests can make the process much more manageable. Hopefully, my experience helps make yours a little easier.

What if I don't have research experience?

In my most humble opinion, if you are trying to do a Ph.D. in the ML/AI area in the US, it is extremely competitive. Especially in this era of NSF cuts and unprecedented attacks on higher education institutions. Without prior credible research experience, you are unlikely to get in at any reputable school.

Tips for Writing Your Statement of Purpose

Use AI—strategically.

Yes, really. The best way to write your Statement of Purpose (SoP) is to use AI as a tool, not a crutch. Many schools (and even some professors) discourage using AI, but the key is how you use it.

An AI model can only work with what you give it. If you ask it to write a SoP from scratch, you’ll almost certainly get something generic or inaccurate. Instead, start by creating a detailed list of your research experiences. For each experience, include:

  • What the task or project was
  • What you did specifically
  • What you accomplished
  • What the outcome or result was

Once you have these bullet points, think about how they connect to the kind of research you want to pursue in graduate school—and how that aligns with the labs or faculty you hope to work with.

Now comes the smart part: guide the AI properly.

Upload this Statement of Purpose writing guide from Carnegie Mellon University, and then prompt the AI like this:

You are a Statement of Purpose writer. Read the following document for instructions on how to write a good Statement of Purpose.

After that, paste your bullet points and continue with:

Write a Statement of Purpose based on these bullet points and follow the instructions provided earlier.

Style Tips

Focus on what you did. Use active language—your sentences should start with “I did” or “I developed,” not “We.” Be concise, use plain language, and avoid vague or inflated phrasing (often called weasel words).

You can even instruct the AI to follow these rules directly by adding a simple prompt like:

Use simple language, be concise but detailed, and avoid weasel words.

Application Journal

On January 27th 3:32pm PST:

I received an offer of admission from the University of Utah Kahlert School of Computing Computer Science Ph.D. I was so happy as I was thinking that my low GPA would cause me to be rejected from everywhere. I made sure to make a reddit post about my excitement on r/gradadmissions. My tailored SoP is linked below:

[University of Utah SoP]

I was very pleased to be invited to the University of Utah's Grad Visit Weekend (Feb 20th - 23rd). Salt Lake City was absolutely beautiful—the mountains are so close it feels like you could walk from the city to the base in minutes. I also got to talk to some of the amazing HPC/Compilers faculty at Utah who I wish to work with.

Back in November 2024, to distract myself from the stress of applications, I decided to learn more about computer graphics out of curiosity and ended up writing a path tracer. I spent a lot of time watching YouTube lectures on path tracing by a professor whose explanations I really liked. As it turns out, he teaches at the University of Utah—so meeting him in person felt almost surreal after watching his videos for months.

Moments like this make me wonder if the universe had it planned all along. Maybe this is also why I sometimes feel like my achievements—few as they are—are just the result of sheer dumb luck.

I'm writing this on the plane back to Vancouver, and in just 3.5 days, I’ve already grown attached to SLC. Wish I could have stayed longer.

u of u plaque

I received an offer of admission from Stony Brook University. However, currently University of Utah ranks #3 for HPC/Compilers. It is likely that I will be declining this offer.

If you spot any errors, please report them to me