I am wondering what the difference is. So far what I think is correct is that software engineering is more user oriented, and less efficiency oriented, while computer science is more computer orientated, and focuses on using memory the most efficient way. This is important in bigger projects such as games, and large software. Am I right? If not, what is the difference?

Recommended Answers

All 12 Replies

Well one thing is for sure and that is Computer Science is theoretical and Software Engineering is absolute.

Let me start off with a quote. "A scientist builds in order to learn; an engineer learns in order to build." — Fred Brooks

To me, in a nutshell, a CS major is more math and theoretically oriented, while a SE is more of a "let's get shit done" major.

I want to do programming (and programming classes) and the SE major from the U of MD offers WAY more programming classes than the CS major does. I was nearly tempted to take the SE major...but...after researching it seems as though the SE major isn't as respected as the CS major. That doesn't mean it's not, it's just what peoples reactions that i've found tend to be. On top of that, if your a CS major, you could do just about anything in IT. When employers (mostly technologically stupid) want to hire someone IT wise, they see "COMPUTER" science and think that you're good to go on whatever they want/need IT wise. When they see "SOFTWARE" engineer, they think that you'll only be able to code. How do i know this? Experience and.....postings on craigslist!

That brings me to my last point;

I had the same questions as you, OP. I have spent a lot of time looking at the differences between the two. A quick Google search and 2 hours of your time will defiantly yield more results and opinions. Remember that no matter what anyone says, you're going to go to school to get a better job. The people that answer this question (me included) aren't looking to hire you so what we say should have no lasting effect on your decision. I suggest looking on craigslist in the job section/field that you wish to get into to see what potential employers actually want in your field whether its tech support, networking/system admin, software dev or web dev.

Hope this helped,

Cheers,

Samuel

To me, in a nutshell, a CS major is more math and theoretically oriented, while a SE is more of a "let's get shit done" major.

That being said it is not always true. Sometimes following the logic in the above quote you will need to follow the below equation

CS=CS
SE=(CS/2)+SE

As you may not know Software Engineering consists of a lot of Computer Science because without Computer Science Software Engineering is nothing. Also to give an example of what I am talking about lets compare the below phrases:
"The engineering of google's search engine"
"The science of google's search engine"
So if you compare those two phrases you will see that the Software Engineering phrase refers to the labour put into google and the hardware elements of google along with some of the programming elements. However, the Computer Science phrase refers to not how it was programmed but rather the concepts behind google and the way it works. It can also refer to the elements required to put together such a project such as compilers and interpreters but Computer Science does not go into as greater detail as Software Engineering for how the compilers and interpreters are used. So in a way they overlap on and another and combined make the one big package.

"The engineering of google's search engine"
"The science of google's search engine"
So if you compare those two phrases you will see that the Software Engineering phrase refers to the labour put into google and the hardware elements of google along with some of the programming elements. However, the Computer Science phrase refers to not how it was programmed but rather the concepts behind google and the way it works.

That's the same point i was trying to get across. Engineers use and implement (generally) the information or knowledge created or discovered by the scientist.

i.e. A scientist is trained to be more theoretical and discover in or better a given area or field of study where as engineers are trained to use that knowledge to "get shit done".

I may be wrong (wouldn't be the first, wont be the last) but it seems like you just enforced the statement i made above. If what i wrote in my OP wasn't clear, i apologize. It's late and sleep deprivation certainly can take its toll on me, haha.

Cheers

The distinction between CS and software engineering programs varies on a school-by-school basis and can be discerned by looking at the course descriptions. The main difference in curriculum is usually that software engineering programs omit important classes (if you want to be good at programming) and instead spend time teaching stuff you'll learn in your first job after college anyway.

In my opinion Computer Science teaches you to code (anything from a ‘hello world’ to your own operating system)

Then when you know how to code you get into Software Engineering where you learn how to develop and maintain large systems, topics such as the most efficient life cycle, most effective testing process, team dynamics, etc as applied to a large software product.

(The Computer Scientist wrote the C# compiler but the Software engineer is in charge of managing the Visual Studio 2010 project)

(The Computer Scientist wrote the C# compiler but the Software engineer is in charge of managing the Visual Studio 2010 project)

That statement is incorrect for so many reasons. C# is part of the closed source Visual Studio Project governed by Microsoft. The people who wrote it weren't scientists but rather programmers. The programmers who wrote C# didn't just write the C# compiler component of Visual Studio but for cost efficiency wrote the entire Visual Studio Project. I believe this might have been done in Microsoft's equivalent of Assembly or Basic (not Visual Basic). So honestly, why would Microsoft employ 5 different teams in isolation to make one project. Wouldn't make any sense and if it doesn't make any sense then it's not true. That's what Judge Judy says anyway. So conclusion? One team was formed to write Visual Studio in Assembly or Basic where high level compilers could be written such as C++, asp.net, Visual Basic, C# and the Robotics Framework.

My appologies for not knowing how Microsoft does things. I bow to your wisdon and will now shut up and sit down.

My appologies for not knowing how Microsoft does things. I bow to your wisdon and will now shut up and sit down.

I didn't mean to offend you but rather to correct you so the information is correct. :)

So conclusion? One team was formed to write Visual Studio in Assembly or Basic where high level compilers could be written such as C++, asp.net, Visual Basic, C# and the Robotics Framework.

Look how stupid you are.

Look how stupid you are.

I know you are but what am I :)

computer science is more like an overall aspect of the IT world which is theroritical with no critical focus on a particular field. Software engineering is directed towards programming and software development which is a more decisive turn and less theoritical and boring courses(at least you get to see things done yourself and not just read them on paper).

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.