Programming is a tool like maths. There are many people who whose life would be greatly enriched by a simple knowledge of ratios and estimation. Yet most claim they have no need of maths.
Programming need not be taught for its own sake. It could be an enabler together with maths. A tool for exploring concepts. A lot of maths is difficult because it is so far from everyday concepts. So it takes a great deal of effort to supply the materials needed to build the supporting mental models. von Nuemann said "In mathematics you don't understand things. You just get used to them". One way is to drill lots of problems but this is boring and only a few people are disciplined enough to do it. Another way is to program the concept (all the maths an average person needs is finite, algorithmic and constructive), explore lots of variations, improve intuition, give a basis of attachment to motivate short quick drills to be able to then improve the model.
The power of programming is that it gives you a way to concretize abstract concepts in a virtual setting. Lessening the distance, hence making it more approachable. I have only a little doubt that I can teach a random 10 year old the basics of special relativity up to accounting for acceleration, using programming. And I am certain they would be able to learn Bayesian probability by playing with a programmable model designed to teach it.
There is also the added benefit of strengthened analytical thinking. You cannot know how a simple scripting knowledge can help a person without being them. My suspicion is it would help most people in some way. But no one can make use of something whose existence they are unaware of.
> But no one can make use of something whose existence they are unaware of.
Exactly. Like you mentioned about ratios or estimation, imagine someone who had no idea what algebra was. If society let them claim it was useless to them, even if they never sit down and solve equations as part of their job, having a slightly deeper understanding of mathematics would influence how they interact with the world.
Even just knowing that a computer can be programmed, understanding data structures when working with office programs, understanding security when using passwords, automating things like personal finance, or understanding what they're being sold, would be a big step up. Understanding more than just mystical flickering 1s and 0s from some Hollywood movie would enable so much.
Programming need not be taught for its own sake. It could be an enabler together with maths. A tool for exploring concepts. A lot of maths is difficult because it is so far from everyday concepts. So it takes a great deal of effort to supply the materials needed to build the supporting mental models. von Nuemann said "In mathematics you don't understand things. You just get used to them". One way is to drill lots of problems but this is boring and only a few people are disciplined enough to do it. Another way is to program the concept (all the maths an average person needs is finite, algorithmic and constructive), explore lots of variations, improve intuition, give a basis of attachment to motivate short quick drills to be able to then improve the model.
The power of programming is that it gives you a way to concretize abstract concepts in a virtual setting. Lessening the distance, hence making it more approachable. I have only a little doubt that I can teach a random 10 year old the basics of special relativity up to accounting for acceleration, using programming. And I am certain they would be able to learn Bayesian probability by playing with a programmable model designed to teach it.
There is also the added benefit of strengthened analytical thinking. You cannot know how a simple scripting knowledge can help a person without being them. My suspicion is it would help most people in some way. But no one can make use of something whose existence they are unaware of.