3 ms·
Computer Science has a solid axiomatic foundation in the lambda calculus. Specific areas have their own foundational framework. For example, the relational alge
by eriksank 13y ago
Computer Science has a solid axiomatic foundation in the lambda calculus. Specific areas have their own foundational framework. For example, the relational algebra is an algebraic structure solidly vested in the Zermelo-Fraenckel set theory. So, in terms of math and science there are very solid theoretical principles. Computer Science is fundamentally and undisputedly a branch of mathematics. The fact that it can be practically applied, and very well so, does not detract from its roots and origin. This may sound hard for other academic disciplines, but it is not because it is also useful that it is no longer science.
- rayiner 13y agoI didn't say computer science wasn't scientific, I said software engineering isn't an application of scientific principles. Software engineering mostly isn't a practical application of computer science. To use the example posed above: you cannot be designing chemical processes without a solid grasp of the theory. You cannot do your day to day job without applying the theoretical concepts of the field to daily problems. That's what makes a PhD valuable in that field. In contrast, many software engineers have no idea about lambda calculus, set theory, type theory, etc. You can build a lot of software with just the crudest theoretical understanding that you can pick up from hacking on software. That's why I likened it to carpentry. A carpenter will have a crude theoretical understanding about wood, it's grain patterns and how it absorbs stains, etc, but he doesn't need a solid foundation in the science to effectively do his job.