As IHMO.
This is not the first topic dedicated to the problems of teaching informatics. And probably not the last. With a moan the earth is full;) The inadequacy of the present situation is clear to all. What to do is unclear to anyone. I mean, if it is clear to whom - WRITE - we will read, evaluate, declare a guru and so on. I want to express my opinion. Not a decision, but an opinion what computer science should teach.
So. Computer science should teach thinking.
“Eka Nepal,” you say, “all school subjects must be taught to think.” And you will be mistaken. All yes, not all. In my opinion, mathematics, physics, and computer science (and how strange the Russian language is in terms of writing) stand apart among school subjects. They teach to think (with a favorable development of events). In the sense of generating, not reproducing information.
Moreover, the modern school diligently wean from this process. A simple example.
After the assignment operators and the simplest arithmetic operators are given, I propose a problem. “Two numbers are given - X and Y. Swap them.” Solution time is directly proportional to the class. Those. high school solve the problem much longer than the younger ones.
The next task is this: "Given two numbers - X and Y. Swap them without using an intermediate variable." Here is a complete stupor, but the student who achieved the answer (albeit with a hint) reaches a certain state “aha-reaction”, “satori” - call it what you want and embarks on the path (dao) of programming.
Big problem - if the answer is known, then enlightenment does not occur.
This is really a problem. A teacher having 15 minutes to explain a new topic is more likely to simply produce a solution than wait for the student's “aha-reaction”.
One more problem. There are few tasks for the development of creative thinking. Simple tasks even less. But only on such problems can and should be taught computer science as the science of generating new (innovative) solutions. Reproduction of ready-made programs does not even teach how to work with a keyboard, and even less about programming.
BTW. As it turned out, not all Habr visitors know how to solve the second problem. I ask you not to bring solutions in the discussion. Let everyone determine whether Tao programming is available to him.
And more: I am ready to argue you have favorite tasks. Please send. I will be glad.
OVER HOUR. I was hoping for your tasks, not for your decisions.
And all the more not on your moans about our education.