Skip to content

A NSW Government website

Welcome to the NSW Curriculum website

NSW Curriculum
NSW Education Standards Authority

11–12Software Engineering 11–12 Syllabus

Record of changes
Implementation from 2024
Expand for detailed implementation advice

Content

Year 11

Programming fundamentals
Software development
  • Explore fundamental software development steps used by programmers when designing software

    Including:
    • requirements definition
    • determining specifications
    • design
    • development
    • integration
    • testing and debugging
    • installation
    • maintenance
  • Research and evaluate the prevalence and use of online code collaboration tools

Designing algorithms
  • Apply computational thinking and algorithmic design by defining the key features of standard algorithms, including sequence, selection, iteration and identifying data that should be stored

  • Apply divide and conquer and backtracking as algorithmic design strategies

  • Develop structured algorithms using pseudocode and flowcharts, including the use of subprograms

  • Use modelling tools including structure charts, abstraction and refinement diagrams to support top-down and bottom-up design

  • Analyse the logic and structure of written algorithms

    Including:
    • determining inputs and outputs
    • determining the purpose of the algorithm
    • desk checking and peer checking
    • determining connections of written algorithms to other subroutines or functions
  • Identify procedures and functions in an algorithm

  • Experiment with object-oriented programming, imperative, logic and functional programming paradigms

Data for software engineering
  • Investigate the use of number systems for computing purposes, including binary, decimal and hexadecimal

  • Represent integers using two’s complement

  • Investigate standard data types

    Including:
    • char (character) and string
    • Boolean
    • real
    • single precision floating point
    • integer
    • date and time
  • Create data dictionaries as a tool to describe data and data types, structure data, and record relationships

  • Use data structures of arrays, records, trees and sequential files

Developing solutions with code
  • Apply skills in computational thinking and programming to develop a software solution

    Including:
    • converting an algorithm into code
    • using control structures
    • using data structures
    • using standard modules
    • creating relevant subprograms that incorporate parameter passing
  • Implement data structures that support data storage

    Including:
    • single and multidimensional arrays
    • lists
    • trees
    • stacks
    • hash tables
  • Compare the execution of the Waterfall and Agile project management models as applied to software development

  • Test and evaluate solutions, considering key aspects including functionality, performance, readability of code, quality of documentation

  • Use debugging tools

    Including:
    • breakpoints
    • single line stepping
    • watches
    • interfaces between functions
    • debugging output statements
    • debugging software available in an integrated development environment (IDE)
  • Determine sets of suitable test data

    Including:
    • boundary values
    • path coverage
    • faulty and abnormal data
  • Determine typical errors experienced when developing code, including syntax, logic and runtime, and explain their likely causes

Related files