Programming teaches exceptionally useful skills
In their third blog, based on the white paper, Practical Programming in Computing Education, the NCCE Academic Board members explain why practical programming is key to computer science, not just an optional add-on.
In school computing, we should aim to develop in learners the necessary knowledge and skills to be able to use computing practically in other areas of their lives, for example, in other school subjects, the jobs they will take up, or when studying at university. The practical programming that we argue is so essential in school lays the foundation for this practical use of the subject in all these other areas, including:
- Digital literacy: Every child needs to be digitally literate and a confident and competent user of computer systems (the fourth aim of the Computing National curriculum). Programming underpins that competence by giving the learner an accurate understanding of what is going on rather than just guessing and trying things randomly. It also offers knowledge of what is possible and when computer systems themselves are inadequate.
- Further study: Programming provides the foundation for higher study at A level and beyond. Computation over large data sets is becoming pervasive in many subjects, and programming and modelling skills are increasingly necessary rather than merely desirable and applied in many school subjects.
- The workplace: Practical computing skills, especially programming, are enormously valuable when students later enter the world of work. Programming skills equip students for work in the tech sector but are also highly prized across other professions, which will only increase in the future.
- Life: As learners progress with their lives, they will need to be able to both do and understand computing to be successful citizens. Great computational thinking, of value almost everywhere, will come from good programming experience.
Programming projects develop teamwork, communication, logical thinking and problem-solving skills
These are the “soft skills” highly prized by employers and others. Practical work in computing offers repeated opportunities to develop, exemplify and practice these skills.
Programming informs critical judgement
The experience of how hard it is to get a program right and how subtle bugs can be may help students have more accurate and well-founded critical judgement about the application of computing. Knowing that systems they use may have bugs or be poorly designed and unnecessarily complex engenders a very different attitude than the blind faith one sometimes sees. It avoids the common refrain “I can’t use computers” when the problem is that they are unusable. There have been several high profile cases in recent years, exemplified by the Post Office Horizon software scandal, where a computer system was blindly trusted over humans, leading to thousands of lives ruined. Such scandals would be far less likely if more people understood how easily programs can be fallible and were more critical in using them.
Looking to the future
In the professional world, computing is already changing not only how we do science, but what science we do; not only how we do art to what art we do - similar in almost all subject disciplines. These profound changes within subject disciplines will increasingly appear in schools (as they have already in geography and design and technology, for example), and success will depend critically on the students' digital competence.
You can read the full paper and comment on it in this CAS Discourse thread.