News for hackers. Stuff that matters.
Re:Math Intuition Cheatsheet by bithive123 on Thursday July 24, 2014 @11:46PM (#8083674)
I am often saddened by how much easier it has been for me to acquire computer science versus mathematical literacy. Embarrassingly, years after a poorly-timed calculus course left me thinking I had to be able to prove the central limit theorem in order to use calculus, the biggest barriers have turned out to be things programming as a discipline has learned to avoid; encouraging varied and/or terse notations, opaque variable naming schemes, and arbitrary use of jargon where simpler terms would suffice.

A friend of mine who is a physicist once complained to me that every time he had to install some scientific software package on his computer, he had to deal with a litany of arbitrary things which seemed to have nothing to do with his task. I countered with my experience learning math and joked that at least programmers are willing to occasionally refresh our idioms and notations to better reflect our mutual understanding.

Re:Math Intuition Cheatsheet by kalid on Friday July 25, 2014 @12:31AM (#8083763)
(Kalid from BetterExplained here)

Thanks for the comment. There's this weird notion in Calculus education that we need to start from first principles. Limits were invented a century after Newton died, yet they're taught first. "Oh, students won't understand calculus unless they can build it from first principles. I don't care if Newton worked out gravitation with his understanding, it's not good enough."

My little candle in the darkness (http://betterexplained.com/calculus/lesson-1) is to start with intuitive notions (X-Raying a pattern into parts, Time-Lapsing parts into a whole) and then gradually introducing the terms. Eventually, if people are interested, we can get into the theory (which is like getting into the Peano axioms of arithmetic, if you care to go that deep.)

I think in math there's a tendency to express things in the lowest-level "machine code" we can. We need more comments and pseudocode outlines :).

Re:Math Intuition Cheatsheet by claudius on Friday July 25, 2014 @03:17AM (#8084091)
> Thanks for the comment. There's this weird notion in Calculus education that we need to start from first principles. Limits were invented a century after Newton died, yet they're taught first. "Oh, students won't understand calculus unless they can build it from first principles. I don't care if Newton worked out gravitation with his understanding, it's not good enough."

It depends. In high school, it certainly makes sense to start from an intuitive, rough idea, but in college/uni, I much preferred classes that started from first principles (axiomatic QM, sets → topology → metric spaces → calculus/algebra) etc. rather than the weird classes which define nothing properly and put in a “this is true, but I won’t tell you why :P” every other lecture. Which approach is preferable obviously also depends on your aims, but I found it hard to get a thorough understanding of a topic without a first-principles-based derivation at least at some point.

Re:Math Intuition Cheatsheet by kalid on Friday July 25, 2014 @03:26AM (#8084109)
I definitely agree -- context matters.

For a potential math major [i.e. people for whom metric space refers to a measure and not a flat in Europe :)], you definitely want the ground-up understanding. In CS it's similar, where you learn about transistors, logic gates, ALUs, CPUs, machine code, compilers, along with high-level languages.

But, some people just need the HTML "Hello World" to make their webpage. (In the math field, we have students who need calculus primarily to find the min/max of a function, and are wasting time worrying about epsilon-delta definitions of continuity. Limits are interesting, but I'd prefer to ignite curiosity with higher-level topics then dive into the details, instead of forcing someone to learn organic chemistry before being able to drive a car.)

Re:Math Intuition Cheatsheet by hibikir on Friday July 25, 2014 @09:00AM (#8084928)
That's how they taught CS at your school?

Where I studied, we did have classes on all the low level stuff, but we didn't start there: I took a class taught using a high level language every semester. CS-100 was intro to how computers worked, but right along with it, you had 101 teaching C.

If you are going to end up teaching software engineering material, compiler design and such, you just can't have people that have barely done any programming for a year or two, or all they are going to learn is boxes next to each other, instead of being able to actually write a simple compiler in the compiler class.

Re:Math Intuition Cheatsheet by kalid on Friday July 25, 2014 @12:08PM (#8085942)
Whoops, I probably wasn't clear enough in my reply -- the classes on transistors, logic gates, etc. are available to CS majors but are definitely not a requirement for programming. I completely agree that trying to teach about digital logic, etc. without the general context of programming is backwards.

Drive the car, build your interest, then start taking classes in chemistry, physics, etc. to see how it works.

Re:Math Intuition Cheatsheet by vanderZwan on Friday July 25, 2014 @08:50AM (#8084888)
Same thing with logarithms, which were invented to simplify multiplying two huge numbers. Combined with log tables (think paper LUT for humans) that became a simple matter of looking up two log conversions, adding them, then looking up the inverse of the answer.

Is that what we learn in high school? Nope. So everyone is left wondering what the hell they are good for (or were, before we had calculators) the first time around.

(btw, as far as I can tell you don't have that bit of history on your site yet either - might be an interesting addition?)

Re:Math Intuition Cheatsheet by marcosdumay on Friday July 25, 2014 @09:47AM (#8085123)
Well, I learned that at school. It still didn't answer what the hell logarithms are good for. Everyone was left wondering why we were learning something that can be replaced by calculators.

Seeing some modern application of lagarithms would be great. Even just making a log-log graph at some point would answer every question. But those are not at the official curriculum.

Re:Math Intuition Cheatsheet by kalid on Friday July 25, 2014 @12:14PM (#8085980)
It drives me batty because we learn the properties of logarithms before (if ever) internalizing what they mean. Here's my intuition if it helps someone:

http://betterexplained.com/articles/think-with-exponents/

Exponents let you plug in time, and get the amount of growth. e^3 ~ 20, which means "3 periods of 100% continuous growth [100% is implied by e, 3 = 3* 1] will grow us from 1 to 20".

Logarithms let us plug in the growth, and get the time it took to get there.

ln(20) ~ 3 means "It takes 3 units of time [growing at 100%, continuously] to grow from 1 to 20".

Exponents take inputs and find the future state, logs take the future state and work backwards to find the inputs that got us there.

Re:Math Intuition Cheatsheet by kalid on Friday July 25, 2014 @12:16PM (#8085990)
Great tidbit, thanks. I forget if I have a mention that logs were developed before e, but I love it because it's a little mosquito in the ear for the over-rigorous mathematicians who define e up front (as a limit) and then say "the natural logarithm is log base e".

e was only discovered because of logarithms, not the other way around! :)

Re:Math Intuition Cheatsheet by tripzilch on Saturday July 26, 2014 @09:20PM (#8091585)
(LUT = LookUp Tables, for anyone that is confused)
Re:Math Intuition Cheatsheet by nabla9 on Friday July 25, 2014 @09:48AM (#8085131)
I find your emphasis of building intuition very important.

Personal anecdote related to Pythagorean theorem/euclidean distance.

When in ninth grade, I asked my math teacher to explain why why the the standard deviation is like it is and why the square root and not something else. He could not explain that to me satisfactorily.

I spend few hours looking at the formula myself and plotting and drawing different datasets until I made the following association: if dataset is like N dimensional vector and its values x1, x2, .. xN are coordinates, then I'm looking at euclidean distance from mean plus adjusting for the number of dimensions. I think this single moment of cryptic formula making sense changed my attitude towards statistics and math. Dataset ~ vector and data-point ~ vector-coordinate association helps to understand statistics using geometrical intuition.

Re:Math Intuition Cheatsheet by chestervonwinch on Friday July 25, 2014 @01:56PM (#8086486)
That's pretty amazing you came up with that in 9th grade. You may know this already but for anyone who doesn't, this is a result of covariance being an inner product [0]. Remember that the inner product of a vector with itself is the length of that vector squared. So if you had another data set, y1, ..., yN, the correlation ( = covariance / (std.dev(X)*std.dev(Y)) ) is the inner product divided by each length which, if you remember, is the angle between your vectors (datasets after removing the means.)

http://en.wikipedia.org/wiki/Covariance#Relationship_to_inne...

Re:Math Intuition Cheatsheet by kalid on Friday July 25, 2014 @12:42PM (#8086118)
Great example, I like that. I started realizing that many instructors don't necessarily have an intuition for the topic they're teaching, and it's often up to the individual student to seek it out. I'm hoping to do more stats concepts down the line, this is a nice analogy for why standard deviation is defined as it is.
Re:Math Intuition Cheatsheet by mathattack on Friday July 25, 2014 @09:48AM (#8085132)
Kalid - First of all, your site kicks ass! Keep doing what you're doing. You probably can't even imagine the 2nd and 3rd order impacts of the benefits you provide. Someone gets one insight from your site, that makes something they learn in school more comprehensible, and then it explains it to someone else, who then can learn more quickly....

Bithive123 - I found that practicing Project Euler has helped my understanding a lot. Part of it was that it made math a joy again, and I tied it to learning new programming languages.

Re:Math Intuition Cheatsheet by kalid on Friday July 25, 2014 @12:27PM (#8086044)
Thanks so much. My meta goal is to help people gain confidence in what it means to learn (in general, not just math) and ideally encourage people to share their insights with others. No reason for us to all bump our shins on the same coffee table in a dark room, someone turn on the lights on your way out!
Re:Math Intuition Cheatsheet by __Joker on Friday July 25, 2014 @07:17AM (#8084628)
Unfortunately, most of the mathematical text miss the historical context which they are developed in. I personally enjoy a text in any subject, where the author develops the content with historical perspective.

Any learning course should include one textbook which develops the content from an historical perspective.

Re:Math Intuition Cheatsheet by kalid on Friday July 25, 2014 @12:43PM (#8086127)
I agree. A few years after doing articles, I started seeing the power of historical context.

For example, the Fourier Transform was originally _rejected_ as implausible when presented to the mathematicians of the time. They needed a decade of debate to verify its truth, and yet we teach it to students in a week and expect them to internalize it without issue. We need to acknowledge the difficulty/counter-intuitive nature of the idea up front.

Re:Math Intuition Cheatsheet by JacobAldridge on Friday July 25, 2014 @01:55AM (#8083942)
Kalid, I just read your article on Prime numbers (not-quite randomly selected from the homepage). I just wanted to say how well written I found it - even beyond the technical side of things, your writing style, tone, and humility ("if I didn't mess it up") are fabulous.
Re:Math Intuition Cheatsheet by kalid on Friday July 25, 2014 @02:15AM (#8083974)
Thank you Jacob, I really appreciate it. I try to imagine that I'm writing to a younger version of myself, who hasn't seen the material yet. It helps me remove potential anxiety about not knowing everything, or trying to impress -- there's no reason to deceive yourself about what you do or don't know.
Re:Math Intuition Cheatsheet by JadeNB on Friday July 25, 2014 @10:08AM (#8085230)
Since we've mentioned the article, I can't help asking about a particular tit-bit that caught my attention --what do primes have to do with quantum mechanics?
Re:Math Intuition Cheatsheet by kalid on Friday July 25, 2014 @01:10PM (#8086236)
Definitely not an expert, but I found a few good articles on this (just updated the article):

http://seedmagazine.com/content/article/prime_numbers_get_hi... Nice summary: http://carbonatoms.wordpress.com/2009/03/13/prime-numbers-ar...

Primes appear to be zeroes of the Reimann Zeta Function. Nature loves minimizing energy, so there might be some reason the Zeta Function models how atoms behave. Then, primes are the most "stable orbits" or have a similarly useful property.

Super high level, but I think it's interesting.

Re:Math Intuition Cheatsheet by JadeNB on Saturday July 26, 2014 @09:53PM (#8091677)
Thanks! I am a mathematician, so am fine with the discussion of the 𝜁 function. I get the impression that de Sautoy is overselling the connexion a little bit in his zeal to make an analogy, but (1) I don't know the area, and so shouldn't really comment, and (2) it's interesting even if it's oversold.
Re:Math Intuition Cheatsheet by chaoxu on Friday July 25, 2014 @04:38AM (#8084243)
> Embarrassingly, years after a poorly-timed calculus course left me thinking I had to be able to prove the central limit theorem in order to use calculus

Why would you need to prove central limit theorem in order to use calculus? What kind of course teach it that way? It would sound like something to prove for a honors calculus class that prepares students to become mathematicians.

Anyways, about math education. Math below college are taught by math educators. They are no mathematicians and they do things differently.

Things in college are rigorous. Should college students learn calculus in a way that make engineers happy and mathematicians cringe? "Learning things not from first principles but 'intuition' of the real world? what is this? physics 101? ".

Different professor/department views it differently, depend on the view, you will get different education.

There are places offering business calculus. I personally believe to be much better way to teach calculus to people who don't really need to know how things work, but still need to know how to use it(at least for simple functions appearing in the real world).

> programming as a discipline has learned to avoid; encouraging varied and/or terse notations, opaque variable naming schemes, and arbitrary use of jargon where simpler terms would suffice.

Why should all mathematicians suddenly write things with the exact same convention just so people can learn it easier? Likely, most people who benefits from these won't advance mathematics in anyway.

Here is what I see when you wrote these things, but might sounds more interesting in a programming perspective.

"The barrier of not able to program comes from the number of programming languages, it be nice if we can all agree on the same programming language so I never have to learn another programming language again."

Maybe learning calculus itself is more akin to learning one programming language, but rarely calculus is taught in a way to end all learning(again, depend on professor/department). When mathematicians teach calculus, they would want to teach the principles in order for one to advance even further.

and now to each point(as someone who had pure math education)

1. "encouraging varied notations" This is not true. People might have different preference because which school/field they come from, I have yet to see anyone enjoying people come up with new notations when there are some established notation(s). In general, language use in the same field are mostly consistent (for a few decades, at least). No competent mathematician would have inconsistent notation in one single article.

2. "Terse notations" A few symbols captures a whole lot of ideas. It's not software engineering, the number of different variables/symbols in a paper is not the same order of magnitude as our programs. There are books with table of symbols of around 2 pages, but usually such a book would take years to master.

3. "opaque variable naming schemes", it's a convention can be learned by doing, and you don't even need to follow someone else's scheme. In fact, not knowing the convention doesn't mean anything. Most variables are used a few times and never used again. Just a few days ago I pick up a paper by the Hungarian combinatorial optimization authors, their notation is completely different from what I usually read. Once I read the introduction, I already internalized the "table of variables/notations" so I don't even need to refer back often. To programmers, this is like complaining different open source programs use different naming scheme for their API.

4. "Arbitrary use of jargon where simpler terms would suffice". I do not believe this happens often in mathematics. Mathematicians likes things to be elegance, simple and precise. There must be reasons for us to use a word, otherwise we won't use it.

5. "at least programmers are willing to occasionally refresh our idioms and notations to better reflect our mutual understanding." Mathematicians do this all the time, not just "occasionally". It doesn't happen in mature and well established topics where all the problems are dry. There are nonstandard analysis, complementary to the standard analysis. There are homotopy type theory to have another foundation for mathematics. Many things we seem to see it and think it's set into stone it's because there really isn't anything to be done.

Re:Math Intuition Cheatsheet by richardjdare on Friday July 25, 2014 @07:10AM (#8084604)
>>Why would you need to prove central limit theorem in order to use calculus? What kind of course teach it that way? It would sound like something to prove for a honors calculus class that prepares students to become mathematicians.

Yes, but not knowing calculus, how would he know that? Or any of those things that you have pointed out? They are certainly not taught at school (where we are unhelpfully taught an entirely different "mathematics" to that which you get at university, and will often require for advanced software work) and none of this stuff is ever pointed out in maths books.

Instead, the reader of a maths textbook is unsettled by the constant unspoken assumptions and unexplained concepts that he is already assumed to know. There is in university level maths books what looks like an almost wilful disregard for how people are actually taught mathematics at high school. How do students going from school to university cope? is there some secret occult ritual where all this knowledge is transmitted?

That's how it looks for those of us who are trying to teach ourselves, and it is in marked contrast to the experience of learning almost anything else, particularly programming.

Re:Math Intuition Cheatsheet by lfischer on Friday July 25, 2014 @01:21PM (#8086300)
What subjects are you comparing with? I don't know whether the situation is that much better for physics, for instance. I think part of the problem is that mathematics books are in general either targeted at experts or at professors who need to assign a textbook. It looks like publishers believe the market for self-taught mathematicians is too small. In contrast, programmers are a pool of people who are willing to spend money on books to teach themselves, because they hope it will have a direct career benefit. That said, mathematics curricula must vary a lot from country to country. I was taught the fundamental of calculus in my penultimate year of high school!
Re:Math Intuition Cheatsheet by richardjdare on Friday July 25, 2014 @05:36PM (#8087778)
I'm comparing maths with programming and every other subject I learned in school and after :) I do find maths difficult, which is also why I am fascinated by it. It's alien to me.

As for physics, although I have never studied it to any depth, I did enjoy reading the Light and Matter series of textbooks a few years ago.(http://www.lightandmatter.com/)

Re:Math Intuition Cheatsheet by chaoxu on Friday July 25, 2014 @02:49PM (#8086901)
"There is in university level maths books what looks like an almost wilful disregard for how people are actually taught mathematics at high school."

The way the lower level courses are taught IS similar to high school math. Low level calculus in my undergrad institution is almost the same as AP calculus in my high school. If not, then the course picked the wrong textbook.

Anything above calculus, it is fair for textbook writers to assume mathematical maturity.

"How do students going from school to university cope? is there some secret occult ritual where all this knowledge is transmitted?"

To be able to self-teach mathematics, one would have to learn w/e mathematicians do by oneself. This is however, not impossible but difficult. Here are some disadvantages: 1. It's hard to assert one's own mathematical ability. 2. No one can give you feedback(unless, you have someone with enough mathematical maturity and also have enough time to read and correct your proofs). Programming is so much easier because you can get partial feedback from compiler/interpreter and output. In fact, anything where you can see something happens is much easier. Mathematicians need to prove what we see happen is really true and it's not a wrong intuition. 3. Math books does not try to hold hands. They leave out many details to be filled in by the reader(the notorious "The proof is left as an exercise to the reader"). Sometimes, readers without enough background could gain a wrong intuition, which will screw up everything further down. It is not easy, and it be really nice to have some professor to talk to.

Now, about this "secret occult ritual". It is basically the undergraduate mathematics scene beginning at the first introductory proof class. (depend on departments, this might be as late as the beginning of the 3rd year of study)

In UIUC, there is MATH 347. In Stony Brook there is MAT 200. Around 2/3 of the students have to retake it. Imaging this. This is a set of math majors learning these things full time, with study groups, WITH FEEDBACK and 2/3 of the students didn't get C. It's not a inherently easy thing to learn. The entire class to teach people to fight one's own intuition and mental short cuts we humans make everyday.

Once this is done, the students can further take a higher level topic(a intro to analysis or abstract algebra) to get a feel of how to apply these techniques in the intro proof class. It's a long process and there is no easy way. See this book, Counterexamples in analysis. http://www.amazon.com/Counterexamples-Analysis-Dover-Books-M... Half of the things I would believe to be true from intuitive argument turns out to be completely wrong.

Finally, one might question why one have to become a half mathematician in order to use some of the tools in mathematics. Because most math books are written for people with enough mathematical maturity that can only be gained from grinding over mathematics, and without enough maturity it doesn't make sense to learn certain things anyway.

Re:Math Intuition Cheatsheet by richardjdare on Friday July 25, 2014 @04:27PM (#8087459)
Thanks for your reply, that's some useful information.

I'm writing as a self-taught programmer who has spent years trying to get a handle on the maths of game development and computer graphics; for the most part that means calculus, linear algebra and geometry.

I went to high school in the UK where I was not taught calculus, or for that matter even told that I could go to university. My experiences did lead, I must admit, to some hostility towards the educational establishment and a strong desire to succeed without their help!

I first learned of calculus when I was about 18 and I bought a book on computer graphics programming. I was all geared up to start doing some cool 3d stuff, when all of a sudden I saw this strange elongated "S" symbol, which of course was not explained in the text. This confused me, when the book had a mathematical appendix describing the simplest vector operations (which I did learn in high school) in some detail. And that was the beginning of my frustration!

There just seems to be such an enormous gulf between high school, "everyday" mathematics and anything coming after. I would like to think that in a world where programming is now so popular, that the border between everyday mathematics and the higher reaches of academia would shift a little and a kind of intermediate area would open up.

Re:Math Intuition Cheatsheet by j2kun on Friday July 25, 2014 @11:13AM (#8085614)
Your friend must have been trying to link a fast C or Fortran library to some higher level language, yeah? That's always a nightmare.
Re:Math Intuition Cheatsheet by Pxtl on Friday July 25, 2014 @12:52AM (#8083826)
To be fair, we drag around (and rigorously defend) many bad artifacts of past programming languages. Case sensitivity? Double-equals-sign for testing equality?

But still, programming seems far more willing to fix mistakes than hard sciences/math. We've been clanking around with Pi instead of Tau for how many centuries?

Re:Math Intuition Cheatsheet by djrtwo on Friday July 25, 2014 @01:06AM (#8083859)
When I took my first programming course, one of things I was most surprised by was case sensitivity. It's kind of funny thinking about it now my perspective is entirely different -- "D" and "d" aren't the same value so why would they mean the same thing?

Is case sensitivity a bad artifact? It doesn't seem like it is to me anymore, but my former self sure thought so.

Re:Math Intuition Cheatsheet by bjeanes on Friday July 25, 2014 @02:00AM (#8083946)
Salesforce's Apex language is case insensitive. It leads to a a lot of confusion, frustration, and distress when different programmers have their personal preferred style of referring to a class or var or when the lazy ones just write everything in lowercase. Never again.
Re:Math Intuition Cheatsheet by pja on Friday July 25, 2014 @04:15AM (#8084203)
Would the best of all possible worlds be a case sensitive language where once you defined a name all other names that differed only in the case of the characters would be impossible to define?

That way names would have to be referred to as written, but you would avoid the potential confusion of having multiple names that differed only in the case of their characters.

Lots of programmers would probably regard this as some terrible infringement on their freedoms but, like python's whitespace indentation, I think it might work out OK.

Re:Math Intuition Cheatsheet by marcosdumay on Friday July 25, 2014 @09:59AM (#8085186)
Besides using the field's notation (why we still can't werite greek letters easily?), I also like it a lot to use case to differentiate between kinds of elements.

For example, let's say you want to write code that communicates with an arduino. You can define a class named "Arduino", that'll be instantiated on other classes, and the instances can be called "arduino", with no problems at all. On case insentive languages one has to resort to worse names, like "arduino_t", or "arduino_instance".

Re:Math Intuition Cheatsheet by TheLoneWolfling on Friday July 25, 2014 @11:05AM (#8085558)
What if it was only for things in the same "class" (wrong word, but I'm not sure what to actually call it)?

So variables only with variables, classes only with classes, functions only with functions?

(I.e. you can define a class called Arduino (bad name, by the way) and a variable named arduino, and it won't complain, but if you then try to define a class called "ARDUINO" or a variable named "ARDUINO" it will error out.)

Re:Math Intuition Cheatsheet by marcosdumay on Friday July 25, 2014 @04:49PM (#8087576)
That would make a class of error impossible, at the cost of losing consistency (in most modern languages, the class name is just a variable that holds a class value).

I'm not decided if I like it or not.

Re:Math Intuition Cheatsheet by claudius on Friday July 25, 2014 @05:14AM (#8084329)
I like there to be a difference between a variable “p” and a variable “P” (the former, for example, might be a vector, whereas the latter could conceivably be a projector onto this vector). Especially when doing numerical work, I found it to be extremely helpful to stick to established notation in the field also in the code intended to implement the algorithms written in this notation. In this sense, I find it sometimes sad that C++ doesn’t allow boldface/curly variable names :)