An exploration of the interaction between mathematics, mathematicians and society. What would Newton see if he looked out his window?
The way i think of it is via three concepts viz. "Randomness", "Cause and Effect", "Correlation (and not causation)". Randomness assuming true uncaused nondeterministic, by definition cannot be modeled by deterministic mathematics. Cause-and-Effect in the real world is actually aggregate multiple causes giving rise to multiple effects and so trying to follow a single cause to effect presupposes you can have knowledge of every single parameter (i.e. nothing hidden) in all the causes and the same for all the effects. Correlation problem arises naturally from a combination of the above two.
Ultimately then, in the Universe; does true randomness exist or is everything deterministic and we just cannot know all parameters involved?
The philosophical text "Yoga Vasistha" uses the following example to illustrate the above; a crow alights on a palm/coconut tree and a fruit falls; is it cause-and-effect or a random occurrence? Can we ever know?
This is why all mathematical models are a simplification and we always make simplifying assumptions on what to ignore when constructing a model and agree to accept the model when the error delta of the result is small enough for our needs. Hence assumptions like "fair dice", "fair coin" etc. in probability theory.
Note that this is not to say we cannot get close to Reality; all of Science is proof that we can, but that there will always be that gap/error delta between Reality and our Model of it. For many cases it may not matter eg. all our technology today, but in some very important cases it does eg. Consciousness.
You might find the following books useful in this regard;
1) Ivar Ekeland has a series of popular mathematics books viz. a) Mathematics and the Unexpected b) The Broken Dice, and other Mathematical Tales of Chance c) The Best of all Possible Worlds: Mathematics and Destiny which i have found pretty interesting and thought-provoking in this regard - https://en.wikipedia.org/wiki/Ivar_Ekeland Read the first one in particular.
2) Timothy Gowers' Mathematics: A Very Short Introduction is more focused on Concepts/Abstraction/Models and hence relevant here.
Mathematics for the curious - Peter Higgins
Mathematics rebooted - Lara Alcock
Mathematics: a very short introduction - Timothy Gowers
The Essence of Mathematics Through Elementary Problems
https://open.umn.edu/opentextbooks/textbooks/the-essence-of-...
Tim Gowers' Mathematics: A Very Short Introduction is a popular book on doing mathematics. Not a textbook that teaches you mathematics, so wouldn't give this as the only book, but popular "what's the field like" books could be very interesting to a high schooler.
Also, not suitable for the only book, Penrose's The Road to Reality. It gets very advanced and probably can't be fully tackled without additional mathematical education, but it tries to be an honest exposition of the math needed for modern physics from the ground up without explicitly resorting to external knowledge. I would have loved a "this will teach you all of the math if you can get through it" book like this even if I never did manage to get through it.
"A prejudice that was strongly confirmed was the value of mathematical fluency. Barton says, and I agree with him (and suggested something like it in my book Mathematics, A Very Short Introduction) that it is often a good idea to teach fluency first and understanding later."
Agree fully with Barton and OA here. Until recently I taught GCSE Maths re-take students aged 16 and over in a further education college. They were constantly tripping over really quite basic little skill issues and that prevented them from seeing how to tackle the longer and more complex problem solving questions.
"I would go for something roughly equivalent [in the solving of equations such as 4x - 8 = 2x + 2], but not quite the same, which is to stress the rule you can do the same thing to both sides of an equation (worrying about things like squaring both sides or multiplying by zero later). Then the problem of solving linear equations would be reduced to a kind of puzzle: what can we do to both sides of this equation to make the whole thing look simpler?"
The idea of just playing with the notation is one I fully intend to try but getting people to think in that abstract way is hard work.
That page in turn was found at the end of the author's book 'Mathematics: a Very Short Introduction', which is pretty good exploration of what goes into mathematical definitions and how modern mathematical thinking works, addressed towards the layman but without excessive watering down of the subject.
But that's not why it's hard to read. Math is hard to read, I think, because math is hard:
(1) Some core mathematical concepts are fundamentally difficult. Notions like infinity (and different kinds of infinity!) are entirely foreign to our daily experience.
(2) In addition, mathematics is more abstract than most programming. Tim Gowers, in his lovely little book Mathematics: A Very Short Introduction, writes:
What is the black king in chess? This is a strange question, and the most satis-
factory way to deal with it seems to be to sidestep it slightly. What more can one
do than point to a chessboard and explain the rules of the game, perhaps paying
particular attention to the black king as one does so? What matters about the
black king is not its existence, or its intrinsic nature, but the role that it
plays in the game.
The abstract method in mathematics, as it is sometimes called, is what results
when one takes a similar attitude to mathematical objects.
This sort of abstraction is, I think, abhorred by many programmers. But it's the reason single-letter variable names are common in mathematics. There's no way to describe what a mathematical object is with a name relating it to some real-world, concrete, familiar thing, as programmers often try to do. You can only describe what it does by writing down some rules it obeys.*(3) In math, concepts are inherently more hierarchical than is common in programming. As programmers, we're all familiar with building higher-level things from lower-level pieces. And we try, and often succeed, in building them up in ways that let other people use them without needing to know much of anything about the lower-level pieces. In math, there's a similar accretive process, but because the concepts are so much more abstract, it's often impossible to understand how a high-level concept behaves without understanding how its lower-level constituents behave. Mathematical concepts are conceptually hierarchical, whereas pieces of programs are often structurally hierarchical, but conceptually (nearly) orthogonal.
* — (A controversial aside.) An object-oriented mindset can exacerbate the problem by demanding that we reify concepts into objects that represent what they "are". This is often impossible, hence the inscrutable object names we've all laughed and despaired at.
Phil Karlton's well known witticism comes to mind:
There are only two hard things in computer science: cache invalidation and naming
things.
Naming things is hard because, just like in math, we sometimes lack a familiar semantic reference for the concepts we deal with as programmers.Conversely, in functional languages, there's less need to think about what something "is", because the natural way of programming is to define relations (functions) on a small number of core data structures. Interestingly, single-letter variable names are also common in some functional languages, like Haskell, because it generally doesn't matter what the data is so long as you know what you can do with it. And that information is embodied in its type, expressed in its type signature, and enforced by the type-checker at compile time.