What are "general purpose programming skills"? The UK introduced its National Computing Curriculum a couple of years ago, which requires all children to study computer science from age 4, and programming from age 10. Children can opt out of the subject aged 16.
Schools are struggling to implement the curriculum, mainly due to a lack of teaching staff that can program, but the hope is that things will improve over time.
The UK National Curriculum defines three key skills (English, Mathematics and Science) that must be studied. Computing is defined as one of the four sciences (along with Physics, Chemistry and Biology), which is why British children must now learn to code.
Some people argue that traditional computer literacy is a specialist skill, and do not think the subject should be mandatory. The counter is that the curriculum is not designed to teach specialist skills, insisting that there is a core subset of programming concepts that every educated person should understand.
The official guidance does not make it clear which programming concepts should be taught, instead offering vague recommendations. This is about as good as it gets:


use 2 or more programming languages, at least one of which is textual, to solve a variety of computational problems; make appropriate use of data structures [for example, lists, tables or arrays]; design and develop modular programs that use procedures or functions

understand simple Boolean logic [for example, AND, OR and NOT] and some of its uses in circuits and programming; understand how numbers can be represented in binary, and be able to carry out simple operations on binary numbers [for example, binary addition, and conversion between binary and decimal]



I understand this is not the place for a debate or discussion, so would like to ask if anyone could define what general purpose programming skills are, with any clarity?
General Purpose Programming Skills
General purpose programming skills can also be called Computational Thinking. Computational thinking has four cornerstones¹:

Decomposition - breaking down a complex problem or system into smaller, more manageable parts
Pattern recognition (data representation) – looking for similarities among and within problems
Generalization (abstraction) – focusing on the important information only, ignoring irrelevant detail
Algorithms - developing a step-by-step solution to the problem, or the rules to follow to solve the problem

Computational Thinking: What It Is, and Isn't
Jeannette Wing, formerly head of the Computer Science at Carnegie Mellon Univ., Pittsburgh, PA, USA published an article in Communications of the ACM where she covers, rather nicely, the ideas of computational thinking, and how it differs from computer programming.²

Conceptualizing, not programming. Computer science is not computer programming. Thinking like a computer scientist means more than being able to program a computer. It requires thinking at multiple levels of abstraction;
Fundamental, not rote skill. A fundamental skill is something every human being must know to function in modern society. Rote means a mechanical routine. Ironically, not until computer science solves the AI Grand Challenge of making computers think like humans will thinking be rote;
A way that humans, not computers, think. Computational thinking is a way humans solve problems; it is not trying to get humans to think like computers. Computers are dull and boring; humans are clever and imaginative. We humans make computers exciting. Equipped with computing devices, we use our cleverness to tackle problems we would not dare take on before the age of computing and build systems with functionality limited only by our imaginations;
Complements and combines mathematical and engineering thinking. Computer science inherently draws on mathematical thinking, given that, like all sciences, its formal foundations rest on mathematics. Computer science inherently draws on engineering thinking, given that we build systems that interact with the real world. The constraints of the underlying computing device force computer scientists to think computationally, not just mathematically. Being free to build virtual worlds enables us to engineer systems beyond the physical world;
Ideas, not artifacts. It’s not just the software and hardware artifacts we produce that will be physically present everywhere and touch our lives all the time, it will be the computational concepts we use to approach and solve problems, manage our daily lives, and communicate and interact with other people; and
For everyone, everywhere. Computational thinking will be a reality when it is so integral to human endeavors it disappears as an explicit philosophy.


1: Source: BBC Bitesize - KS3 Computer Science - Introduction to computational thinking
2: Source: Jeannette M. Wing &quot;Computational Thinking&quot; Communications of the ACM. 49 (3): 33.