5 ms·
It's becoming more obvious to me with time that math and its corresponding proofs are very similar in concept to our code and unit tests. Theorems like our soft
by balabaster 9y ago
It's becoming more obvious to me with time that math and its corresponding proofs are very similar in concept to our code and unit tests. Theorems like our software are built from rudimentary building blocks, each needing to be understood in order to build the software and then the tests are the proofs that each of the building blocks are correct...
What's missing for a lot of people is "What does this theorem apply to? Why does it apply? How do I break this theorem down into its component pieces to understand it?"
Indeed if your math text started off with a concept of a real world thing you're trying to figure out and then break it down to a series of paradigms that the student understands before applying each of the mathematical components that applies to each of these paradigms before finally combining them all to the final theorem, people would get it far more easily and be much less intimidated by it. Then over time students will spot paradigms that combine more elegantly to the final theorem and understand how to substitute them.
I think Math is being taught backwards in schools and this is why so many people are intimidated by and shy away from math... and I was a student who both struggled and enjoyed Math... and I still struggle with it because we were taught to think about it backwards.
We started out well with the basic building blocks, but somewhere between basic algebra and calculus, this all got turn around ass backwards. Where does the motivation to understand derivatives and integration come from if one doesn't understand the implications of their application?
- gjulianm 9y agoThat's a somewhat naive way to say it. Math is not code, it's not programming. You can code a Python script without knowing how does a operating system work. You cannot understand nor use a theorem without knowing the definitions involved. I can tell people, for example, that the concept of derivatives and integration comes very handily when solving differential equations that model real world phenomena (for example, fluid motion). But how can I explain what is a differential equation in a manner that's useful to someone who doesn't know what a derivative is? Math, for better or worse, tends to not have direct applications (on the other side, much like other subjects in their basic stages) and you need to advance before getting to a point where you learn something you really need and then see the usefulness of it all. It's like everything: you don't know what you need and how strongly you need it (despite how many times people will tell you that you need it) until you really have that necessity. Starting off with the general concept and breaking down into paradigms is not always possible. For example, say you want to teach people the Stokes' theorem of integration of manifolds [1]. It is the generalization of the divergence, Kelvin-Stokes and Green theorems that are very useful in electromagnetis, fluid mechanics and probably more. The theorem says, broadly, that if you are measuring some quantity in a certain space, you only need to know how does it "accumulate" on the boundaries of that space. But that will not be useful to an engineer or physicist. To really understand that theorem and break it down you need an entire course on differential geometry, with requisites on topology and calculus. Therefore, in the analysis courses for engineers/physicists the most probable situation is that either they present you the theorem and tell you how to perform the required operations on differential forms (which, if you don't know what they are, is a complete mistery/dark magic), or they go to the specific theorems (Gauss, Kelvin-Stokes, Green) which seem clunky and completely magic again. The summary is that to be able to know what does a theorem apply to, why does it and how to break it, you literally need to study mathematics: that's what mathematics is. And the way to study it is always backwards, it's not like physics or programming where they can show you the high-level stuff, you can see what's happening and then you start to understand it. In math, most of the time, if you learn some subject starting from the high level stuff, it is difficult to even know what on earth are they talking about. 1: https://en.wikipedia.org/wiki/Stokes%27_theorem https://en.wikipedia.org/wiki/Stokes%27_theorem
- marcosdumay 9y ago> Math is not code, it's not programming. Computing theory would have a word or two about this idea. You can not code a Python script without knowing Python any less than you can use a mathematical theorem without knowing the definitions. And yes, you can know what problem a piece of mathematics solve without knowing the math. How else would the math be invented in the first place?
- gjulianm 9y agoThe existence of fields that merge math and programming does not mean that "doing math" and "programming" are similar actions/similar fields. I've studied both and there is a world of difference. > How else would the math be invented in the first place? Usually the first step for problems to be solved is their expression in a mathematical way. See the heat equation: Newton (and probably others, history is not my strong point) already captured the core idea of heat transfer (transfer rate is proportional to the temperature difference) but it could only be really solved by Fourier once all of those ideas were put in mathematical expressions.
- balabaster 9y agoThe very act of putting all those ideas into a mathematical expression is in essence programming. You take a whole bunch of ideas, codify them and put them together to either explain something else or produce a product - a theory or formula. Which in essence is what programming is.
- yorwba 9y ago> You can code a Python script without knowing how does a operating system work. You cannot understand nor use a theorem without knowing the definitions involved. Better analogy: You cannot code a Python script without knowing how to call the APIs you need to implement the functionality you want. Knowing how an operating operating system works is more like knowing how foundational mathematics is axiomatized. Interesting and occasionally useful, but not immediately necessary for the theory of differential equations. I think you might even be able to deal with differential equations without involving limits, by simply asserting all necessary theorems about derivatives as axioms. This corresponds to relying on a robust library (= the theorems other mathematicians have proved), without worrying about implementation details (= the proofs of those theorems, which might be much more difficult to understand than the results can be used).