Skip to content

Programming Fundamentals

NESA

Software Development

Key Description Reference
PF-SD-01 Explore fundamental software development steps used by programmers when designing software SDLC
PF-SD-01.1 requirements definition
PF-SD-01.2 determining specifications
PF-SD-01.3 design
PF-SD-01.4 development
PF-SD-01.5 integration
PF-SD-01.6 testing and debugging
PF-SD-01.7 installation
PF-SD-01.8 maintenance
PF-SD-02 Research and evaluate the prevalence and use of online code collaboration tools

Designing Algorithms

Key Description Reference
PF-DA-01 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
PF-DA-02 Apply divide and conquer and backtracking as algorithmic design strategies
PF-DA-03 Develop structured algorithms using pseudocode and flowcharts, including the use of subprograms
PF-DA-04 Use modelling tools including structure charts, abstraction and refinement diagrams to support top-down and bottom-up design
PF-DA-05 Analyse the logic and structure of written algorithms
PF-DA-05 determining inputs and outputs
PF-DA-05 determining the purpose of the algorithm
PF-DA-05 desk checking and peer checking
PF-DA-05 determining connections of written algorithms to other subroutines or functions
PF-DA-06 Identify procedures and functions in an algorithm
PF-DA-07 Experiment with object-oriented programming, imperative, logic and functional programming paradigms Programming Paradigms

Data for Software Engineering

Key Description Reference Comment
PF-DSA-01 Investigate the use of number systems for computing purposes, including binary, decimal and hexadecimal Data Types
PF-DSA-02 Represent integers using two’s complement Data Types
PF-DSA-03 Investigate standard data types Data Types
PF-DSA-03.01 char (character) and string Data Types
PF-DSA-03.02 Boolean Data Types
PF-DSA-03.03 real Data Types There is no real data type. float, double is the closest you get in any language
PF-DSA-03.04 single precision floating point Data Types
PF-DSA-03.05 integer Data Types
PF-DSA-03.06 date and time Data Types
PF-DSA-04 Create data dictionaries as a tool to describe data and data types, structure data, and record relationships Databases
PF-DSA-05 Use data structures of arrays, records, trees and sequential files Data Structures

Developing Solutions with Code

Key Description Reference Comment
PF-DSC-01 Apply skills in computational thinking and programming to develop a software solution
PF-DSC-01.01 converting an algorithm into code
PF-DSC-01.02 using control structures
PF-DSC-01.03 using data structures
PF-DSC-01.04 using standard modules
PF-DSC-01.05 creating relevant subprograms that incorporate parameter passing
PF-DSC-02 Implement data structures that support data storage
PF-DSC-02.01 single and multidimensional arrays
PF-DSC-02.02 lists
PF-DSC-02.03 trees
PF-DSC-02.04 stacks
PF-DSC-02.05 hash tables
PF-DSC-03 Compare the execution of the Waterfall and Agile project management models as applied to software development SDLC Odd place for this
PF-DSC-04 Test and evaluate solutions, considering key aspects including functionality, performance, readability of code, quality of documentation
PF-DSC-05 Use debugging tools Missing the simplest of debugging tools, the trusted print statement
PF-DSC-05.01 breakpoints
PF-DSC-05.02 single line stepping
PF-DSC-05.03 watches
PF-DSC-05.04 interfaces between functions
PF-DSC-05.05 debugging output statements
PF-DSC-05.06 debugging software available in an integrated development environment (IDE)
PF-DSC-06 Determine sets of suitable test data
PF-DSC-06.01 boundary values
PF-DSC-06.02 path coverage
PF-DSC-06.03 faulty and abnormal data
PF-DSC-07 Determine typical errors experienced when developing code, including syntax, logic and runtime, and explain their likely causes