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.
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.)
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.
Drive the car, build your interest, then start taking classes in chemistry, physics, etc. to see how it works.
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?)
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.
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.
e was only discovered because of logarithms, not the other way around! :)
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.
http://en.wikipedia.org/wiki/Covariance#Relationship_to_inne...
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.
Any learning course should include one textbook which develops the content from an historical perspective.
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.
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.
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 :).