Home > Computer Science, General Ideas > Computer Science, Software Engineering, Computer Engineering …… what the deuce?

Computer Science, Software Engineering, Computer Engineering …… what the deuce?

Advances in information technologies led many new specializations and job definitions spawn day by day. Two of the most important ones are arguably computer science(CS) and software engineering(SE). Apparently there are lots of misuses of these two concepts. Well, I don’t know if it is true to use the word “misuse” here, because CS and SE are not clearly as different as black and white.

I will try to find answers for the questions like; what these terms stand for? What each one does? Why do we have different names if they are mostly same and so on. And while doing this brainstorming I will share the things that fly around my brain. Meaning that, what you will read does not have any rock-solid basis 🙂


One way to get a better understanding about such problems might be finding an analogy with an easier case. The best analogy I can think of is what we see between physics and mechanical engineering. As you can see, we have science and engineering which are closely related in this example, too. But then of course, these two comparisons are far away from being similar.

Here it can be argued that whether it is really necessary to separate two professions from each other. Of course nobody dies if they are not. But a clearer terminology and categorization would make thing easier. Moreover, in order for that terminology to be as useful as I think, it needs to get a common understanding.

I do not claim to be able to separate these two disciplines, however I believe that these two will eventually be as different as physics and ME. On the other hand, I also believe that this differentiation is (and should be) a natural process. Therefore, what we can do would be simply speculating about the future of this terminology.

So let’s get started.

Building a Simple Methodology

Note : When I say science from now on, always add the exception of social sciences, no offense 🙂

If we think thoroughly, we can see that sciences have some sort of family tree. Most of the sciences have their roots in some other -obviously- older science. A spark may lead to a new branch of a science to be born and eventually contents and scope of this branch gets so large that it is now can be called a science by itself. I have no knowledge to discuss about science history but this connection between sciences are noticeable for everyone I guess.

This family tree analogy can be seen in the one of the oldest sciences; medicine. There are lots and lots of different sciences that can be named under medicine. Of course, they are not completely separate from medicine; but contrarily, they inherit from medicine and build up their own terminology and concepts on top of it. Another example is again from physics. We can say that separation between the “children” of physics is a lot sharper than what we see in medicine. Consider electrics and optics for example, both of which are sub-sciences of physics, and they inherit some parts from their ancestor, yet they are so different that it is hard to see they are siblings.

From the methodology I presented above I don’t think I would be deadly wrong if I assume there is a Darwinistic genealogy of sciences. Sciences experience, develop, learn and at some point they “spawn” new sciences. And common ancestor(science) does not vanish! Wow, wasn’t it easier to prove than to prove evolution!

Further supporting arguments about this comes from famous ancient scientists. For example take Aristotle; Wikipedia says:

His writings cover many subjects, including physics, metaphysics, poetry, theater, music, logic, rhetoric, linguistics, politics, government, ethics, biology, and zoology 

All of the sciences mentioned here are evolved in such a way that defining a scientist as simply “physicist” does not tell much about what he is doing. Yet, Aristotle was a great scientists in all these topics. This can mean only one thing, all these sciences have more thing in common to think about back then than they have now. And this omni-capabilities of scientists even has a name, which I just found out : polymath.

We now have constructed some basis on the creation (sorry, evolution) of sciences. But in order to connect it with our topic, we need to find some place for engineering in this basis. Actually, arguing sciences first and then trying to put engineering in the picture is a little bit unfair for engineering disciplines.

We must first create a science vs. engineering sub-definition, without deviating from their formal definitions, for the specific purposes of this article. It is clear that science deals with creating theory and tries to have a better understanding about concepts, whereas engineering creates what people(or end-user) really needs. We can also assume that an engineering discipline must have a scientific basis. However, science doesn’t appear by itself; contrarily, there must be an everyday need on something, namely something must be engineered. Therefore, neither science completely leads engineering nor the other way.

Finally Coming Back To Our Topic

After diving deeper and deeper and going way beyond the border of my knowledge and humble intellectuality, we can come back to our topic. It is clear that CS, SE or CE whatever you call, has its roots in electronics (which in turn born because of the necessity of engineering something electronic, and feeds electronical engineering ever since). At some point, building something electronic, started not to satisfy mankind, which triggered electronic computation, which led to the replacement of mechanical calculators with electronic ones. After that we realized that with electronic capabilities we can go way further than simple arithmetics, which then led to computers (which is terminologically different than calculators, name suggests that we can not only calculate some arithmetic expression, but also we can make these things to compute what we want).

There, at this point we have computer engineering. Our brand new engineering species. While this was born, another supportive science also needed to feed this engineering and, yay! computer science. Following from the methodology I have been building in this article, computer engineering builds computers and computer science supports this branch of engineering, providing new techniques it found with scientific method.

At some point, we realized that we can engineer computers, and somehow use them, yet there must be a separation between creating a computer and creating a code that this computer runs. And as you have guessed that led to software engineering.

At last we reached some point that we both have CS and SE. Yet, there is something missing. And yes this is “Software Science”. Oh God! That sounds like inbred child of CS and SE! However, in the methodology that we build it is clear that we need a science that tries to find better ways on creating better software. Why don’t we have one? You might ask, and here is the reason; as in biological evolution, scientific evolution is a slow process and we might not be able to notice the changes in short term. Therefore, we can say that there is some part in computer science that grows day by day and waiting to be spawned. Even though it has no name, that part of CS deals with what our presumed-SS would deal.


There are lots of things that can be concluded from this brainstorming session.

  • There is a difference among computer science, computer engineering and software engineering (and insistently, software science).
  • However; these professions which are coming from a common ancestor, started evolving into different professions in the near past, disallowing us to draw a line between each other.
  • This also means that, up until some point in your career, you are free to define yourself as one of them. However, this point comes earlier and earlier, and comes very fast.
  1. March 11, 2012 at 9:27 pm

    Lol. I just realized that you’re blogging about the same topic. If it’s okay, I’ll probably link to your blog in a future post.

    • March 11, 2012 at 9:36 pm

      Yep. Be my guest, I’ll be glad

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: