I see computer science as a branch of applied math which is important enough to be treated as a top-level ‘science’ of its own. Another way of putting it is that algorithms and programming are the ‘engineering’ counterpart to the ‘science’ of (the rest of) CS and math.
Programming very often involves math that is unrelated to the problem domain. For instance, using static typing relies on results from type theory. Cryptography (which includes hash functions, which are ubiquitous in software) is math. Functional languages in particular often embody complex mathematical structures that serve as design paradigms. Many data structures and algorithms rely on mathematical proofs. Etc.
But usually the problem with such studies in the the systematic errors, which are essentially impossible for a casual examination to find.
That is also a fact that ought to be taught in school :-)
I see computer science as a branch of applied math which is important enough to be treated as a top-level ‘science’ of its own. Another way of putting it is that algorithms and programming are the ‘engineering’ counterpart to the ‘science’ of (the rest of) CS and math.
Programming very often involves math that is unrelated to the problem domain. For instance, using static typing relies on results from type theory. Cryptography (which includes hash functions, which are ubiquitous in software) is math. Functional languages in particular often embody complex mathematical structures that serve as design paradigms. Many data structures and algorithms rely on mathematical proofs. Etc.
That is also a fact that ought to be taught in school :-)