Don't forget the ethical aspects
After all teaching children how to code is useless without them knowing why and what to code. Most of the problems with IT in our society is caused by programmers not thinking through what consequences their actions have. If you write a messenger which stores contact lists on some central server, instead of finding a decentralized approach, you are responsible for someone abusing that data and perhaps even raiding the home of someone, just because they had some the phone number of someone in an opposition party on your phone.
Code shapes the world. And better code can make the world a better place. People need to see their responsibility.