Live data from Hacker News

Math Intuition Cheatsheet

betterexplained.com

41–50 of 68 posts

Re: Math Intuition Cheatsheet

#41
post #8

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…

(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 ca…

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

#42
post #28
post #17

Earlier quoted context omitted.

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.

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…

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

#43
post #19

Earlier quoted context omitted.

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.

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.

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

#45
post #28

Earlier quoted context omitted.

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…

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 language…

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

#46

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…

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

#49
post #38
post #25

Earlier quoted context omitted.

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 m…

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…

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

#50

Earlier quoted context omitted.

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…

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.

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.

Post reply on HN