Choosing the right college to attend can be a really daunting experience, since there are so many things to consider! My hope is that this post gives some clarity as to what CMU SCS has to offer to undergrads (and what it doesn’t), and helps you make an informed decision.

Note 1: Classes at CMU have IDs that are in the format of a 2 digit number followed by a 3 digit number. The 2 digit number represents the department (SCS’s department number is “15”, but if a class is meant only for SCS students, then the department number is “07”), and the 3 digit number is the class number. I will be referring to classes as such throughout this blog post. Additionally, you can find info about the classes that I mention by Googling “{class number} cmu”. Usually the class websites are the first results when you do this.

Note 2: The “CS core”, mentioned a few times in this blog post, is the set of CS classes that all computer science majors take at CMU. They include:

  • 15-151: Mathematical Foundations for Computer Science
  • 15-112: Fundamentals of Programming
    • Note: If you’re a CS major, you can get credit for 15-112 either by getting a 5 on the AP CS A test, or passing a placement exam in the summer before the academic year. In this case, you would take 15-122 during your first semester.
  • 15-122: Principles of Imperative Computation
  • 15-150: Principles of Functional Programming
  • 15-213: Introduction to Computer Systems
  • 15-210: Parallel and Sequential Data Structures and Algorithms
  • 15-251: Great Ideas in Theoretical Computer Science
  • 15-451: Design and Analysis of Algorithms

So, why CMU SCS?

Academics

CMU SCS has a lot of academic opportunity to offer. There are many upper level classes offered on many different topics within CS. You may not know that computer science isn’t just Java programming (AP CS A gang!), and instead consists of a variety of fields, including computational biology, algorithms, complexity theory, programming language theory, computer systems, human computer interaction, computer graphics, artificial intelligence, machine learning, natural language processing, computer security, computer architecture–I could go on and on.

CMU SCS provides opportunities to explore all of these subfields, both through the classes that you take, and through research. For instance, here is a outdated list of the classes offered by SCS (now there’s even more being offered!). Anecdotally, I’ve found that the course offerings satisfy a large majority of the student body’s interests within CS.

Currently, CMU SCS offers four bachelor’s degrees:

  • artificial intelligence
  • computational biology
  • computer science (with an additional major or concentration, see next paragraph)
  • human-computer interaction

Although the computer science degree sounds very general, all students who major in computer science are required to pick a concentration (think a minor, but in a sub-field of CS), minor, or additional major to complete at CMU. Essentially, you’re required to explore at least one area of study outside the general CS curriculum. Even if this may seem like extra work, I view it as a really good thing, since it provides excellent motivation to explore your academic interests.

You can find a list of computer science concentrations here. I’ve also compiled websites listing the minors offered per school below:

If this seems like an information overload, don’t worry! Students in SCS usually do not decide on their concentration/minor/additional major quickly–it takes usually 1-2 years for most people to decide, and you can do more than one! I had a lot of trouble deciding my concentration (I chose computer systems), but I eventually found that the decision came much more naturally than expected.

CMU SCS also offers a 5th year masters program for SCS undergraduates. This allows you to get two degrees in the span of 5 years! This masters degree allows students to expand their research horizons and prepare them for a PhD program. Typically, students in the 5th year masters degree program carry out research with a faculty advisor and take two CS PhD level classes per semester.

Research Opportunities

Another one of CMU SCS’s strong points is research opportunities. It’s easy to get involved with research as an undergraduate, and the administrators (thank you, Tom Cortina!) make this process even easier by emailing the SCS students a large Google Doc filled with research projects every couple of months or so. I got my first research opportunity by emailing professors mentioned on this Google Doc. There are also plenty of research groups that you can join. Professors are usually very willing to allow more students into their research group. Research at CMU can be counted as independent study course credit, or you can get paid as a research assistant.

There also is a course sequence (15-300 and 15-400) that specifically prepares SCS students for research. This sequence is usually taken in one’s junior year. One of the assignments in 15-300 is to find a research advisor and write a proposal on what you will be researching. Then, in 15-400 (Research Practicum in Computer Science), you carry out the project you proposed in 15-300.

You can also opt to do an Undergraduate Research Thesis your senior year. This is a two semester endeavor where you work closely with a faculty advisor to carry out research in a topic of your choice. More information on both independent study and the senior thesis is here.

Research opportunities are crucial if you are considering pursuing a PhD or research based masters degree after completing your bachelor’s. For those who don’t want to pursue post-bachelor’s education, research opportunities can also help your resume stand out to companies.

Industry Opportunity

Just having “CMU SCS’’ on your resume as an applicant for internships or entry-level positions makes you stand out. CMU SCS is recognized by many companies, including all of FAANG, as a top tier school. Some proprietary trading firms, such as Jane Street and Jump Trading, also recruit from CMU and pick a relatively large number of applicants. CMU SCS also distributes all student resumes so that companies can recruit you directly.

Although I’ll admit that the computer science internship job market is a crapshoot, your chances of getting an internship or entry-level job from the company that you want are relatively high if you go to CMU SCS. Many CMU students end up interning at big tech companies (if that’s your goal) and have the opportunity to intern at smaller companies of their choosing.

If you want to see for yourself, you can take a look at the following links:

TAing

TAing, or being a teaching assistant for a class, is my absolute favorite part of CMU SCS. You can be involved! You can help students! You can give back to your SCS community! You can work on course development, where you create material for the course you TA! And to top it off, TAing is a resume and grad school app booster (although that should not be the only reason you TA).

First, there are lots of opportunities to TA. Nearly all SCS classes will take undergraduate TAs. Some (such as 15-112 and 15-122), hire more than 40 TAs a semester, with most of the core employing 20-30 TAs a semester. There are just so many spots to fill that the demand for TAs is higher than the supply.

TAing is also a very enriching experience. You learn many soft skills from TAing, such as communication, public speaking, patience, and responsibility. Additionally, you can make a huge impact on students, befriend your fellow TAs and professor(s), and may even learn from your students (I certainly have).

During your first 1-2 years as a SCS student, you will mostly take the CS core, and since you can only TA a class after you’ve taken it (with very few exceptions), most of your opportunities for TAing a CS class will be the core. TAing a class in the CS core mostly consists of interactions with students. The CS core is difficult, and many students need lots of support from staff in order to do well. Therefore, your main responsibilities as a core class TA include holding office hours (scheduled times to meet with students and give course support) and recitations (TA-led review sessions of material).

However, there are some exceptions to this set of responsibilities. TAs in core classes also have the opportunity to work on course development for the class they TA. Course development responsibilities can span from creating new assignments, adding features/testing to assignments, and creating support material for students.

Later in your undergraduate career, you will have the opportunity to take and TA upper division elective classes. Upper division classes usually offer less student support (but this is okay, since students are more prepared to take them). As a result, TA responsibility for an upper-div class shifts to include more course development and less student support.

There are a few downsides to TAing. First, most TAs work about 10-20 hours a week, so it’s a sizable commitment in addition to classes. TAs are also not paid very much (about $10 to $13 per hour). Lastly, I would claim that TAing online is not an easy task, as communication to students often gets mangled in an online setting.

Compared to other colleges, which mostly offer TAing opportunities to graduate students, CMU SCS is an outlier in its unusually large number of undergraduate TAs. TA experience helps students stand out on job and graduate school apps, and is ultimately an extremely rewarding experience.

Tight Knit Community

The SCS community is a tight-knit, loving, and supportive one. I’ve found that most of the people I meet are kind, helpful, friendly, and interesting people. Although the stereotype of CS majors is that we’re arrogant and not very friendly, I’ve found that the CS majors I meet here are pretty much the opposite. Additionally, CMU SCS is a very small program, with about 200 students per class. This makes it easier to get to know your peers.

The SCS student community has really tried to stay in touch online. For example, there’s an active Discord server for CS and ECE majors to discuss computer science and any other topic. Organizations such as Women@SCS and SCS4All also hold student events (such as Among Us game night!).

Most professors here are friendly too. Back when school was not online (AAAAAAH), many professors would encourage students to talk to them as they pleased. In online semesters, professors really try to connect to students. For instance, both my databases and programming language theory professors held Q&A sessions after class where students could ask them anything. When I was anxious about the PL theory final, my professor even met with me individually the day before. These are just anecdotes from my online semester, but I’m certain many other SCS students have had similar experiences.

Free Food and Swag (when campus resumes existing)

I’ve found that the opportunities of obtaining free food and swag (most of my wardrobe consists of free company T-shirts) are wonderful at this school. Companies lure students in to their tech talks and recruiting events with free food and swag, and many student-led events also include free food. Additionally, Catherine Copetas, one of the SCS Assistant Deans, will sometimes place cookies and other goodies, including vegetable stress balls, outside her office (her office is on the 6th floor).

Why not CMU SCS?

Cost

The number one reason that most people do not choose CMU is cost. The estimated cost of attendance per year is $76,715. The averaged aid given is listed here. You can subtract the estimated aid you will receive to find how much CMU approximately costs. Alternatively, you can use the Net Price Calculator if you want a more specific estimate. Attending CMU is a large financial investment, especially if you do not qualify for much financial aid. You can make a good portion of the tuition back via high computer science internship salaries, but you shouldn’t count on it as a freshman/sophomore. Additionally, you will be able to pay off the cost of attendance pretty fast if you decide to go to industry.

Stress Culture

Stress culture is present at CMU, and a significant portion of the students struggle with self-esteem and/or mental health issues. This is true at all elite institutions, especially within CS. However, both the difficulty of CMU’s computer science curriculum and the varied background knowledge of admitted students exacerbates the problem. The SCS core curriculum is doable for some students with sufficient background and very difficult for others. Stress culture is most prevalent in the earlier years of the undergraduate experience. As you develop your own interests within computer science and gain more experience, your confidence will increase and you will likely be much less affected by stress culture. Additionally, completing most of the CS core places most students on similar footing. Having a strong support system (e.g. friends you can relate to and seek comfort from) can also help mitigate the effects of stress.

Less Startup Focused

CMU is noticeably less startup focused than other elite computer science institutions. In a ranking system designed to keep track of the universities that produce the most entrepreneurs (Pitchbook’s 2020 University Report), Carnegie Mellon ranks 19. On the other hand, Stanford ranks 1, Berkeley ranks 2, and MIT ranks 3. However, this seems more attributed to the college culture rather than the opportunities given by CMU to create and develop startups. There are ways to get involved in entrepreneurship at CMU, including Project Olympus, a startup incubator program that helps students and faculty turn their ideas and research into startups. There are also classes you can take on entrepreneurship, listed here. It’s also important to note that despite its small size, the CMU startup community is very supportive, connected, and inclusive.

Conclusion

I hope that this post gives you a lot more information about being a SCS student, and if you’re a high school senior, it helps make your college decision. Feel free to contact me if you have any questions or feedback!