6. Algorithms and Code Design#
Explore fundamental software development steps used by programmers when designing software
requirements definition
determining specifications
design
development
integration
testing and debugging
installation
maintenance
Research and evaluate the prevalence and use of online code collaboration tools
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
Pseudocode
Flowcharts
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
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
Create data dictionaries as a tool to describe data and data types, structure data, and record relationships
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 data flow diagrams, structure charts and class diagrams to represent a system
Structure charts
Chapter Contents
- 6.1. Algorithms
- 6.2. Draw a Box: Algorithm
- 6.3. Desk Checking
- 6.4. Draw a Box: Desk Check
- 6.5. Draw a Box: Code
- 6.6. Backtracking Algorithms: Maze Example
- 6.7. Backtracking Algorithms: 8 Queens
- 6.8. Representing and Storing Data: 8 Queens
- 6.9. Divide and Conquer: Merge Sort
- 6.10. Applying Divide and Conquer Algorithms
- 6.11. Understanding Algorithms
- 6.12. Peer Review: Tic Tac Toe (Naughts and Crosses)
- 6.13. Developing Software: Tic Tac Toe Example
- 6.14. Top-down and Bottom-up Design
- 6.15. Structure Charts
- 6.16. Online Code and Collaboration Tools
- 6.17. Waterfall vs Agile Project Management