Computer science vs. software engineering

  • #1
thrill3rnit3
Gold Member
716
1
What is the fundamental difference between the two? Sorry for my ignorance but I was just wondering :smile:

I'm planning to do a 2nd major with Applied math and cs/se, if that helps.
 

Answers and Replies

  • #2
samspotting
86
0
Computer scientists know how to write very efficient and complicated software.

Software engineers design, and execute the software development life cycle from an engineering perspective.

Both can do the either ones job.
 
  • #3
thrill3rnit3
Gold Member
716
1
so considering I am majoring in Applied Math, which one would be a preferable 2nd major?
 
  • #5
Dakure
4
0
So after reading the topic of the thread, I too became interested in what the difference was, and after Googe-ing things and reading articles, this might explain some differences in Computer Science and Computer Engineering, referred to as CS and CEN in the article, respectively.

The link to the article is: http://www.eng.buffalo.edu/compscie_vs_compeng.php"

Scientists and engineers are both interested in the nature of things, in understanding how ideas and objects in the world fit together. But in general, they seek to understand the nature of reality with different ends in mind: the scientist seeks this understanding as an end in itself, the engineer in order to build things. Thus CS is closer to the underlying theory of computation, with its roots in mathematics, and CEN is closer to the design of physical devices, with roots in physics and chemistry as well. Students with an urge to build things, to measure how things work in the laboratory, those attracted to physics and chemistry as well as mathematics, should seriously consider CEN. Students with an interest in the true nature of symbols, information and their manipulations, the forms and limits of algorithms and data structures, should consider CS. Of the three great divisions in computing, namely theory, software and hardware, to a first approximation theory goes with CS, hardware with CEN, and software with both, but mainly with CS. The more general the software, the closer to CS; the more hardware-specific, the closer to CEN. Thus a student interested in creating his own new general-purpose computer language would best be served by a CS degree program, while one interested in designing a software interface for a new high speed serial device by the CEN degree program. Students undecided between the CS and CEN programs are urged to discuss the matter in depth with academic advisors within the CSE department, the College of Arts and Sciences (which administers the CS programs), and the School of Engineering and Applied Sciences (which administers the CEN program).

On a side note, have you considered earning a degree such as Computational Mathematics or a degree in Mathematics, pure or applied, with a Specialization in Computing?
I believe I also replied to your UCLA's Scholar's thread and UCLA offers both Mathematics of Computation (which allows you to take upper division courses in the Engineering school) and a Specialization in Computing which can be added to any Mathematics major except Mathematics of Computation.

Of course UCLA isn't the only school to offer that type of major or specialization. If I recall correctly quite a few of the UCs have similar programs. And even non-UC schools such as Stanford and USC.
 
Last edited by a moderator:
  • #7
mgb_phys
Science Advisor
Homework Helper
7,819
15
What is the fundamental difference between the two? Sorry for my ignorance but I was just wondering :smile:
In theory there is a big difference.
CS is maths, the study of language design/algorithms and lots of linear algebra
SE is engineering, systems design, specific languages, project management, real world usage.

In practice it probably depends on which term was fashionable when the course was setup, , how much difficulty they have attracting students, and which faculty teaches it.
You need to look at the specific syllabus and decide how well the actual courses match your interest.

You might want to check if the course is accredited to any of the engineering bodies if that's important in your country - you might be able to count it toward a CEng/PEng, a CS course probably wouldn't.
 
Last edited:
  • #8
AUMathTutor
494
0
In my experience, a lot of CS and SE curricula are basically the same, differing mostly in distribution requirements and allowed electives, with perhaps a wildcard course thrown in for good measure.

CS is the theory of how things are computed, what things can and can't be computed, and how to compare various ways of computing things. This is a little different from mainstream mathematics in that one is not always necessarily concerned with computing in mathematics. CS is based firmly on mathematics and involves rigorous proofs, logic, and everything that goes with it.

SE is much more like a traditional engineering discipline. Mechanical or electrical engineering is to physics as software engineering is to computer science. However, SE is much closer to CS than ME is to Physics. SE focuses on how the ideas and concepts from CS can be applied to solve real-world problems.

In practice, like I said, CS and SE programs are largely overlapping. You should be alright in either.

* SE may require more hardware classes. If you're mathematically inclined, this may be something to take into account... you either love hardware or hate it.
 
  • #9
thrill3rnit3
Gold Member
716
1
I'm probably more into software and programming than hardware.
 
  • #10
asdfggfdsa
7
0
In that case, CS would probably be the best way to go. You can always take a few SE classes on the side. FYI, as a math/CS dual major, I hated the pair of hardware classes I took.
 
  • #11
AUMathTutor
494
0
*Same here. Math / theory / software inclined, hates hates hates the hardware. I can do it, and so can the other theory people, but that doesn't mean we have to like it.
 
  • #12
thrill3rnit3
Gold Member
716
1
so CS has more math in it than SE? Because if yes, then that further solidifies my decision to go for CS
 
  • #13
AUMathTutor
494
0
"so CS has more math in it than SE?"

Yes... but like I said, enjoying mainstream mathematics does not necessarily mean you will like CS as much. You get a different flavor.
 
  • #14
thrill3rnit3
Gold Member
716
1
"CS is the theory of how things are computed, what things can and can't be computed, and how to compare various ways of computing things. This is a little different from mainstream mathematics in that one is not always necessarily concerned with computing in mathematics. CS is based firmly on mathematics and involves rigorous proofs, logic, and everything that goes with it."

that's good enough for me I guess :smile:
 
  • #15
thrill3rnit3
Gold Member
716
1
by the way, what kinds of maths are involved in CS? I've heard linear algebra and number theory...
 
  • #16
AUMathTutor
494
0
Logic
Graph Theory
Combinatorics
Formal Languages
...

And the comment about Linear Algebra was interesting. Maybe I'm just brain-farting, but where on Earth does one use linear algebra in CS? I mean, except for implementing code based on linear algebra, for instance matrix operations and such things... In my mind, Abstract Algebra has a lot more to do with CS than Linear does. When I think Linear Algebra, I think Quantum Mechanics.
 
  • #17
mgb_phys
Science Advisor
Homework Helper
7,819
15
When I think Linear Algebra, I think Quantum Mechanics.
Or Google's pagerank
 
  • #18
AUMathTutor
494
0
"Or Google's pagerank "

Alright, granted. But the point stands that Linear Algebra isn't really a fundamental area of CS, even if it can be applied by software designers to solve certain computational problems. Like I said, maybe I'm just overlooking something.
 
  • #19
mgb_phys
Science Advisor
Homework Helper
7,819
15
Yes it's useful for problems in correlations

I probably should have said abstract algebra. Linear algebra is mainly taught as an easier to visualise example of abstract agebra
 
Last edited:
  • #20
thrill3rnit3
Gold Member
716
1
Logic
Graph Theory
Combinatorics
Formal Languages
...

And the comment about Linear Algebra was interesting. Maybe I'm just brain-farting, but where on Earth does one use linear algebra in CS? I mean, except for implementing code based on linear algebra, for instance matrix operations and such things... In my mind, Abstract Algebra has a lot more to do with CS than Linear does. When I think Linear Algebra, I think Quantum Mechanics.

here

In theory there is a big difference.
CS is maths, the study of language design/algorithms and lots of linear algebra
SE is engineering, systems design, specific languages, project management, real world usage.

In practice it probably depends on which term was fashionable when the course was setup, , how much difficulty they have attracting students, and which faculty teaches it.
You need to look at the specific syllabus and decide how well the actual courses match your interest.

You might want to check if the course is accredited to any of the engineering bodies if that's important in your country - you might be able to count it toward a CEng/PEng, a CS course probably wouldn't.
 
  • #21
thrill3rnit3
Gold Member
716
1
oops...didn't see that mgb physics already replied
 
  • #22
AUMathTutor
494
0
"I probably should have said abstract algebra."

I 100% agree that Abstract Algebra has direct and serious connections to CS. Inasmuch as Linear Algebra is related to Abstract Algebra, and in that Linear Algebra can be used to solve certain problems in a way that lends itself to computation, then yes, Linear Algebra is related to CS. I definitely think that Abstract Algebra more generally has a lot more to do with CS, though.
 
  • #23
thrill3rnit3
Gold Member
716
1
so is abstract algebra a required course in most CS curriculum?
 
  • #24
AUMathTutor
494
0
"so is abstract algebra a required course in most CS curriculum?"

Not per se, no. Many CS majors do end up taking it, however. Those who don't take the math dept.'s version of the course get mostly "trickle down" Abstract Algebra in the form of data structures and formal languages.

I think that most theoretical computer scientists involved in research have some formal training in Abstract Algebra. I might be wrong.
 
  • #25
asdfggfdsa
7
0
where on Earth does one use linear algebra in CS?

Computer graphics.
 
  • #26
asdfggfdsa
7
0
Those who don't take the math dept.'s version of the course get mostly "trickle down" Abstract Algebra in the form of data structures and formal languages.

Not really. Data structures is fundamentally about how algorithms reflect the underlying data structure, Languages is fundamentally about the capacity of programming languages to express computation.
 
  • #27
Cantab Morgan
261
2
Computer science, like Biology or Mathematics, is the study of nature. Specifically that branch of nature concerning algorithms, processes, and information. It can be very abstract & academic, but it's especially rich in applications. I think Dijkstra remarked that computer science is to computers as astronomy is to telescopes. The computer scientist sees the computer as a tool, through which one discovers truths about the universe. Some have remarked that just as computer science is not about computers, it is also not a science. But I don't hold that view. It is no less a science than is Mathematics.

Software engineering is the study of human organization, emphasizing how to marshall technology to solve problems. Programming is fundamentally a human activity, with a few or a great many humans working in concert. The software engineer is asked to find the harmony among budgetary limits, political constraints, heterogeneous skill levels, and deadlines. Remember, engineering is not a science, and engineering decisions are seldom if ever made scientifically. A command of technical issues is essential for a software engineer. But over the long haul of a career, the soft skills of persuasion, effective communication, and team building will prove at least as important.

Whimsically, the computer scientist gets paid to solve yesterday's problem with tomorrow's technology, while the software engineer gets paid to solve tomorrow's problem with yesterday's technology.

About 20 years ago, a Nobel laureate in Physics remarked that in a hundred years Computer Science will finally be recognized as a subdiscipline of Physics. I think it would be interesting (given the work of Stephen Wolfram) if the opposite turned out to be true.
 
  • #28
thrill3rnit3
Gold Member
716
1
subdiscipline of physics? interesting...
 

Suggested for: Computer science vs. software engineering

Replies
6
Views
11K
Replies
4
Views
4K
Replies
4
Views
10K
Replies
5
Views
5K
Replies
15
Views
32K
Replies
29
Views
132K
  • Last Post
Replies
4
Views
939
Top