Level 3
Unit No:
Guided learning hours:
42 hours


Learners will become familiar with the underpinning concepts of programming and how it is implemented.

Unit Learning Outcomes


Understand programming languages.

Principles and concepts:

Procedural languages: statements (lines of code in sequence), blocks (one or more declarations or statements), procedures (independent code module that fulfils some concrete task and is referenced within a larger body of source code), modularity (splits program up into small parts or chunks, each one of these chunks contribute to the program and performs a task), tools and techniques (functions, procedures, libraries, parameters, debugging).

Programming languages: e.g. Pascal, C, Cobol, Fortran.

Object-orientated languages classes (template for creating object, a user-defined data type, which holds its own data members and member functions), objects (specific instance of a class; it contains real values instead of variables), abstraction (handles complexity by hiding unnecessary details from the user), encapsulation (bundles data and methods that work on that data within one unit), inheritance (reusability, enables new objects to take on the properties of existing objects), polymorphism (the ability of a variable, function or object to take on multiple forms), tools and techniques, predefined functions, templates, integrated development environment (IDE).

Programming languages: e.g. Visual Basic.NET (VB.NET), C++, C#, Java, Python.

Event-driven languages: vents (user actions, sensor outputs, or messages from other programs or threads), event handlers (series of subroutines or methods), event loops (main loop in a program that typically waits for the user to trigger something), time driven (code that runs on a time trigger), trigger functions (chooses which event handler needs to be run for the event that has occurred), tools and techniques (use of tool boxes and controls, selection, loops, event handlers, objects and object properties, menus).

Programming languages: e.g. Visual Basic, Visual C++ and Java.

Assessment Criteria

  • 1.1

    Explain the principles and concepts of programming languages.


Understand how programming is implemented.

Variables: integer, float, Boolean, string, character.

Programming control structures: sequence (line-by-line execution), selection (if…then…else, ELSEIF (ELIF), nested if, case/switch)

Iteration: repeat, for, while, do-while.

Common data structures uses: linked lists, arrays, stacks, queues.

Algorithms: sorting (bubble, quick, insertion, merge), searching (serial/linear, binary).

Test and debug programs: tools used to debug programs logical next line, step into, step out, next instruction, break point).

Ordered stages of testing: black box, white box, alpha, beta.

Assessment Criteria

  • 2.1

    Interpret variables within programming languages.

  • 2.2

    Interpret common programming control structures that are used when developing code.

  • 2.3

    Describe the use of common data structures.

  • 2.4

    Describe how algorithms are used in programming.

  • 2.5

    Describe how to test and debug programs.


Understand the importance of good programming practices.

Common coding standards: open (free to apply own style for code), not limited for language constructs, can select any programming language.

Organisational: common style guide for code, guide for language constructs, pre-determined programming language.

Good programming practices: commenting, documentation (to keep a log of events), consistent indentation (shows logical structure), code grouping (grouping data so that the elements in each group share a common attribute), consistent naming (so that variables are easily identifiable), camel case, underscores, Don’t Repeat Yourself (DRY) principle (to reduce the amount of work required to extend and maintain the software in the future), programming refactoring (to improve non-functional attributes of software).

Assessment Criteria

  • 3.1

    Identify the elements of common coding standards.

  • 3.2

    Explain the role and importance of good coding practices.


Understand functional and non-functional requirements in programming

Functional requirements: calculations, technical details, data manipulation, data processing.

Non-functional requirements: accessibility, efficiency, reliability, scalability, maintainability, security, robustness.

Functional testing: unit testing, smoke testing, integration testing, system testing.

Non-functional testing: availability testing, compatibility testing, configuration testing, load testing.

Assessment Criteria

  • 4.1

    Identify the types of functional and non-functional requirements.

  • 4.2

    Describe the tests used for functional and non-functional requirements.