Honestly at this point it is not programmers we need but more people with a solid general culture about computing:
What's the internet? where is the cloud? Where are data stored? How do they pass around?
What's a computer? A smartphone? Where is data stored? Where is computing happening?
Most of them will never be coders, and whichever platform you use to teach basic programming would probably be obsolete by the time they are out.
If you really want to do programming, I'd be doing some Arduino Through Blockly (https://ardublockly.embeddedlog.com/index.html) and hit two birds with one stone: it will give them basics of programming and also demystify some things about electronics.
Kids fascinated about blinking LEDs or running motors can then dig into electronics, students wondering what that weird C program on the right is when a blockly program is assemblend can join us in the Dark Side.
I agree — what you usually get too little off as a kid is a decent overview. The good teachers I had e.g. in history gave me a feeling for what even existed and what it meant. The bad teachers made us learn some really elaborate detail, without showing us what it was used for or how it fitted the bigger picture (chemistry, and sadly, maths).
So I agree with the points made by the parent above. Additionally it can be quite good if you manage to take their fear of something e.g. the command line (as a gateway to programming), or some simple code.
They shouldn’t be able to perfectly use all these things afterwards, but they should know they exist, know where to read more, and have a feeling which problems it could solve for them.
I think in times where all the kids are growing up with glowing touch-rectangles that hide file systems etc, giving them a little feeling that there is more is important.
The worst you can do is showing them some useless usecase that their glowing touch-rectangle can do better, faster and easier.
Remember: education is when you change how people see the world, not when you change what they can do.
Personally, I would respect high school students enough to have them write actual lines of code and not drag and drop blocks. The Arduino language and libraries are abstracted enough as to not provide major difficulty.
Those who really have an aptitude for it will be able to implement datastructures and algorithms in it, and those that don't will be able to muddle through copying and pasting enough code to get it running.
If you go directly to code, you'll hook the people who would end up being hooked anyway. You will lose all the other too embarrassed to ask what is a file and how you edit it, what is this folder thing, etc... Those are the one you want to teach.
I tried teaching by giving the classes I wish I had. Turns out 95% of the kids are not like me and needed some crash classes in computer usage before even managing to save a file saying `print("Hello")`
What I like with Ardublocks is that it shows the lines of code next to it. If you prefer writing code directly, you can as well!
I don't really agree with a lowest common denominator approach to teaching. Expose kids to algorithms (how to shuffle cards, how to sort cards), expose kids to basics of programming (ScratchJr, LOGO), and so on. The basics never go obsolete. The kids who have a knack for it will love it and go on to learn more. The kids who don't will at least get some basic idea of what these things are.
My daughter asked me the other day what a file was. She is 9 y.o. now. I tried to explain the best way I could making reference to a living cell, but she didn't know what a cell was either. After some time she finally got the concept and felt genuinely thrilled about it. I thought: what a good starting point for explanations about anything related to computing.
What's the internet? where is the cloud? Where are data stored? How do they pass around?
What's a computer? A smartphone? Where is data stored? Where is computing happening?
Most of them will never be coders, and whichever platform you use to teach basic programming would probably be obsolete by the time they are out.
If you really want to do programming, I'd be doing some Arduino Through Blockly (https://ardublockly.embeddedlog.com/index.html) and hit two birds with one stone: it will give them basics of programming and also demystify some things about electronics.
Kids fascinated about blinking LEDs or running motors can then dig into electronics, students wondering what that weird C program on the right is when a blockly program is assemblend can join us in the Dark Side.