1. Programming Fundamentals#

Legend

  • Here - found in the module

  • Moved - found in a different module

  • Implicit - covered by the process of completing this or a different module

  • Coming Soon - to be provided at a later date

  • Not Planned - not covered in this book

1.1. Software Development#

Explore fundamental software development steps used by programmers when designing software

Research and evaluate the prevalence and use of online code collaboration tools

1.2. 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

Sequence, selection, iteration (and subroutines)

Identifying data that should be stored

  • Representing and Storing Data: 8 Queens

  • We anticipate that students will organically develop this skill as they get more practice converting pseudocode into code and also implementing programs to solve problems.

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

We anticipate that students will organically develop this skill as they become more fluent at reading flowcharts and pseudocode, particularly after completing the ‘Algorithms and Code Design’ module where they were be exposed to more examples of pseudocode.

Practice questions

determining the purpose of the algorithm

We anticipate that students will organically develop this skill as they become more fluent at reading flowcharts and pseudocode, particularly after completing the ‘Algorithms and Code Design’ module where they were be exposed to more examples of pseudocode.

Practice questions

desk checking and peer checking
determining connections of written algorithms to other subroutines or functions

Students should be comfortable with this after completing the ‘Modules and Functions’ and ‘Algorithms and Code Design’ modules where they will have practice writing subroutines and functions in both pseudocode and Python.

Identify procedures and functions in an algorithm

Functions return values to the calling scope whereas procedures do not.

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

Object-oriented programming
Imperative programming
  • Coming soon.

Logic programming
  • Coming soon.

Functional programming
  • Coming soon.

1.3. 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

1.4. Developing Solutions With Code#

Apply skills in computational thinking and programming to develop a software solution

Including:

converting an algorithm into code

From flow charts to code

From pseudocode to code

using control structures
using data structures

Students should be comfortable with this after completing the ‘Data Structures’ module.

using standard modules

Creating relevant subprograms that incorporate parameter passing

Implement data structures that support data storage

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

Coming soon.

single line stepping

Coming soon.

watches

Coming soon.

interfaces between functions

Coming soon.

debugging output statements

Coming soon.

debugging software available in an integrated development environment (IDE)

Coming soon.

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