Programming and algorithms within the computing curriculum
As part of the NCCE’s ongoing series exploring teaching and learning within computing, today we are publishing a report on Programming and Algorithms within the Computing Curriculum. This comprehensive report explores the strands of ‘programming’, ‘algorithms’, and to a certain extent ‘design and development’, to emphasise that programming is much broader than simply writing code. It is a fundamental form of expression within the discipline of computing; one that enables learners to build, create, and apply their understanding.
One of our goals is to develop and publish teaching and learning reports that explore a particular aspect or theme of the computing curriculum. Earlier this year, we shared our first teaching and learning report focused on Digital Literacy within the Computing Curriculum, and more recently Computer Systems and Networking within the Computing Curriculum; as of today, you can read our report on programming and algorithms.
“Through programming, learners can create new tools and experiences, solve complex problems, and express ideas. This broad application of the skill alongside the increasing pervasiveness of computing in all areas of our lives makes programming an important and relevant skill for all learners.”
The programming and algorithms strands are a crucial part of the computing curriculum, and it is important that all learners experience and understand the fundamental skills involved. Therefore, we set out with the intention of demonstrating learners’ progression in this area of the curriculum and highlighting appropriate pedagogical strategies for these computing strands.
In exploring the concepts within this area, we highlight how the main ideas, concepts, and skills are developed over time and we summarise this progression in high-level learning graphs covering key stages 1 to 5. We believe that a broad understanding of the progression that learners make between the ages of 5 and 18 will provide all educators with a valuable insight into what their learners already understand as well as what lies ahead.
In the report, we emphasise the different ways in which programmers interact with a program, its execution, design, as well as the problem or need it aims to address. These interactions occur at different levels of abstraction and a key assertion of our report is that learners need to be aware of each of these levels and be able to move between them with ease.
We also recommend a selection of relevant pedagogical principles and associated practices that computing educators can apply to support their practice. Each of these principles and practices comes with associated further reading.
Finally, we identify the many opportunities for teachers to develop their own skills, understanding, and practice in this area through the range of professional development options offered by the NCCE.