CMU MCDS
Program Overview
CMU is a top 4 CS school, and MCDS is a flagship program under the SCS school, which has always had very high recognition. SCS offers an extremely broad range of CS courses and specializations (ML, parallel computing, distributed systems, ML sys, compilers, OS, embedded systems...). If you can't find a course you want at CMU, you probably won't find it anywhere else. For those interested in research or transitioning to a PhD, there are many professors across different areas, so finding a matching advisor is never an issue.
MCDS has three tracks (System track, Analytics track, and HCI track). You'll be asked to select a track when applying, but it doesn't matter much since you can switch after enrolling.
If your undergrad was in DS/math, you can choose the Analytics track. If you want to do a career change to CS, you can switch to the System track after enrolling. However, based on unofficial data points, this program doesn't strongly prefer candidates with a systems background (e.g., if your background is in ML or DS, you may be a better fit and have a higher chance of admission).
When applying, you need to submit a video essay, and you also need to rank all programs you applied to within the SCS system on CMU LTI's portal (similar to ranking your first and second choice schools on a college entrance exam).
Admission Preferences & Data Points
Looking at 24 Fall, the program places significant weight on mainland China undergrad school prestige -- Tsinghua, Peking, C9 + other schools with strong CS programs. In 2023, the department received 1,099 applications, admitted 140, and 77 enrolled. For details, see: https://www.cs.cmu.edu/academics/masters/programs-comparison
Non-native English speakers are also required to submit language scores (e.g., students born in mainland China still need to submit TOEFL scores even if they completed a US undergrad). GRE is required.
Data points:
- UIUC CE undergrad, GPA 3.75
- ZJU-UIUC CS undergrad, GPA 3.9+
- C9 CS undergrad, GPA 3.9+, TOEFL 103, GPA top 3%, one top-tier conference publication
- SUSTech DS undergrad, GPA 3.8+, TOEFL 107, two US summer research + UCB exchange
- Emory math undergrad, GPA 3.97, multiple finance internships
- NTU EE undergrad, GPA 4.2/4.3, 1.5 years full-time at Microsoft
- MUST CS undergrad, GPA 3.83
- Indian student, VIT undergrad, GPA 9.41, multiple RA experiences
- UMich undergrad, GPA 3.99, internship at a small domestic company
Job Outcomes & Data Points
Notable placements include OpenAI Research Engineer, top quantitative firms, Databricks, Snowflake, etc.
- Tsinghua undergrad, author of Tianshou, GitHub 3k+ stars, landed OpenAI
- Indian student, undergrad, 2 years and 8 months full-time at Microsoft India, landed TikTok
- SJTU-UMich undergrad, landed Microsoft DS intern
- BUPT CS undergrad, landed Walmart DS intern
- UCSD CS undergrad, had previous small company internship, landed Qualcomm
- MUST CS undergrad, had small company internship, landed Apple
- 25 Summer Intern: Among those around me, all SDE candidates landed offers. I don't know much about MLE but the few data points I know also all landed. Some DS/DA candidates did not land offers.
- School advantages: Career Fair has many companies. Unicorns like Databricks and Snowflake especially favor CMU students, and in recent years NVIDIA and Apple have been aggressively recruiting MLE and systems-oriented developers at Career Events. For example, completing Operating System makes it easy to get recruited by Apple. I know several MSIN students who landed NVIDIA and Apple offers in this tough market without prior internships, relying on system projects. Many companies open dedicated application channels for students who took Database and Cloud Computing courses, and many students got recruited by small and mid-size database companies through this.
- School disadvantages: First, MCDS doesn't seem to have a clear advantage over non-SCS programs. Second, a few companies still use a quota system, making it harder for CMU students to land offers at those companies. Lastly, in my opinion, for non-systems SDE roles (roughly speaking, for those not working with Verilog/C/C++/Rust -- which unfortunately includes me), the title advantage and quota disadvantage of CMU cancel each other out (after all, Databricks did give me an interview). However, for MLE/Systems SDE roles, CMU provides a significant title advantage.
- Special note: MCDS's strong job outcomes are not because of the program itself, but because the program prefers to admit students with work experience and research achievements. While opportunities exist in the current market, aside from Meta and Amazon which still do campus-wide algorithm interviews, and Databricks/Snowflake which recruit from a very small number of target schools with algorithm interviews, most other companies large and small have shifted to team-based hiring -- essentially turning campus recruiting into experienced hiring. Therefore, landing an offer depends on whether you have competitive domain-specific experience. In other words, companies now screen not only for technical stack but also for industry experience. For example, if a candidate's domestic experience is writing Java in Fintech, 5 out of 10 interviews they receive in the US will be for Java roles in Fintech.
Other Useful Links
Must-read for MCDS students: n+e's blog
Course Reviews
- After Chain-of-Thought came out, course projects at all schools became either challenging or easy to coast through (except Cloud Computing). Therefore, the old issue of CMU's heavy workload hindering job search is a thing of the past. I actually think these courses that used to require 16+ hours/week are the ones that ensure students still learn something in the AI era. So I'll focus on course content and whether I think they're practical, without discussing workload.
- Course selection feels completely different between 3-semester and 4-semester tracks. With 4 semesters, regardless of your track, you can take basically everything you want (you could even complete two tracks). With 3 semesters, required courses take up too much of the schedule, and with CC plus fall recruiting, it's hard to fit in everything you want.
Required Courses
- FCDS: A great course that covers everything from LeetCode (Design In-memory File System) to data analysis to ML to cloud, well-structured. Very helpful for someone like me without a DS/ML background.
- 10601: Foundational ML course, a comprehensive survey of traditional ML algorithms. Exam difficulty varies by person -- those with strong math backgrounds will find it easier. I've heard it's essential for ML interview prep.
- MCDS Seminar: Light workload, opinions vary.
- 05839: After completing this, you develop a better understanding of various data views. Assignments have no coding difficulty and just involve calling various tools; actual workload < 2h/week.
- 15619: The famous Cloud Computing course. Overall assessment: a good course with comprehensive tech stack coverage. After completing it, you'll have a solid understanding of various cloud-related middleware used in industry, and it's very beneficial for System Design. As long as you secure an internship in the fall, I'd recommend taking CC instead of substituting with ACC. However, for students with hardcore internship experience (which is not uncommon), the experience of writing business logic forcefully inserted by Course Staff into course projects is a bit frustrating (I already write so much business logic at work -- I came to school to learn technical skills, and now I'm writing business logic again????). But the merits outweigh the flaws; overall it's a good course.
- Capstone Planner: Opinions vary. While many complain about it, for me personally, in the semester right before my internship, frequently having meetings, negotiating, communicating, and handling required docs was actually a good transition. For students with US work experience, it's purely a waste of time.
- Note: Starting with the class of '24, substituting CC with ACC is essentially no longer allowed.
Electives
- With 4 semesters, you can basically freely choose any SCS course. With 3 semesters, you can essentially only pick one direction between System and Analytics.
Cost
CMU is a private school, and tuition has never been cheap. Whether it's INI, ECE, or SCS, MCDS's three-semester tuition fee (tuition only, not including any additional expenses such as rent) is $84,550.
