| 1 | Identify and explain the key stages of software development lifecycles | 1.1 | Identify and describe the stages in traditional software lifecycle approaches |
| 1.2 | Explain why alternative software development lifecycles have been developed |
| 1.3 | Identify and explain the key features of modern approaches to software development |
| 2 | Express, design and evaluate algorithms | 2.1 | Express algorithms in a non-executable code |
| 2.2 | Develop algorithmic solutions to well-specified problems using appropriate notation |
| 2.3 | Evaluate algorithmic solutions with appropriately selected test data |
| 3 | Identify and use programming language constructs | 3.1 | Select and use variables and constants taking into account associated data type requirements |
| 3.2 | Select and use appropriate programming structures (sequence, selection and iteration) |
| 4 | Identify and use common data structures | 4.1 | Explain and use arrays |
| 4.2 | Explain and use common structures such as lists, queues and stacks |
| 5 | Explain and use common algorithms | 5.1 | Explain and use common algorithms for searching, sorting, parsing |
| 5.2 | Explain the efficiency criteria used to evaluate such algorithms |
| 6 | Explain and use test strategies | 6.1 | Develop and apply test strategies for well-defined algorithms |
| 6.2 | Identify and explain a range of methods used to test software |
| 7 | Explain how software is modularised | 7.1 | Explain procedural and object-oriented program structure |
| 7.2 | Demonstrate the use of program structures using non-executable code |