## DEV Community is a community of 647,226 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

# Discussion on: Computer Science vs Software Engineering

## Replies for: Given the fact that Computer Science is a branch of Mathematics, is mathematics also engineering?

leob • Edited

I would call neither of them engineering, nor Computer Science nor Mathematics. Mathematics (and by extension Computer Science) are concerned with axioms, proofs, and abstract reasoning. It's an endeavor of its own which stands apart from Science, Engineering, Art, Philosophy and whatever discipline we can enumerate, it's none of those.

The only thing you could argue is that APPLIED mathematics could be called "engineering" because it concerns itself less with the study of abstract "structures" and axioms for its own sake and more with practical 'applications'.

Michiel Hendriks

I would call mathematics the purest form of science as everything in it's domain is based in proof and nothing is based in observation. Note that not all proofs are completely sound yet.
Mathematics is also an elementary element of all other sciences. You can't do chemistry without math.

Computer Science is less pure, as there are plenty parts which deal with human feelings. For example, language design.

leob

You might be right, I think we should look up the formal definition.

What I thought (but I could be completely wrong) was that "science" means empirical science, so that would include physics, chemistry, biology and so on but not math, because math isn't based on empirical observation, but on pure logical reasoning.

Empirical science on the other hand is falsifiable (you hold on to a theory until it's disproved by new observations). Math (as you say already) works differently because it's based on rules and axioms, not on theory and empirical observation.

But of course math is an indispensable tool and foundation for the (other) sciences. It is used to build "idealized" models, just like computer programs are used to build (simplified) "models" of reality (that's where we see a strong analogy or resemblance between math and CS - both are used to build abstract "models", they're really two sides of the same coin).

I don't know if it is completely impossible to do any chemistry without math, but of course for anything remotely advanced a chemist will quickly reach for mathematical (or computer) modeling.

Paula Gearon

Speaking as someone with a Bachelor of Engineering (Computer Systems) and a Bachelor of Science (Physics), then I have a few comments on the above:

• Science is formally a process of observation, hypothesis, testing, iterating until observations verify the hypothesis, and formulation of theory. Less formally, it is also an academic structure for research, publication, conferences, and academia. I only mention that second part of completeness, as it is less relevant for this conversation.
• Mathematics is not science. (It is a tool used by science)
• Computer Science is a branch of mathematics, rather than science. Indeed, Gerry Sussman enjoyed saying that Computer Science is both not science, and not really about computers either. 🤣
• Engineering is a discipline that applies math and science to build things.

Having studied a lot of chemistry... no, you can't do it without math. 🙂

leob

Agree to all of that ... studied a good deal of chemistry too, well in any case what's clear is that it's quantitative, you don't get anywhere without measuring and calculating, no argument about it.

Paula Gearon

That was my first thought, but then I remember talking with the chemical students and being surprised to learn that they were doing the same 3D differential equations that I was in order to solve for electron orbits. So the level of math can get intense.

Haris Secic • Edited

I know way to many developers including myself not using math at all in programming. Not ever needing to for development, and as you said engineering uses since and math to do stuff. I don't, many of us don't, we use other peoples solution to build other solutions not intentionally thinking of math. We may use it not knowing but that doesn't make us engineers just math explains real world and so it can software solutions.

Having sad that I wonder about "Mathematics is not science. (It is a tool used by science)". I disagree not only in opinion but in fact that "mathematics is natural science" - this is what a lot of us have been taught. If you take 1 apple and take another you have 2 apples. That's natural and discovering how it applies to rest of things and how to represent it on paper is research and researching natural (not nature but things that happen in real world) is science. Maybe it's a language barrier from my side as english is not my native language and I may misunderstand deeper meaning of "natural", "science" and such words.

Maybe that's why we all have different opinions on such things. Words in english are used amongst many of us who do not well understand true meaning of it because we translate it to our main language and use as such. Which usually ends up being messed in many cases but it works, just like software :D .

Paula Gearon

The point of dispute here is actually a matter of some philosophical debate! For instance, if you look at the English Wikipedia entry for mathematics, there is an entire section on Mathematics as Science, which cites assertions of both sides of the argument from various mathematicians.

Before I became a developer, my own background has been background was in the physical sciences. This experience, along with the opinions of those who taught me, has brought me to the side which states that mathematics is not a science. That said, I see profound beauty in mathematics, and it was this that brought me into computer science.

Haris Secic

Well given your experience and provided arguments for Mathematics as Science I can only agree: it's not language barrier, it's a philosophical debate. Thanks for clearing that up.

But I still I don't see software development in any case as engineering because of "engineering uses science". I just don't see it as mandatory. Maybe data science which is not software engineering but data science. AI is implemented using other people solution, ML same, and if you do otherwise people usually find you insane and don't use your products. So day to day job on average for developer is using bunch of well-known libraries trying to make them work together and cry because they don't