5 ms·
Again, one more "failure" of attempting teaching Maths to programmers. My expectation is always, teaching Maths without using any of Maths language (forget the
by revskill 4y ago
Again, one more "failure" of attempting teaching Maths to programmers.
My expectation is always, teaching Maths without using any of Maths language (forget theorem, signature,...). Is this possible ? Yes.
Programmers use code, algorithm, data structure to run the code, and to understanding the theory, instead of understanding Maths language, which is most of the time, "hurt the brain"
- sourceless 4y agoTeaching maths without "Maths Language" is like teaching programming without a Programming Language.
- revskill 4y agoYou don't need to understand "Theorem" to know how to use the theory. You can replace any of Math definition with code. Is this the point of "for programmers" ?
- JadeNB 4y ago> You can replace any of Math definition with code. You often (but not always!) can replace a math definition with code—but either your code is sufficiently precise that it's just another way of phrasing the definition, or you're in the analogous situation to using a language defined by its implementation instead of a specification. And there's plenty of useful space for such languages—but they aren't formally specified languages. Math that isn't formally specified isn't math, in any sense that a mathematician would recognize—which is not to say that it can't be useful.
- d_tr 4y agoRigor and mathematical terminology make it simpler and easier, because you can say more things with fewer words and more precision. Mathematicians are not masochists. Compared with truly understanding the theorems and the concepts, the effort to understand the terminology is basically zero.
- madsbuch 4y agoI would say that the pros of mathematical notation is the opposite of rigor. You get to not write everything out, which is both good for the lazy reader and lazy writer. It is just not very good for the newcomer that needs to learn the implicit assumptions that are not written out.
- klibertp 4y ago> because you can say more things with fewer words You say it as if it was a good thing. It's not. APL, J, and K would reign supreme over all programming if brevity and conciseness were all that good for people actually understanding what the heck is happening. Math notation is a peculiar, loosely defined, context-dependent, ambiguous syntax that requires a lot of memorization, a special keyboard when writing, and a lot of focus when reading. It only benefits people forced to write equations on blackboards all day long. I mean, I feel for them, it's a tough job, but I'm not going to be doing that. > the effort to understand the terminology is basically zero You say it as if it was a fact. I don't believe it's anything else than a gut feeling you have. It's trivial to find people for whom the effort needed to understand the terminology or syntax was too big of a barrier to entry. If you could show a proper, replicated study from scientists working on cognition and memory that proves this statement (zero-cost of alien terminology), it would be great. Otherwise, I see this as a gut feeling coupled with survivorship bias.
- BeetleB 4y ago> You say it as if it was a good thing. It's not. APL, J, and K would reign supreme over all programming if brevity and conciseness were all that good for people actually understanding what the heck is happening. On the flip side, try reading all your programs in assembly. Verbosity is nice up to a point. When I look at the math I did for physics, solving a problem could take 3 pages. If we go with the GGP's approach, it would take perhaps 15-20 pages. Almost everyone would grok it quicker with those 3 pages than trying to read a more verbose 15. It's actually why some prefer functional programming. Which is easier to understand: "Take these student papers, and split them into two groups based on whether the student's name begins in a vowel or not." OR "Create two groups. Call them vowels and consonants. Take the first paper. If it begins with a vowel, put it in the vowel group. Otherwise put it in the consonant group. Once done with that paper, repeat the steps with the next paper. Keep repeating till there are no papers left." And I won't even bother describing how one would do it in C (have a counter variable, at the end of each iteration explicitly check for termination, etc). The difference between math formalism and verbosity is analogous to the difference between the two descriptions above. At some point, more verbosity lets you see the fine details at the expense of the big picture. > It's trivial to find people for whom the effort needed to understand the terminology or syntax was too big of a barrier to entry. It's almost impossible to find someone who can do, say Griffiths level electromagnetics or quantum mechanics without that formalism. Your refrain pops up all the time on HN, but I have yet to see someone do even undergrad level physics in any of the alternatives suggested.
- okaleniuk 4y agoI thought so too. When I started Geometry for Programmers, I was going to write all the formulas as SymPy snippets. I thought that was a brilliant idea because, yes, normally programmers are much more comfortable with code rather than with math notation, and math is not about notation anyway. Case in point, you can turn any SymPy expression into LaTeX with the `latex()` function. It doesn't make the expression any more mathematical, so the other way should apply just as well, right? But the very first review shown that I was wrong. Very few people saw this as a good idea. Most wanted both formulas and code. Apparently, there is a certain "comfortable" level of math language in a math book readers do not wish to give up.
- franknstein 4y ago"...and math is not about notation anyway". It most certainly is!
- triyambakam 4y agoEnglish is not defined by the Latin alphabet that it uses.
- consilient 4y ago> math is not about notation anyway Well, yes and no. It's true that notation is a tool and not the actual object of interest (except when it's both), but some tools are much, much better for certain tasks than others. Imagine, for instance, trying to teach someone about databases and having them demand that you translate everything into x86 assembly first, since that's what they're comfortable with. Once you get past the basics, this is the level of mismatch we're talking about.
- okaleniuk 4y agoI agree on yes and no. If notation mattered little, there would not be that many different notations. Leibniz and Lagrange notations for derivatives, Einstein abbreviation for sums, Iverson notation for tensors that later became APL, or any language for any computer algebra system ever. If notation mattered little, inventing your own notation would matter little too. But if notation mattered a lot then... there would not be that many different notations either. There would be one and only notation that works and no one would dare to divert from it. Math notation is a cultural artifact with its own significance pretty much like SQL or x86 assembly language indeed.
- auggierose 4y ago[flagged]
- citizen_friend 4y agoI do the opposite, I figure out the math to describe a problem, then write the program to do it.
- RugnirViking 4y agolearning the language of a field is vital if you ever want to use anything somebody else figured out. You can't read a paper to understand how something works if you dont learn the language they use in the paper. The reason they don't write the paper in "normal english" is because that normal english would make the paper thousands of pages long with lawyer-speak listing everything they dont mean. It turns out there isn't a shortcut to learning it, and after a couple lonely evenings slowly translating you will eventually be able to skip over that part of notation when you see it. repeat for all the maths youre interested in and you will be good