I think your points are fair. However, I see lots of practical coursework at even purely liberal arts school. Architecture, accounting, chemistry, etc. all have direct and practical learnings.
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?
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.
One big problem. No one that is a capable enough developer to teach computer science is going to be teaching at a high school. And more pay isn't an answer, the problem is bureaucracy and endemic stupidity in the institutional structure of public primary and secondary education.
I think it depends. My teacher for the AP class was a former student/MIT graduate and was starting his own business. This was as exception from the norm, but it's possible!
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?