• Support PF! Buy your school textbooks, materials and every day products Here!

Computer science vs. software engineering

  • #1
thrill3rnit3
Gold Member
713
1

Main Question or Discussion Point

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
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
713
1
so considering I am majoring in Applied Math, which one would be a preferable 2nd major?
 
  • #4
thrill3rnit3
Gold Member
713
1
anyone?
 
  • #5
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,774
12
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
492
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
713
1
I'm probably more into software and programming than hardware.
 
  • #10
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
492
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
713
1
so CS has more math in it than SE? Because if yes, then that further solidifies my decision to go for CS
 
  • #13
492
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
713
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
713
1
by the way, what kinds of maths are involved in CS? I've heard linear algebra and number theory...
 
  • #16
492
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,774
12
When I think Linear Algebra, I think Quantum Mechanics.
Or Google's pagerank
 
  • #18
492
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,774
12
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
713
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
713
1
oops...didn't see that mgb physics already replied
 
  • #22
492
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
713
1
so is abstract algebra a required course in most CS curriculum?
 
  • #24
492
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
where on Earth does one use linear algebra in CS?
Computer graphics.
 

Related Threads for: Computer science vs. software engineering

Top