PROGRAMMING, EDUCATION, AND RATIONALITY
Do you hold a consistent mental model of the world? For many of us (though less likely for the readers of this blog), the answer is “no.” That’s troubling. It’s hard to be correct, if your world-view doesn’t even type check.  People are entitled to opinions. But hold them in a state of contradiction, and they’re wrong.
Though it’s easy enough to apply consistency checks, inconsistent world-views abound. I suspect it’s because people never learn to be consistent. Education under-represents logic and reason in the classroom. High school math class is the closest many people come to an education in rationality, and math is “just too abstract.”
People think they aren’t good at math, or that it’s not practical. This may be unavoidable. But math, as taught at the level of K-12 education, is not the only way to develop notions of logic and reason. For something else is practical: computer programming. 
Held at the right level of abstraction, programming is no more difficult than basic mathematics. It’s certainly valued in the workplace. Yet few public schools teach it, and almost no elementary schools do.  Programming teaches the value of logic and consistency, but still appeals to a narrow view of self-interest.  It even engenders creativity (more so than mathematics, at beginning levels). All this would seem perfect for the modern student.
Perhaps educators haven’t caught up with modern trends, or infrastructural costs are too high. I know little, directly, of the education space, and so I won’t comment. But it does seem we miss an opportunity, when we abandon computing to the highest levels of education. Get them while they’re young — the world would benefit from more rational minds, and more consistent mental models.
1 A metaphor to programming languages: the set of correct programs is a subset of those which type check.
3 And even there it’s taught as an elective.
4 Monetary reward, and computational leverage (in the limit, strong A.I.).