I had always trouble with math at high school. I managed to pass in the end, but I never really got it.
I think math should be thought like programming. They should present you with a problem and then show you a cool way to solve it. My math classes consisted of memorizing formulas and algorithms for standardized tests. I learned about hyperbolas, matrices, integrals etc. but none of them stuck with me. One of the few things I remember is basic trigonometry, because we used to do practical stuff like getting an angle from the ground and length from the building to calculate a person's height.
Moreover, I think math seriously needs a REPL. At my math exams(not tests, written ones) I never could calculate the solution right, I would always make a mistake.
We need to acknowledge the fact that we are human and humans make errors. We need to teach high school math in a hackable, practice-oriented way.
The current math curriculum excludes pupils who think different. If you can't solve it in the traditional way, you're doomed. But you're actually smart and can understand math if you learn it by doing, hacking, programming.
Most math reads like very bad code to me: insufficiently commented, bad variable names, excessive (and wildly, ah, creative) operator overloading, no explicit types. Plus the debugging and analysis tools blow, forcing you to keep way too much in your head at any given time.
The documentation is extensive, but unfortunately too much of it takes the form of the same garbage code.
I had the luck of having very good math teachers, plus a share of natural "easyness" with math (wouldn't precisely describe it as talent). All the things you mentioned can be solved by having good, dedicated teachers (I mean dedicated to teaching, not just to one specific student). Unfortunately, they're not as common as they should.
And/Or a REPL. I started programming with Apple LOGO in summer school as a small child, the math came alive. Much more malleable feedback and exploration than the 100%'s on quizzes.
I was taught discrete math from the building blocks of matrices and it seemed as useful at the time as learning driver's ed in a license plate factory.
Mathematics can be taught by good teachers and bad teachers, in a very good or very bad way. It's definitely an important and difficult issue, because teaching mathematics the right way in order to capture the attention and interest of school children is a very difficult problem, not least of all because there isn't even a consensus on what teaching mathematics the right way is.
However, I don't think in the slightest that throwing CS buzzwords such as "REPL" and "hackable" at the problem is the way to go.
They aren't buzzwords, they are simple ideas and don't have to be referred to with those terms if they are triggering you. The OP just wants interactive, flexible systems to learn math from, which I wholeheartedly agree with.
Okay, my bad, then. Can you tell me what exactly is meant by a "hackable" math learning environment? And how will a REPL (however it is realized) make learning mathematics better?
Imagine if all the proofs in your linear algebra textbook were done in Isabelle, Idris or something similar to that. Then you'd be able to interactively explore the proof, it would be unambiguous, and you would know exactly like it worked. If you don't understand how a C program generates its result, you could start a debugger and single-step through it. With a paper proof, how can you convince yourself that there is nothing missing in the proof? Maybe you think you understood, but you didn't.
The great tragedy of maths education is that people come out the other side and think "fill in the box" is maths. No, that is doing you sums, not living in the world of mathematics.
The filling in of the boxes is most fairly compared to finding the typo in the complicated regex, or the file with incorrect permissions on the web server
"Fill in the box" is not referring to sums. It's referring to extremely rigid homework where you fill out each step in a process to finding out a result very precisely. It coincides with the horrific bubble tests where you select 1 of 5 answers and there is no partial credit.
This style of learning is what dominates US schools now from basic arithmetic all of the way up through advanced calculus.
Then replace the domain specific terminology with something more palatable to educators.
The point made in the parent comment is that teaching math often fails in its intent, to provide students with the rewards of mathematical insight and ability to reason.
Instead basic math education results in a rift between those who "aren't good with numbers" and, well, masochists.
What is it about math education that so abhors references to applications?
What is so crucial about references to applications? Sometimes the applications are so distant that it is not imaginable for high school teacher to dig into them.
People learn about mammals in biology and don't ask for references to applications. Why is it different in math?
What equivalence do you see between math and biology? The pedagogy seems to begin from opposite directions. What axioms of biology are comprised of "mammals"?
This thread began with a parent article on matrix algebra, which has many, many, exciting real-world applications.
It depends on the audience, but I think you are largely correct. Computer graphics / demos / games are a seductive way to introduce linear algebra. Here's how you rotate a point on screen, using only numbers is way more interesting than solving linear equations.
That said, there is an audience for whom the beauty of the subject is enough. Now when I hear "Galois theory" or "Navier-Stokes" I just think "I don't know what that is, but I want it!"
At least in Denmark, your method counts as almost as much as your result. If you make a mistake in your calculations, but your method is good, you get partial, near full point.
In your weekly assignments (but not exams) the teacher may even fail a problem if you only write the correct answer, but fail to show how you got there.
Not exactly. I want to be able to see step by step what I'm calculating. When you're learning programming, you write a very small block of code, (e.g. getting inputs, printing a welcome screen) and then build it from there. With math assignments you have to solve the problem entirely and then check the results.
Wouldn't it be better if we could graph every step of our solution, write small loops to test out different values and observe their effect?
The math questions I encountered at school were based on tedious and often mysterious manipulations of numbers.
Even though I memorized every formula I would still fail. With computer programming you don't have to trust anything. If say you want to learn about pointers, you write some code, get a segmentation fault. You learn from your mistake instantly.
If you still don't get it, you read code examples, modify them and see the results instantly.
That's what I mean when I say math seriously needs a REPL.
In english classes teachers take pupils to the computer lab and give them online exercises. The pupil can fill in the blanks press a button and check his/her answers instantly. Why don't we do this with math?
Computers give the pupil the chance to try out different things. If you get stuck, you can always ask it to your teacher.