Regarding education at the high school and middle school level, I never had required programming courses, but we did have a Pascal course in middle school, and in high school we were offered (and I took) C++ computer programming courses at the Honors and AP level. This was at a public school, and I don't see why that can't happen at more schools.
I think introducing some type of programming into the college level for ALL majors would be valuable. I don't know if you need to inject that directly into the curriculum, maybe a series of "Development For Dummies" clubs taught/marketed by young CS and Engineering students could help bridge the gap. Maybe in exchange those students could run clubs that might open CS/Engineering students to more than analytical thinking as well.
Maybe having teachers that teach single classes on a volunteer basis?
Why not just try to inject a little tech and software thinking into the economics, marketing, sales-oriented, and management classes taught both undergraduate and graduate.
And why not teach code, as a way of learning to learn, in middle and high schools?