Computer science degrees emphasize theory, mathematics, algorithms, and research foundations; software engineering degrees emphasize applied development, team practice, requirements, and software lifecycle management. Both feed the same job market — median software developer pay was $130,160 in May 2024 (BLS) — and both qualify graduates for the vast majority of industry roles. CS opens slightly broader long-term options (research, AI/ML, graduate school, specialized roles); SE offers a more direct, applied path to product engineering positions. For most students the choice matters less than program quality and what you build outside the classroom.
Quick Verdict
If you want maximum long-term optionality — research roles, graduate school, AI/ML, quantitative finance, security research, or a path that lets you switch specialties later — choose computer science. CS gives you the strongest theoretical foundation, and that foundation transfers across every emerging area of computing.
If you know you want to build production software, you prefer applied work over proofs, and you're drawn to engineering team practice (requirements, architecture, testing, deployment), choose software engineering. SE programs are more deliberately structured around the realities of building software in industry, with explicit coursework in software process and team-scale design.
For most students at most schools, the choice matters less than program quality, ABET accreditation, what you build outside class, and whether you can intern at strong companies. A graduate of a well-ranked CS program and a graduate of a well-ranked SE program land at substantially the same companies for substantially the same first-job salaries.
$130,160
Median Software Developer Pay
17%
Software Developer Job Growth
300+
ABET-Accredited CS Programs (US)
~80
ABET-Accredited SE Programs (US)
What Each Degree Actually Teaches
A typical CS bachelor's program is theory-forward. The required core looks roughly like: discrete math, linear algebra, calculus, data structures, algorithms, computer organization, operating systems, programming languages (the theory of them, not just one), automata/computation theory, and one or two upper-division electives in areas like machine learning, computer graphics, distributed systems, cryptography, or databases. Programs accredited under ABET's Computing Accreditation Commission (CAC) must satisfy specific math and theory requirements that practical engineering programs do not.
The intellectual center of gravity is understanding why things work. You'll spend semesters on the theory behind systems you may never personally build — Turing machines, NP-completeness proofs, lambda calculus, the formal semantics of programming languages. The bet of a CS degree is that this foundation makes you adaptable to whatever computing looks like in 20 years.
A typical SE bachelor's program shares much of CS's early core (data structures, algorithms, computer organization) but pivots earlier toward applied software work. Required courses you'll see in SE programs that often aren't required in CS: software architecture, software requirements engineering, formal methods for software, software project management, software quality and testing, and a multi-semester capstone where teams build production-grade software for a real client.
SE programs accredited under ABET's Engineering Accreditation Commission (EAC) must include a substantial engineering-design experience — analogous to the senior design requirement in mechanical or electrical engineering — that integrates the full software lifecycle. The intellectual center of gravity is building things that work at scale, on time, with a team.
At most schools, CS and SE share 60-80% of their required coursework in the first two years. Students often only realize a school offers both degrees when picking their upper-division electives. If a school offers both, the distinction is real but not enormous; if a school offers only CS (more common), CS students typically take an SE elective track and reach a similar destination.
Computer Science vs Software Engineering: Side-by-Side
| Factor | Computer Science | Software Engineering |
|---|---|---|
| Core focus | Theory, math, algorithms, foundations of computation | Applied software development, lifecycle, team-scale practice |
| Typical math load | Heavier: discrete math, linear algebra, calculus, often statistics and proofs | Moderate: discrete math, calculus, less proof-heavy |
| Required capstone | Often optional; senior project varies by program | Usually required; ABET-EAC mandates a major design experience |
| Programming languages | Several, including theoretical ones (Haskell, Prolog, OCaml may appear) | Industry languages emphasized (Java, C#, Python, JavaScript) |
| Software process content | Light; may be a single elective | Heavy; multiple required courses on requirements, architecture, QA, PM |
| Graduate-school feeder | Strong: standard prerequisite for CS MS/PhD programs | Mixed: feeds SE MS programs and applied MS programs; weaker for research PhDs |
| Accreditation body | ABET-CAC (Computing Accreditation Commission) | ABET-EAC (Engineering Accreditation Commission) |
| Programs in the US | 300+ ABET-CAC accredited CS programs | ~80 ABET-EAC accredited SE programs |
| Salary at entry level | ~$87K average for recent CS grads (NACE/varies) | Similar to CS; same job titles, same employers |
| Long-term salary ceiling | Higher in research, ML, systems, security, quant | Higher in product-engineering leadership and software architecture |
How Employers See the Difference
There's a wide gap between what employers say they want and what they actually filter on. Both matter.
Google, Meta, Amazon, Microsoft, Apple, and similar tier-1 employers treat CS and SE degrees as essentially interchangeable for new-grad software engineer roles. Their hiring funnels test data structures, algorithms, and systems design — exactly the content both degrees teach. Internal recruiters rarely look at whether your degree says CS or SE; they look at your school, your projects, your internships, and your interview performance.
Companies hiring at scale for product-engineering teams (think: large insurance, healthcare IT, defense contractors, finance back-office) often have a mild preference for SE graduates because the curriculum more directly matches the day-to-day skill set those teams need (requirements work, architectural documents, formal QA processes). The difference is usually a few percentage points in callback rates, not a hard filter.
For research-track positions — ML research scientist, applied cryptographer, compiler engineer, distributed systems researcher, quantitative developer at hedge funds — CS is the strong default and SE is sometimes a disadvantage at the resume-screen stage. These roles require the depth in math and theory that CS programs are designed to provide and SE programs are not. If your goal is one of these career tracks, choose CS or supplement an SE degree with substantial graduate-level coursework.
Federal agencies, defense, and national labs treat ABET accreditation seriously. Either CS (ABET-CAC) or SE (ABET-EAC) satisfies most degree requirements; SE-EAC specifically counts as an 'engineering' degree for OPM purposes (the 0854 software engineering occupational series), which CS-CAC does not always. If you want to work at NASA, DOE labs, NSA, or as a software engineer for the federal government, ABET-EAC software engineering can carry slight procedural advantages.
Salary Outcomes by Path
The single most useful data point: the U.S. Bureau of Labor Statistics tracks software developers (occupational code 15-1252) as one role regardless of whether the holder has a CS or SE degree. Median pay was $130,160 in May 2024. The 10th percentile earned $77,020; the 90th earned $208,620. Most CS and SE bachelor's grads enter this distribution at the lower-middle and climb based on company tier, location, and specialization — not based on the words on their diploma.
For early-career CS bachelor's grads, NACE first-destination surveys put average starting salaries in the $85,000–$95,000 range across the last several years, with significant variance by school tier and metro. SE bachelor's grads track within a few thousand dollars of that range, with the bulk of variation explained by school and location, not degree label.
Where the degrees diverge in compensation is further out. CS graduates over-index in the highest-paying specialized roles: machine learning research scientist (often $300K-$700K total compensation at top labs), systems engineer at infrastructure companies, applied cryptographer, quantitative developer at hedge funds. SE graduates over-index in software architect and engineering management roles where the comp ceiling is high ($250K-$400K) but typically lower than the specialized CS-track ceiling.
Long-Term Career Trajectory
Five to ten years into a career, the original degree label matters dramatically less than it does at year zero. By mid-career, what you've actually built, the systems you've worked on, the teams you've led, and the technical depth you've developed in specific areas are nearly the entire signal.
That said, the initial degree shapes which doors open easily. A CS graduate who developed an ML specialization in school has a much easier time pivoting into AI/ML research roles than an SE graduate would, even with equivalent self-study, because the early-career hiring pipeline for research-track roles screens on coursework. Conversely, an SE graduate who developed strong systems-design and software-process skills has an easier time being trusted with technical leadership early, because hiring managers see explicit evidence of those skills on the transcript.
Graduate School and Specialization
Computer science is the standard undergraduate prerequisite for CS MS and PhD programs. If you might pursue graduate study in CS, machine learning, AI, or computer engineering, take CS as the undergrad and you'll satisfy every program's prerequisites without remedial coursework.
Software engineering MS programs and applied computing master's programs accept both CS and SE undergraduates. For a research-oriented PhD in computer science, an SE undergrad is workable but typically requires you to demonstrate equivalent math and theory background — either through additional coursework, strong GRE quant performance, or a research record from undergraduate work.
Accreditation: ABET-CAC vs ABET-EAC
ABET is the standard accreditor for computing and engineering programs in the US. Computer science programs are typically accredited by the Computing Accreditation Commission (CAC). Software engineering programs can be accredited by either CAC or the Engineering Accreditation Commission (EAC) — the EAC track is what makes an SE degree formally count as an 'engineering' degree.
Practical implications:
- Federal employment: Some federal software engineering positions (OPM occupational series 0854) require an ABET-EAC engineering degree. ABET-CAC CS does not always satisfy this requirement, though waivers and equivalency reviews are common.
- Professional engineer (PE) licensure: Software engineering PE licensure exists in some US states and territories but is rarely required for industry work. ABET-EAC is the standard educational prerequisite where it is required.
- Big Tech hiring: Accreditation is not screened. School reputation matters; ABET-vs-no-ABET does not.
- International recognition: ABET-EAC has stronger reciprocity with international engineering accreditation bodies (Washington Accord) than ABET-CAC has with international computing bodies.
Who Should Choose Computer Science
Choose CS if any of the following are true:
- You might want to pursue graduate study in CS, AI/ML, computational science, or computer engineering
- You're drawn to research-track roles (ML scientist, security researcher, distributed systems researcher)
- You want maximum long-term optionality across emerging computing areas
- You enjoy the theoretical side of computing — algorithms, math, proofs, abstract systems
- You're targeting quantitative roles in finance, applied cryptography, or specialized technical roles
- Your school does not offer ABET-EAC software engineering and you don't want to compromise on accreditation
Who Should Choose Software Engineering
Choose SE if any of the following are true:
- You know you want to build production software at industry scale and aren't drawn to research
- You want explicit coursework in software architecture, requirements, QA, and team-scale practice
- Your school has a strong ABET-EAC software engineering program (only about 80 exist in the US)
- You're targeting federal software engineering roles that require ABET-EAC accreditation
- You want the senior-design capstone experience that integrates the full software lifecycle
- You prefer applied work over proofs and theoretical computer science feels like a slog
Frequently Asked Questions
Related Guides
Data Sources
Median pay, job outlook, and employment projections for software developers (May 2024 data)
Searchable directory of ABET-CAC (computing) and ABET-EAC (engineering) accredited programs
Joint ACM/IEEE-CS recommendations defining computer science and software engineering curricula
National Association of Colleges and Employers data on starting salaries by major
Federal classification standard for software engineering positions
Taylor Rupe
Co-founder & Editor (B.S. Computer Science, Oregon State • B.A. Psychology, University of Washington)
Taylor combines technical expertise in computer science with a deep understanding of human behavior and learning. His dual background drives Hakia's mission: leveraging technology to build authoritative educational resources that help people make better decisions about their academic and career paths.
