I think part of the problem is when we compare the two following.
Engineering - Physics - Math
Computer Engineering - Computer Science
Notice that the second only has two steps? Engineering isn't really science, but there is a sort of science. Now one will be quick to point out that computer engineering does depend upon physics (and chemistry, and even a wee bit of biology and higher). But I think Computer Science is large enough in scope it contains true Computer Science, which is as much math as math is, but it also contains more real world test and verify parts of computing. Things that might be able to fit up under physics or chemistry, but which ended up being placed under computer science.
If we are talking a Turing machine, that is math (or something equivalent to math). If we are talking about how a compiler can optimize code by rewriting some things to be computational equivalent but to put operations in an order that most CPUs can run faster, that feels like we've stepped into science. We've overloaded the terminology and now have some linguistic debt that needs paying off.
I sometimes joke that my undergrad degree in Computer Science involved only a single class in Computer Science.
Engineering - Physics - Math
Computer Engineering - Computer Science
Notice that the second only has two steps? Engineering isn't really science, but there is a sort of science. Now one will be quick to point out that computer engineering does depend upon physics (and chemistry, and even a wee bit of biology and higher). But I think Computer Science is large enough in scope it contains true Computer Science, which is as much math as math is, but it also contains more real world test and verify parts of computing. Things that might be able to fit up under physics or chemistry, but which ended up being placed under computer science.
If we are talking a Turing machine, that is math (or something equivalent to math). If we are talking about how a compiler can optimize code by rewriting some things to be computational equivalent but to put operations in an order that most CPUs can run faster, that feels like we've stepped into science. We've overloaded the terminology and now have some linguistic debt that needs paying off.
I sometimes joke that my undergrad degree in Computer Science involved only a single class in Computer Science.