Some countries are not only introducing computer lessons in primary schools,
they are also pushing for computer programming lessons for school children.
Do you agree ?
I have mixed feelings about this.
Being a software engineer myself, I know very well that it's not a thing for anybody. Certain people's brains simply aren't wired to think like you must do in order to code.
On the other hand, the same can be said about math - but that's no excuse to not teach math.
However, I do see the benefit in some sort of "ICT basics" course, where one not only learns how to use certain applications, but where one also learns how the application itself works. The basics of how a computer works, what software is, what an operating system does, etc.
By way of example, one could go through some lines of codes and perhaps make one or more "hello world!" applications. That should cover enough of the basics to really understand what software is.
But an actual course dedicated to programming?
No, I don't really see the point of that. The first question that comes to mind then is "which language?". In this day and age, I guess that would be javascript.
But when you say "java script", you also say "html". The learning curve to start with any programming language to do something half usefull is VERY steep.
No high school is going to go through all that trouble in order to have students write something that is half usefull.
So instead, they'll either have to do really really boring and useless things, or they'll have a bunch of code handed to them which they will not understand and where they will simply have to write a little subroutine, at which point they will fail to see the bigger picture.
In my first year at uni, the better part of the year, and accounting for the biggest chunk of points, we were taught programming structures with the help of so-called "pseudo-code".
This is not done on a computer. This is done on paper. It's only purpose is to familiarize the student with the most important programming structures and architectures. First, obviously, conditionals (if..else..then, case / select / switch,...). Then the loops (for, while, foreach, etc). Data types and the difference between value types and reference types. The concept of objects, private and public functions, encapsulation, polymorphism, abstraction etc etc etc. And when to apply what...
And all that is before we even touched a keyboard!
I realise the goal of the proposed high school course is not to turn those teenagers into professional coders, but the fact is that all those things are quite important to know and understand before you can even really start writing modern code.
While I can certainly see the value in bringing teenagers into "contact" with the world of code, I think such courses will miss their purpose and that those goals could be accomplished without it. I think it should be a lot more general.
As for the "reasoning factor" of programming... you don't need to teach students actual code languages (and all the baggage that comes with it) in order to do that.
You can, instead, just teach them about logical logarithms. This includes the main programming structures (conditionals, loops, etc) and can be done on paper with either some form of pseudo-code or with diagrams.
However, I see it as overkill and don't see the need for it in non-IT minded courses. I think an "ICT basics" course is more then enough. A course that simply explains how computers and software work and that this phone they have isn't powered by magic.