What is the difference between a computer science and software engineer major?

  • Programs
  • Thread starter kramer733
  • Start date
  • #1
So my friends try to explain it to me and everytime they do, i come to the conclusion that they're the same. I just don't understand. If somebody studies computer science, what do they learn? If somebody studies software engineer, what do they learn?

Answers and Replies

  • #2
Staff Emeritus
Science Advisor
Insights Author
The Association for Computing Machinery, the Association for Information Systems, and the IEEE Computer Society have jointly identified five different curricula for education related to computing. You've mentioned two of them. In alphabetic order, an in-a-nutshell view of these curricula are
  • Computer Engineering - How to build computer systems.
  • Computer Science - How to program computers from a theoretical perspective.
  • Information Systems - How to take advantage of computers in a business environment.
  • Information Technology - "My email isn't working. How do I make that 'a' with a circle around it?"
  • Software Engineering - How to build complex software systems.

A bunch of problems arose as people began building ever more complex software systems: The systems cost a whole lot more than initially planned, they didn't work as planned when released, and they were hard to maintain. Some computer scientists began working with systems engineers to address these issues. The result became a discipline of its own, software engineering.

Computer science majors and software engineers have a lot of common basics that are covered in the first year or two of an undergraduate career. After that the disciplines diverge. Software engineers learn about cost estimation, verification and validation, software quality, software lifecycles, and other things that most computer scientists just don't learn.
  • #3
Computer science:
Concentrates on the theory of computing. For example algorithms, mathematical aspects, algorithm efficiency, data structures, AI, discrete maths, predicate logic.
Software engineering:
Concentrates on software development methodology. For example testing, different methodologies eg. waterfall, agile etc., project management.
There is a lot of overlap between the two, especially in the first year subjects. Comp sci will then go on to specialise while software eng will focus on building large scale systems.
  • #4
Loosely speaking, computer science is to software engineering as physics is to most other engineering fields.
  • #5
There's a big problem with schools nowadays in that they don't actually distinguish between the two. Most schools have a computer science major, and sometimes that translates directly to software engineering. They're not the same and they shouldn't be. Computer science is more of a branch of mathematics than anything else, and most computer scientists don't really need to be badass programmers to do their jobs well. Conversely, software engineers don't need to be extremely well versed in combinatorics or something.

To find out what sort of program you're talking about here, you can look at the classes and the department. Is computer science part of the math department, IT dept., or engineering? Does a certain school even have software engineering as a major? Are CS majors required to take combinatorics, graph theory, number theory, cryptography, and other discrete mathematics classes?

To answer your question directly, software engineers primarily focus on getting a product out (in software obviously) using the engineering process. A computer scientist works in the theoretical realm most likely, and usually does R&D research on a variety of topics that may involve applications of certain types of mathematics to solve problems. For example, graph theory is used a ton in networking and there are people that are always trying to find out how to make information flow better and faster around the world. They're not the ones actually implementing the software or the infrastructure or anything like that, that's left to the IT and software engineering guys.
  • #6
The focus of computer science students is to understand the theory behind computing. A CS degree provides students the skills necessary for a variety of jobs that include software development, programming, network administration, and database management to name a few. Software engineering, on the other hand, deals with learning to create software or applications for end users.

Why don’t you go through the details of both programs to learn more about what the curriculum of each looks like?
Last edited by a moderator:
  • #7
At my uni, the CS and SE courses are identical but the SE students do a full year of industry placement, whereas the CS students take a major from (Network Programming, Security/Crypto , Games, Apps, Maths) and a few extra CS electives.

So we all do Algorithms & Data Structures, Theory of Computing, Programming, Discrete Maths, Database, Operating Systems, etc ... but a CS student will probably do at least one extra maths course, a bit more theory in field of choice and some more specialised programming, whereas a SE student will dive straight into a work placement.

I'm doing CS. I'm a touch worried that I won't have the kind of hands-on work experience that a SE student will have after completing a year of industry placement, but I'm enjoying my major and working on a few things in my own time to fluff out my resume a bit when I finish.
  • #8
Computer Science is present differently by different universities. You will see that some universities have a CS course that mirrors another universalistic SE course .

I don't think you should have mindset of SE or CS. I think you should research the course content of the universities (Be it a CS or SE course) and pick it based on that alone.

If you pick a CS course the divide doesn't stop there for example you could come across this situation

University A = Heavily Based on AI

University B = Based on SE concepts

University C = Based on theoretical computer science

it took me hours to decided what university I wanted to go to. I made sure I picked a course that was a mixture of both applied and theoretical.

Related Threads on What is the difference between a computer science and software engineer major?