Interesting question. I’m a programmer who works in EDA software, including using transistor-level simulations, and I use surprisingly little math. Knowing the idea of a derivative (and how noisy numerical approximations to them can be!) is important—but it is really rare for me to actually compute one. It is reasonably common to run into a piece of code that reverses the transformation done by another pieces of code, but that is about it. The core algorithms of the simulators involves sophisticated math—but that is stable and encapsulated, so it is mostly a black box. As a citizen, statistics are potentially useful, but mostly just at the level of: This article quotes an X% change in something with N patients, does it look like N was large enough that this could possibly be statistically significant? But usually the problem with such studies in the the systematic errors, which are essentially impossible for a casual examination to find.
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 :-)
Interesting question. I’m a programmer who works in EDA software, including using transistor-level simulations, and I use surprisingly little math. Knowing the idea of a derivative (and how noisy numerical approximations to them can be!) is important—but it is really rare for me to actually compute one. It is reasonably common to run into a piece of code that reverses the transformation done by another pieces of code, but that is about it. The core algorithms of the simulators involves sophisticated math—but that is stable and encapsulated, so it is mostly a black box. As a citizen, statistics are potentially useful, but mostly just at the level of: This article quotes an X% change in something with N patients, does it look like N was large enough that this could possibly be statistically significant? But usually the problem with such studies in the the systematic errors, which are essentially impossible for a casual examination to find.
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 :-)