Skip to main content

07 June 2022

Programming teaches exceptionally useful skills

Simon Peyton Jones profile image
Written by

Simon Peyton Jones

In their third blog, based on the white paper, Practical Programming in Computing Education, the NCCE Academic Board members explain why practical programming is useful 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, e.g. in other school subjects, in the jobs they will take up, or when studying other subjects 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. For example:

  • Digital literacy. Every child needs to be digitally literate, 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 really going on, rather than just guessing and trying things randomly. It also gives an understanding of what is possible and when computer systems themselves are inadequate.
  • Further study. Programming lays the foundation for higher study, at A level and 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 a range of school subjects.
  • The workplace. Practical computing skills, especially programming, are enormously valuable when students later enter the world of Programming skills equip students for work in the tech sector, but are also highly prized across a huge range of other professions. This will only increase in the future.
  • As learners progress with their lives, they will ever more need to be able to both do and understand computing in order to be successful citizens. Great computational thinking, of value almost everywhere, will come from great programming experience.

 

Programming projects develop teamwork, communication, logical thinking, and problem solving skills. These are precisely the “soft skills” that are so 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 to have more accurate and well-founded critical judgement about the application of computing. Knowing that the systems they are using may have bugs, or may be poorly designed and unnecessarily hard to use, engenders a very different attitude than the blind faith one sometimes sees, and avoids the common refrain “I can’t use computers” when the problem is that they are unusable. There have been a series of 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 many innocent sub- postmasters and mistresses being jailed with thousands of lives ruined. Such scandals would be far less likely if more people understood how easily programs can be fallible, and so were more critical in them rather than investing blind faith.

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; and similarly in almost all subject disciplines. These profound changes in subject disciplines will increasingly appear at school level (as they have already in geography and design and technology, for example), and success will depend critically on students' digital competence.

Read the full paper, and comment on it on this CAS Discourse thread.

Discussion

Please login to post a comment