# Charts and Algorithms

{% hint style="info" %}

### **Learning Intention**

* 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
* 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
  {% endhint %}

{% hint style="success" %}

### **Success Criteria**&#x20;

* I can define, interpret and utilise key features of standard algorithms including sequence, selection and iteration.
* I can interpret and create detailed documentation during the design phase of software development to visually and clearly represent the system, including key components such as diagrams, specifications, and technical descriptions:
  * **IPO Charts (Input-Process-Output):** These charts outline the flow of data through the system, specifying inputs, processes, and outputs.
  * **Flowcharts:** Visualise processes and decision points within the system to ensure logical flow.
  * **Pseudocode:** Provides a high-level representation of the code logic to be implemented.
  * **Structure Charts:** Used to depict the hierarchical organisation of modules within a program.
  * **Data Dictionaries:** Essential for defining the data elements and structures used throughout the program.
  * **Data Flow Diagrams:** A Data Flow Diagram (DFD) visually represents how data moves through a system, showing inputs, processes, storage, and outputs.
  * **Class Diagrams:** A class diagram in software design visually represents the structure of a system by showing its classes, attributes, methods, and relationships between objects.
  * **Storyboards:** a visual representation that outlines the sequence of user interactions with a system, typically used to map out user experiences and interface flows.
    {% endhint %}

Each of these documentation types helps to ensure clarity and consistency throughout the development process.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gosford-high-school.gitbook.io/preliminary-software-engineering/unit-1-programming-fundamentals/charts-and-algorithms.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
