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

In summary: I'm not too worried.In summary, computer science majors learn the theoretical aspects of computing, while software engineering focuses on the practical aspects. There is a lot of overlap between the two programs, but CS students usually take additional math courses and focus on programming, while SE students focus on industry placement.
  • #1
kramer733
323
0
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?
 
Physics news on Phys.org
  • #2
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.
 

1. What is the main difference between a computer science and software engineering major?

Computer science focuses on the theory and fundamentals of computing, including algorithms, data structures, and programming languages. Software engineering, on the other hand, is more practical and focuses on the design, development, and maintenance of software systems.

2. Can computer science majors become software engineers and vice versa?

Yes, computer science and software engineering majors can often overlap and prepare students for both career paths. However, computer science majors may need to supplement their education with additional courses in software engineering to be competitive in the job market.

3. Are there any differences in the courses and curriculum for these majors?

While there may be some overlap in courses, computer science majors typically take courses in mathematics, algorithms, and computer hardware, while software engineering majors focus more on software design, testing, and project management.

4. What types of jobs can computer science and software engineering majors pursue?

Computer science majors can pursue a variety of jobs in software development, data analysis, and research. Software engineering majors are typically more focused on software design and development roles, such as software engineer, systems analyst, or project manager.

5. Is one major considered better than the other for a career in the tech industry?

Both computer science and software engineering majors are highly valued in the tech industry, and it ultimately depends on an individual's interests and career goals. However, some companies may prefer one over the other, so it's important to research the specific job requirements and skills needed for a particular role.

Similar threads

  • STEM Academic Advising
Replies
1
Views
439
  • STEM Academic Advising
Replies
23
Views
3K
Replies
2
Views
931
  • STEM Academic Advising
Replies
3
Views
819
  • STEM Academic Advising
Replies
3
Views
405
  • STEM Academic Advising
Replies
6
Views
1K
  • STEM Academic Advising
Replies
8
Views
1K
  • STEM Academic Advising
Replies
4
Views
973
  • STEM Academic Advising
Replies
3
Views
784
  • STEM Academic Advising
Replies
15
Views
1K
Back
Top