Understand what algorithms are, how they are implemented as programs on digital devices, and that programs execute by following precise and unambiguous instructions.
Use logical reasoning to predict the behaviour of simple programs.
Create and debug simple programs.
Recognise common uses of information technology beyond school.
Design, write and debug programs that accomplish specific goals, including controlling or simulating physical systems; solve problems by decomposing them into smaller parts.
Use logical reasoning to explain how some simple algorithms work and to detect and correct errors in algorithms and programs.
Use sequence, selection, and repetition in programs; work with variables and various forms of input and output.
Select, use and combine a variety of software on a range of digital devices to design and create a range of programs, systems and content that accomplish given goals, including collecting, analysing, evaluating and presenting data and information.
Analysing problems in computational terms, and have repeated practical experience of writing computer programs in order to solve such problems
Evaluating and applying information technology, including new or unfamiliar technologies, analytically to solve problems
Practicing to be responsible, competent, confident and creative users of information and communication technology
Understanding and applying the fundamental principles and concepts of computer science, including abstraction, logic, algorithms and data representation
Using information technology to create programs, systems and a range of content
Create, reuse, revise and repurpose digital artefacts for a given audience, with attention to trustworthiness, design and usability.
Design, use and evaluate computational abstractions that model the state and behaviour of real-world problems and physical systems.
Understand several key algorithms that reflect computational thinking [for example, ones for sorting and searching]; use logical reasoning to compare the utility of alternative algorithms for the same problem.
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.
Understand the hardware and software components that make up computer systems, and how they communicate with one another and with other systems.
Undertake creative projects that involve selecting, using, and combining multiple applications, preferably across a range of devices, to achieve challenging goals, including collecting and analysing data and meeting the needs of known users.
Debug (identify and fix) errors in an algorithm or program that includes sequences and simple loops.
Decompose (break down) the steps needed to solve a problem into a precise sequence of instructions.
Develop plans that describe a program’s sequence of events, goals, and expected outcomes.
Give attribution when using the ideas and creations of others while developing programs.
Develop programs with sequences and simple loops, to express ideas or address a problem.
Compare and refine multiple algorithms for the same task and determine which is the most appropriate.
Create programs that include sequences, events, loops, and conditionals.
Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.
Modify, remix, or incorporate portions of an existing program into one's own work, to develop something new or add more advanced features.
Take on varying roles, with teacher guidance, when collaborating with peers during the design, implementation, and review stages of program development.
Test and debug (identify and fix errors) a program or algorithm to ensure it runs as intended.
Use an iterative process to plan the development of a program by including others' perspectives and considering user preferences.
Create programs that use variables to store and modify data.
Create clearly named variables that represent different data types and perform operations on their values.
Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
Distribute tasks and maintain a project timeline when collaboratively developing computational artifacts.
Document programs in order to make them easier to follow, test, and debug.
Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
Systematically test and refine programs using a range of test cases.
Design and iteratively develop programs that combine control structures, including nested loops and compound conditionals.
Design projects that combine hardware and software components to collect and exchange data.
Model how computer hardware and software work together as a system to accomplish tasks.
Collect data using computational tools and transform the data to make it more useful and reliable.