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
Including:
requirements definition
determining specifications
development
integration
testing and debugging
installation
maintenance
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
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
Backtracking
Divide and Conquer
Develop structured algorithms using pseudocode and flowcharts, including the use of subprograms
Pseudocode
Conditionals: Pseudocode
Loops: Pseudocode
Modules and functions: Pseudocode and Flowcharts: covers 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
Pseudocode Question 3
Applying Divide and Conquer Algorithms Question 3
desk checking and peer checking
Desk checking
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
Representing Numbers in Binary: decimal and binary numbers
The Hexadecimal System: hexadecimal numbers
ASCII: decimal, binary and hexadecimal characters
Represent integers using two’s complement
Investigate standard data types
Including:
char (character) and string
Boolean
real
Types of Variables: integers and floats are examples of real numbers.
single precision floating point
Types of Variables: floats
Python as a calculator: explanation of single-precision vs double-precision
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
records
trees
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
More Complicated if-elif-else Statements Code challenge: Red Team Blue Team
Pseudocode Question 2
From pseudocode to code
Pseudocode Code challenge: Starting Player
using control structures
using data structures
Students should be comfortable with this after completing the ‘Data Structures’ module.
using standard modules
Examples of standard modules: math, random, time, datetime
Creating relevant subprograms that incorporate parameter passing
Subprograms can be created using Python functions.
Implement data structures that support data storage
Including:
single and multidimensional arrays
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
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
Error Messages: NameError, SyntaxError, TypeError, ValueError
Indexing: IndexError
Common While Loop Errors: NameError, IndentationError
While Loops With Input: Question 1
While Loops With Conditionals: Question 3
For Loops: Question 3
Sequential Files: FileNotFoundError, OSError
The Math Module: ImportError