Read full review“… There are many job events, info sessions, and alumni chats, so you can learn how hiring works and get referrals. In Los Angeles, there are many startups and tech teams, and USC also has strong links to big companies. Many students land internships during the school year or in summer, then turn them into full time offers. Overall, USC CS feels busy and competitive, but the resources and the network make the effort worth it.”
Difficulty
Moderately challengingSeniors rate it hardest
3.5/ 5
Share of students at each rating
Average difficulty out of 5, by class year
Overall average 3.5 of 5Based on 349 students across 56 schools.View review makeup
What makes this major demanding?
Worth it?
85% would recommend it
Read full review“Computer science relies less on mathematics (unless you start getting into data science and machine learning) than I had originally thought. While I would choose this major again, I wouldn't recommend those future student who don't enjoy problem solving, for sometimes hours on end, to pursue computer science. Moreover, it's imperative that people learn that computer science as a major appears to be fading out (as its own career) and is more a skill. …”
Many students weren’t fully sure when they chose Computer Science.
Read full review“There are many things I wish I knew before I started CS. One of the main things is that I focused too much on academics to the point that I never made time for the more important things like leetcode, clubs, interview prep, etc and by the time I realized my mistake, two years had passed. I felt very behind my peers in that aspect and since then I have worked towards catching up with them. My advice is that get started early with things like that.”
Read full review“It made me more innovative and exploratory to using ai and creating new things.”
Compare majors
Compare with Computer Science
Suggested instead
Alternatives named by students who wouldn’t recommend Computer Science.
- Less math
- More writing
- Stronger career outlook
- Stronger career outlook
- More enjoyable
- Heavier workload
- More writing
- Lighter workload
Studied together
- Computer ScienceFinance2 students
- Computer ScienceApplied Math1 student
- Computer ScienceFilm and Media Studies1 student
Student paths
How students switch into and out of Computer Science
14%of current students switched in (42 of 298 answers to this question)
≈8%of those who started here left
Came from
Share of switchersWent to
Share of leaversWhere do students want to go?
Explore more interests
Select an interest to hear from students.
Is grad school part of the plan?
Will they stay in this field for grad school?
- Yes — continuing in a related field86%
- They’re not sure yet14%
- Not sure yet55%
- Not planning to30%
What you will study and do
Curriculum and careers
Computer Science delves into the theory, development, and application of software and systems. Students learn programming, algorithms, data structures, and the principles of hardware design to solve complex problems.
Core course themes
Introduction to Programming
Covers fundamental programming concepts and problem-solving techniques using languages like Python or Java.
Data Structures and Algorithms
Focuses on the organization of data and the algorithms that manipulate them, crucial for efficient software development.
Operating Systems
Explores the design and function of operating systems, including processes, memory management, and file systems.
Computer Networks
Introduces the principles of computer networking, including protocols, architectures, and data transmission.
Database Management Systems
Covers the design, implementation, and management of databases, emphasizing SQL and data modeling.
Software Engineering
Examines the methodologies for designing, developing, testing, and maintaining software systems.
Common roles
- Software Engineer
- Data Scientist
- Systems Analyst
- Web Developer
- Network Administrator
Why salary figures are not shownSalary data appears only when its source, geography, occupation mapping, and date can be verified.
Computer Science by school
Scores account for sample size- Career outlook
- 3.9
- Enjoyment
- 3.8
- Recommend
- 89%
- Career outlook
- 3.6
- Enjoyment
- 4.0
- Recommend
- 80%
- Career outlook
- 3.1
- Enjoyment
- 3.7
- Recommend
- 80%
- Career outlook
- 3.2
- Enjoyment
- 3.6
- Recommend
- 83%
- Career outlook
- 3.7
- Enjoyment
- 3.1
- Recommend
- 80%
- Career outlook
- 3.4
- Enjoyment
- 3.5
- Recommend
- 79%
- Career outlook
- 3.6
- Enjoyment
- 3.7
- Recommend
- 92%
- Career outlook
- 4.0
- Enjoyment
- 3.9
- Recommend
- 92%
Community
Big questions in Computer Science
Go beyond ratings and ask students about the decisions, tradeoffs, and experiences that matter to you.
Loading community questions…
Student reviews
Overall, I think Computer Science is a great fit if you're aiming for a high‑paying career. But what you learn in school alone — theory, algorithms, and systems — isn’t enough for today's market. Employers expect practical coding skills from day one. That’s why CS majors must be proactive—building side projects, mastering version control and DevOps tools, and studying new languages and frameworks beyond coursework.
As a USC CS student, I like how the program balances theory and real projects. The classes are fast paced, but they feel useful, and many courses connect to what companies use in practice. It is also easy to find a lab, a team, or a project group if you want research or hands on work. Career support is a big plus. There are many job events, info sessions, and alumni chats, so you can learn how hiring works and get referrals. In Los Angeles, there are many startups and tech teams, and USC also has strong links to big companies. Many students land internships during the school year or in summer, then turn them into full time offers. Overall, USC CS feels busy and competitive, but the resources and the network make the effort worth it.
- In my observation, the difficulties of CS courses in UIUC could be reached at least TOP 10 throughout all colleges in the US. These courses are designed to those who are proficient in CS basis. So, be hard-working, be confident!
- The elementary-level CS courses in UIUC are usually difficult and project-based, since they also work on filtering the candidates who can transfer to CS-related majors. Yet, these courses will be much easier in 400-levels. So don't worry about any of your graduation problems - Just roll on.
- Please think about your specific future directions after graduation. Most people like to choose one of the following: becoming a software engineer, finding for a PhD in AI/Algorithms/Discrete Math (aka Theoretical CS)/etc., or doing some Quant Finance if he/she is also strong in math. Please find the relative summer research programs or internships starting from your Freshman year. Once you get a job, you don’t need to worry about money (theoretically)!
The curriculum itself is really helpful for introducing programming and very theory heavy, however there aren't many courses that focus on what you'd actually be doing in the software engineering industry. Overall it's a great experience and there are outstanding professors here, but if you want to break into industry, you need to do a lot of work outside of curriculum, mainly clubs and personal projects will help you with recruiting.
The class quality is not bad, it's pretty good and definitely manageable. However, they have almost the bare minimum of a CS curriculum. They've recently started getting more variety of classes like computer vision and compiler construction, but it's still missing a lot of different topics like security or networking. Since Emory's not a target school, it's difficult in the job market. Emory also lacks a huge CS community or alumni network that can be helpful during recruiting. On the flip side, this means every student has a ton of opportunities to make great impact through club leadership or research labs because there's always space for more CS students. The people are great and very supportive. Essentially, it's really what you make of it and you can succeed in this field from Emory.
Switched from Biology(Biological Sciences)
The most surprising aspect has been the realization that the gap between academic research and industry engineering is smaller than I thought, but the focus is fundamentally different. In industry, the goal is often "make it work, make it fast, make it reliable." In academia, the challenge is often "make it provable, make it generalizable, and make it explore the unknown." Transitioning between these two worlds—like moving from building production-grade Kubernetes agents (InfraPilot) to exploring multi-agent solutions—has shown me that the best engineers are the ones who can synthesize both perspectives
I’m specifically a Computer Science Games major, so I have more projects and less math, which could be why I find it more manageable. The projects are more time-demanding, and there are especially a lot more group projects.
USC offers a comprehensive CS curriculum with strong core coverage (algorithms, systems, AI, machine learning, databases) and numerous electives across areas like machine learning (CS 467), cybersecurity, data science, and robotics (CS 499).
studying cs at ucla has been a lot more hands-on than I expected, especially getting into systems and low-level stuff. I’ve liked figuring out how things actually work under the hood instead of just using high-level tools. It’s been challenging, but being around people who are building cool things makes it really motivating.
At UCLA is a very theoretical major compared to other schools but it gives you a broad overview of a lot of different topics within Computer Science. More often than not I felt like I was taking classes that I honestly did not need whatsoever for my career I was planning to go into (Software Engineering), like Physics and Microprocessors and that made it difficult to stay motivated and do the work, but the classes that really applicable like Software Construction and Data Structures were fantastic. The connections are also really great here for Computer Science, everyone in the major is super smart, but you really have to fight for them and put yourself out there.
Machine Learning and Data Mining were some of the most demanding classes I’ve taken at Emory because understanding the math behind each model took real effort. It was rewarding to apply that work in a project where I used decision trees and random forests to predict which courses would fill up with waitlists.
- Interested in Tech & software · Arts & media
Because computer science is in the engineering school at UCLA we are required to take heavy mathematics, physics, and electrical engineering classes. That being said, I was able to secure an internship at NASA and get internships at Amazon, IBM, TikTok because of the value and weight of my major and acknowledged course rigor. Additionally, computer science has provided me with a strong background in mathematics, computer fundamentals, and engineering concepts. It is an ABET accredited degree and I've been able to be relatively successful. It is quite stressful but alas that is what a college degree sometimes comes with.
Data structures were the hardest for me. Coming from design, AVL rotations and B-tree splits didn't click until I realized balancing a tree is a design problem: shaping a structure so it holds up under anything. GLSL shaders were similar: tough math, but it's where design and code meet.
- Interested in Tech & software
The theory-heavy classes (DSA, ML, etc.) are extremely mentally demanding, but the application classes make up for it by throwing you into real world scenarios that help stack your resume and prepare you for post-undergrad life
Computer Science at UCLA is pretty chill all things considered. Major classes are easy to get since we have priority over other students, and typically a large percentage of class is made up of projects, so getting good grades isn't too difficult. The professors are overall somewhat interesting, and the basic classes teach good foundations for interviews.
Make the next decision
Compare the evidence—or improve it.
Put Computer Science beside another major, or share the experience future students need.
