Difference between Computer Science, Computer Engineering and Software Engineering degrees

May 16, 2007
There was once a time when a major percentage of people who had anything to do with computers were in more ways than one Electrical Engineers by training. In fact I have seen many popular books on Computer science and electronics which are authored by people who have a background in Electrical engineering.

Then with change in times and fast technological progress, the electronics and computer field evolved and they branched into seperate engineering fields. And now computers have come a long way that this branch of learning has in turn split into sub streams namely Computer Science, Computer Engineering, Software Engineering and so on. Ask a techie what is the difference between these similar streams of study and in most cases you are sure to get a blank stare.

I myself didn't know about the difference between these computing streams until I chanced upon this very informative article authored by Tony. In the article, he explains in what way these are different from each other. For example he notes that Computer Science is inherently mathematical in nature and is about writing code where as Software Engineering is thinking about writing the said code (what ever that means). And Computer Engineering discipline deals with design of specialized type of software, and incorporates more hardware material into studies.

8 comments:

  • Artorios

    I still haven't understood the difference between Computer Science and Software Engineering?

    Is the former code meant for machines and the latter for the operating system?

  • Jack

    If you really want to know the difference, go to the source: A really superb document from the certifying body...

    http://www.acm.org/education/curricula.html

  • Jon

    artorios:
    As i understand it, Computer Science can be thought of as more Abstract than Software Engineering. Ie, a CS program would have you coding things in something like lisp, or at the very least try to stay away from the specific complexities of various development interfaces. CS also would be more about looking at different algorithms and data structures, analyzing them mathematically, doing mathematic proofs of an algorithms effectiveness, etc.

    Software engineering would probably focus more on actually building software, maybe in large teams or software, and focus more on development strategies /methodologies, coding principles, etc.

    I think.

  • مصـ( الخير )ـعب

    I don't know how to thank you,
    a friend of mine asked me the same question and i didn't know what to reply with..

    thanks again

  • Basu

    A computer scientist is responsible for the theory of how something will work. He will go through the mathematics, and come up with a mathematically correct solution. It is then upto the software engineer to actually write the code that implements the comp. scientist's ideas. One way to understand computer science is using the analogy: "Computers are to computer science as telescopes are to astronomy".

  • In my opinion, Software Engineering is more code interaction and design, while Computer Science is more of the actual implementation.

    So in CS, people deal with how the system/project works and is implemented, SE deals with the interactions between systems/projects, and between parts of a project.

  • adnan

    Hi in my opinion computer science is the study of designing alogorithams while by using these algorithams a softaware engeenier develops a software.

  • Hitesh

    I think this is a good start but I’m not sure it’s this simple to decide between programs. First when looking up courses on the ‘net the descriptions will only tell you what the course is like in theory, in practice the instructor has a great impact on the quality. I think you also need to look at what where the degree leads.