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

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