This guide was last updated on March 20th, 2025.
Disclaimers and Context
I am not an admissions officer! My name is Helen, and I am just a fourth-year student who applied and got accepted to a few master’s in CS programs in the United States. Hence, some quick disclaimers to start.
- This is not a checklist for what a competitive application needs to have — that’s up to each program’s admissions committee, and it may change over time and/or from year to year
- Everything below is based on my personal experiences, tips and advice I have received from other people, and my speculations about what makes an application successful
- I did not apply to PhD programs, so everything below is specific to master’s programs
Early-Stage Prep
This can happen anytime throughout your first 3 years of undergrad. It’s never too late to consider graduate school, but also never too early to start thinking about it!
How interested are you in grad school?
This is the most important question to ask yourself.
For those in their first or second year, if you are open to the thought of pursuing graduate studies, I would recommend keeping it as an option until you change your mind later. “Keeping it as an option” means treating your academic performance a bit more seriously, looking for research opportunities, and continuing to learn more about your interests and goals.
For those who are closer to graduating, your answer to this question should become more certain. At the latest, you should probably decide by the fall of your final year since I would advise against trying to apply to full-time work positions and graduate programs at the same time (doable but more stressful than necessary).
Gaining research experience
This is the most important component of a grad school application.
There’s not a minimum number as to how many project experiences you need to have — it’s more about the quality of your projects and the relationships you build with your supervisors.
However, more research experience can never hurt. Whenever you are looking to start a new project, I would recommend reflecting on how your past projects can be connected to this new project. This reflection process may help you determine whether to start the new project and (later on) write a more compelling statement of purpose (more on this below in the SOP section).
Some helpful campus resources to help you gain research experiences:
- Summer project with course credit: Research Opportunities Program (ROP)
- CS summer project with a monetary award: UTEA/UGSRP
- Project with CS course credit: CSC494/495
- Volunteer: individually reach out to professors, CS Faculty Directory can be a good starting point
- More insights on how to land research opportunities in the DCS Research in CS Guide
What about industry internships?
Gaining some industry experience is valuable on its own, but compared to research experiences, it is generally not as important to do internships unrelated to research (e.g., software developer intern). However, in the following circumstances, such industry internships can be helpful for applying to master’s programs.
- If you perform well as an intern, you can probably ask your manager for a letter of recommendation
- Industry internships may be important for programs that are more applied and care less about research
- Your career goal after a master’s is to work in some applied role in the industry
- You land internship offers at very competitive companies or firms
Feel free to take a look at the DCS Career Guide for more tips on how to land internships.
Program Research and Selection
When it comes to master’s in CS, there are a few different types of programs:
- Course-based: graduation requirements are exclusively courses, industry-focused, and people typically find a full-time industry job afterwards (e.g., Cornell Tech MEng in CS)
- Research-based: graduation requirements typically include a thesis (and some courses), academia-focused, people typically go into a PhD program afterwards (e.g., University of Toronto MSc)
- Part-time (for working professionals): course-based programs for people who work full-time in tech but also want to get a master’s (e.g., Georgia Tech OMSCS)
Some programs are also quite flexible and may offer all the options above for you to choose which path you want to pursue (e.g., Stanford MSCS).
Making your programs list
By around September, you should have a somewhat finalized list of programs that you are interested in applying to.
How long should this list be? Generally speaking, 5-10 is more typical for the size of the list with a good mix of programs that you think you will get in (safety), that you will likely get in (target), and that you may not get in but want to go (reach). However, this is not a strict limit, and your list depends on how certain you are about doing a master’s and how confident you feel. For instance, I applied to 3 programs, which is definitely on the lower end, but it made sense for my situation — I already signed a job offer, and there are very few programs I would consider attending compared to my job.
What are some other factors to consider when finalizing your programs list?
- Length of the program: if you are interested in finding a summer internship as a master’s student, a one-year program should probably not be on your list
- Extra funding opportunities: some schools may have graduate-level scholarships/fellowships that you can apply for at the same time as admissions to help fund your studies (e.g., Harvard Frank Knox Memorial Fellowship), so it may be beneficial to research these awards’ deadlines and requirements (if interested)
- Rec letter requirement: roughly make sure you will be able to satisfy this (more on this below in the Rec Letters section)
- GRE requirement (more on this below in the Standardized Testing section)
Standardized Testing
Some programs may require you to submit GRE scores. Most of the programs that I wanted to apply to did not require this, and some of them even refused to look at GRE scores altogether. I ended up not taking the GRE and thereby chose not to apply to any programs that required it.
GRE scores are technically valid for 5 years, so if you want to take this exam early and get it over with so that it doesn’t become a restriction on which programs you can apply to, that’s probably a good strategy too.
Letters of Recommendation
Generally speaking, most programs require 3 letters of recommendation (at least 2 of them should come from academic sources). Who to ask will heavily depend on your past experiences, but the strongest letters typically require more than “this person did really well in my class.”
How to build relationships beyond that with potential rec letter writers? Basically anything that gives you the opportunity to work with them on a closer level, which would help them get to know you better. Pursuing research projects, work-study opportunities, internships, TA-ships are all great examples. It’s totally normal if you need to ask a professor from one of your previous courses to get enough letters. In that case, it would benefit you greatly if you’ve been to office hours, stayed engaged during lectures, and/or did anything that demonstrated more of your qualities beyond your numerical performance in the class.
How to ask for rec letters? A few personal recommendations:
- Try to first ask either in-person or over a virtual meeting (make it a live conversation rather than an email)
- Use explicit language like “Would you be able to write a strong letter of recommendation for me?”
- Ask early (I personally asked throughout the summer)
- Be considerate of each rec letter writer’s time – some of them may only agree to write X number of letters, so clarify that with each person you ask (and if you are applying to more programs, you need to ask another person)
- Ask them what info you can provide to help them write a strong letter for you
- Feel free to follow up over email afterwards to confirm and give them more info
For more tips, check out this DCS guide on how to ask for rec letters! Professor Karen Reid also has some good insights about asking for rec letters on her page.
Resume/CV
My resume for master’s applications looks quite different from resumes that I have used for applying to internships/jobs. Specifically, I placed more emphasis on research experiences, related projects, (if any) publications, and past awards and honours. Overall, it was also longer in length (mine was 2 pages). Looking at graduate-level student resumes gave me a lot of ideas about what content would be helpful to include and how to structure a resume longer than a page.
I went through a lot of different versions, so my first version looks vastly different from my submitted version. I made my first draft in September, and I kept on editing until I made my submission in early December. I recommend any and all resume review opportunities to get opinions from people you trust!
Statement of Purpose (SOP)
Most programs give you around 2 pages (single-spaced, reasonable font size) to talk about your past experiences and why you are a good fit for the program. However, instead of a general SOP prompt, some programs may have a more specific, scoped question, so remember to read the requirements carefully and answer the right questions.
Start writing this early. Remember that your first draft will likely look nothing like your final draft, so give yourself time to go through different iterations and ideas. One of my biggest regrets is not getting more people to read my draft and give me feedback. I started writing my SOP a bit late (late October), so I only had the time to get a few people to review it. If you feel unsure about who to ask, I think it wouldn’t hurt to get feedback from any major collaborators who were involved with any experience/project you include in your SOP.
To start, I recommend making a list of all your past research and internship experiences (in chronological order) and then reflecting on how they can be tied together. Many SOPs read like a list of unrelated experiences, but a good SOP reads more like a narrative — a coherent story that demonstrates the development of an individual’s interests, skills, and goals over time. For me, this was the biggest challenge of writing the SOP, but looking back, I think it is also the key that makes an SOP more unique and memorable.
Beyond talking about your past experiences, remember to also link them to your future and your ambitions. In particular, you should spend a good chunk of space to emphasize why you are specifically interested in the program you are applying to. You will need to customize this part of your SOP for each specific program on your list. Examples of things to mention include interesting courses and research opportunities.
Personal Statement/Community Statement
Different from the SOP, this is a space for you to discuss some of your personal experiences. You can share any community contributions you made through extracurriculars, extenuating life circumstances or experiences core to your identity, etc. This may or may not be relevant to you - depending on the specific program, this statement may be mandatory, optional, or not an option.
As cliche as this is, try to be genuine and yourself! You want your personal voice to come through here. Also, remember that this should supplement the content in your SOP rather than repeating the same or similar content in different words.
Other Helpful Resources
- UofT DCS guide for grad schools
- Advice from MIT about writing the SOP
- Examples SOPs for PhD applications
- Masters advice from a former Stanford admissions committee member
Final Thoughts
Thanks for reading all the way down to here! I hope you found this guide helpful and wish you the best of luck with your applications! I have tried my best to provide perspectives based on what worked for me, but I am sure there are many ways in which this guide can be further improved. Email DCS ambassdaors if you have any comments or feedback! All thoughts are welcome, and I hope this guide continues to improve with more diverse, up-to-date perspectives to help more students in our community.