Why teach these things with programming? Historically we, the west, have taught these things with philosophy. That's how we went from tribalism to democracy. Why not teach with philosophy?
I know that we live in a technical world, but no matter what, we live in a philosophical world. Everyone deals with philosophy (either reflective or forced upon them) daily. How we work with each other might be via a keyboard and mouse, by why we work with each other is philosophical. It would be better to teach various systems of thought, allow a dialectic to occur, and get a better, more informed citizen.
I know that we live in a technical world, but no matter what, we live in a philosophical world. Everyone deals with philosophy (either reflective or forced upon them) daily. How we work with each other might be via a keyboard and mouse, by why we work with each other is philosophical. It would be better to teach various systems of thought, allow a dialectic to occur, and get a better, more informed citizen.