Don’t confuse Computer Science with Software Engineering

  • 4 min read
  • 35 Reactions

One thing we come across quite often when discussing our ideas about modern tech education is the confusion between computer science and software engineering.

Whether we look at studies describing the digital skill shortage in the workforce and the consequences for our economy, at job descriptions from employers in search of ICT professionals or at politicians demanding more and better educational programs aimed at digital competences – in most cases there is no clear definition of the skills profile in question. ICT Professionals, Developers, Programmers, Software Engineers, Computer Scientists – all too often are they used as synonyms.

If Europe needs 825.000 ICT professionals until 2020, does it mean everybody should study computer science?

Of course not.

Computer science is about taking complex problems and deriving a solution from math, science and computational theory.David Budden in “Degrees Demystified

Computer Scientists are first and foremost scientists. They possess a deep knowledge of the theoretical foundations in mathematics and information science and can develop complex algorithms and advance scientific research. They operate in a world of rigorous analyses, clearly defined concepts and proven facts.

The digital skills in demand as described by employers, labor market studies and politicians are of a different kind. They involve the ability to interact with human beings and to create easy to use software solutions for real world problems with limited resources in a highly unreliable and dynamically changing environment.

David Budden describes the difference in his analysis as follows:

Where computer science is about taking complex problems and deriving a solution from mathematics, science and computational theory, software engineering is very much focused around designing, developing and documenting beautiful, complete, user-friendly software.

Chuck Connell uses the following analogy in his article “Software Engineering ≠ Computer Science“:

Imagine a brilliant structural engineer who is the world’s expert on building materials, stress and strain, load distributions, wind shear, earthquake forces, etc. Architects in every country keep this person on their speed-dial for every design and construction project. Would this mythical structural engineer necessarily be good at designing the buildings he or she is analyzing? Not at all. Our structural engineer might be lousy at talking to clients, unable to design spaces that people like to inhabit, dull at imagining solutions to new problems, and boring aesthetically. Structural engineering is useful to physical architects, but is not enough for good design. Successful architecture includes creativity, vision, multi-disciplinary thinking, and humanity.

As does successful software engineering.

Why is this distinction so important?

  1. Because it helps to choose a study program that fits one’s abilities: Many have what it takes to become a successful software developer but lack the mathematical interest or ability to succeed in computer science. We cannot afford to discourage these young talents from choosing a career in software engineering, especially because – as Sarah Mei lays out in her article “Programming is not math”: “Learning to program is more like learning a new language than it is like doing math problems. And the experience of programming today, in industry, is more about language than it is about math.”
  2. Because it helps to choose a study program that meets expectations: Starting computer science studies to become a software developer is probably going to be disappointing, because Computer Science is more a “degree in applied mathematics” than a “degree where you learn how to code”, as David Budden puts it. The dropout rates in computer science programs (at some German universities as high as 40%) are a depressing monument to this confusion.
  3. Because it helps politicians and institutions to identify the approaches and instruments that improve tech education and contribute to closing the digital skills gap.
  4. Because it helps employers to better understand where to look for future employees that support their growth and successfully drive the digital transformation.
  5. Because it helps us understand how to design a study program that produces graduates with competence profiles that enable them to become successful software developers and that meet the demands of future employers.

Software engineering is very much focused around designing, developing and documenting beautiful, complete, user-friendly software.David Budden in “Degrees Demystified

We are not trying to diminish the importance of computer science as a discipline or computer scientists as a driving force of digital innovation and advancement in scientific research. But the vast majority of the 800.000 digital professionals missing in the European labor market in the year 2020 do not have the competence profile of a computer science major. They need to be creative problem solvers with communication and soft skills and the ability to utilize scientific innovations to make a difference in real life.

A note about Germany: While the education system in English-speaking countries at least offers the distinction between computer science and software engineering, the German education system almost exclusively talks about “Informatik” (information science) meaning the science of systematic information processing. There are variations like “Angewandte Informatik” (applied information science), “Technische Informatik” (technical information science) or “Medieninformatik” (media information science), but the starting point of any discussion in this field is Informatik. Due to a strong dual education system (combining an apprenticeship in a company with vocational training at a vocational school) the role of German universities was traditionally focussed on scientific education while looking down on the idea of teaching hands-on knowledge and skills with practical relevance with regard to future employers. As a consequence the need for a software engineering study program as alternative to information science is even greater in Germany (as this commentator elaborates).

In our next post we will take a look at the reaction of the education industry to the existing demand for software engineers: the staggering amount and perceived success of coding bootcamps.

Study at CODE: Bachelor of Arts in Software Engineering

CODE is a newly founded university in Berlin with a revolutionary project-based learning approach. In our admission process, we challenge your ambition and talent. We’re still taking applications for October 2017 until the end of August! Go ahead and apply now.

35 Reactions

    1. You just understood what you wanted to understand …

      Is it possible to have an Cardiologist without strong foundations in Medicine?

    2. Satoshi Nakamoto

      Ironic, I was just thinking the opposite.
      As a professional software engineer I am overwhelmed by the lack of thorough understanding and intellectual rigor in my field.

  1. i understand computer science to be the broad study of machine while software engineering which is a branch of computer science has to do with how the application(and how it can be applied to real life issues) of the knowledge gotten from the study of machines

  2. i’m a newbie but gat beginners knowledge on C# and java(currently on a two course on Software Engin. @ NIIT ghana) but i really need a mentor to help build my potentials…..this is a sound cry for help..pls if u can help brush me up i’ll be very glad to work with you.

  3. The developing countries should bet on professionals in Computer Science and Operational Research, as a strategy for our development, in Lima (Perú) only the national university of San Marcos has this careers.

  4. No debería haber distinción Porque una la de acuerdo la otra así que un ingeniero es el desarrollador físico el computologo es el que lo piensa así que para mí es la misma rama

    1. Error … los que hicieron Google, Amazon, Facebook, Twitter, Linux son gente de CS en su gran mayoria pero ocupan un cargo denominado Software Engineer.

  5. simply doesn’t matter. both professionals will end working doing the same thing. Delusional at least to romanticize computer scientists nowadays. If you can write your name on a log in screen you can call yourself both computer scientist and software engineer.
    Also, most of the old big employers care about code producer for trivial tasks, thus put your O factor or development plan aside and google the name of that function that you are looking for to resolve your project.

  6. Wow, this is incredibly shortsighted. This article is attempting to say that physicists are to engineers like computer scientists are to software engineers. This is simply untrue, except for those who become graduate students and eventually teach computer science or have a career at a DOE/DOD lab, Google, Amazon or some other high performance computing facility that needs true scientists.

    1. Learning to program is not like learning a new language. Nor is it like learning mathematics. Learning to program is learning to think more broadly and deeply than most other people and how to express it so methodically and logically that a computer can produce the expected result. This takes mathematics, logic and linguistics. And if you want other people to use your creation, it take skills in design and a bit of psychology.

    2. Just ridiculous. I’d love to see where these statistics came from. Degrees in computer science were akin to applied mathematics decades ago. Through the 1970s, getting a job in computers required a degree in mathematics, and you happened to take some computing courses on the side because there was no discipline yet in existence expressly for computer science. The difference now is that software engineers tend to get a bit more electrical an computer engineering coursework and sometimes a dash learning business processes regarding software development (e.g. Agile, Waterfall, etc.). Unfortunately, to add all that, it detracts from their time in learning computer science — the knowledge needed to do more than plug and play your way through a problem.

    3. What?


    Forget it. You do realize that real engineers think software engineers are pretenders to the name “engineer”, right? Now, you’re also alienating yourself from the field of computer science. Good luck.

  7. OK guys am at 11th grade in Africa (ethiopia)
    and after i finish my preparatory class(which is after 1 year)
    i want to be in computer field
    but still confused which field is better for me to learn(computer science or software engineering)
    please tell the truth&help me

    1. Hi , Iam also in grade 12th in pakistan. Iam also confused what should I chose. I want to study graphics and web designing. What field should I choose ? Computer science engineering or Software engineering? Please guide me..
      Also I want to study less complex maths problems :p

  8. CPSC and software engineering programs cover extremely similar topics and their career paths are nearly interchangeable. While there is a distinction between the heavy math-theory based computer science and the application-based software engineering, both fields teach adequate skills to go into software development or algorithm research. The writer makes it sound as though computer scientists have very little programming skills and that engineers know nothing about how algorithms actually work.

  9. I completed my A level course and passed maths and computing with good grades and I am yet to decide which is better rewarding in the world compscience or software engineering

  10. What field should I choose ? Computer science engineering or Software engineering? Please guide me..
    Also I want to study less complex maths problems,pls help me.

  11. Most universities blur the lines between Software Engineering and Computer Science. At my school Computing Science was 90% practical work, and only 10% theory, so it would really be considered Software Engineering. But it really depends on the school

  12. dell laptop support

    Excellent information…I’m really impressed with this blog. we provide dell technical support service if you have any problem you can contact with toll free number +44 800 014 8212 dell laptop support service.

  13. Dell Laptop Support

    Excellent information…I’m really impressed with this blog. we provide dell technical support service if you have any problem you can contact with toll free number +44 800 014 8212 dell laptop support service.
    Dell laptop support

  14. We’re a gaggle of volunteers and opening a brand new scheme in our community. Your site offered us with useful information to work on. You’ve performed an impressive activity and our entire group can be grateful to you.|

  15. With the forthcoming of blockchain technology, development seems not close to over, and new and innovative processes and technologies emerge. We aim to orchestrate the adoption of an entirely decentralized ecosystem with the help of distributed ledger technologies. It is indeed a very exciting time to be doing work in the blockchain place and as more people take on this disruptive solution, it is going to expectantly permit us to develop a far more safeguarded, adequate and open world.

Leave a Reply

Your email address will not be published. Required fields are marked *