# Glossary

## algorithm

A precise step-by-step set of instructions to solve a problem or complete a specific task.

## avatar

A picture or cartoon, for example this could be a favourite character that you use to represent yourself online. It is sensible to protect your privacy by not using a recognisable photo of yourself.

## boolean

A data type with only two values, TRUE or FALSE.

## debugging

Identifying and correcting the errors in a computer program.

## decomposition

Decomposition is breaking a problem into smaller manageable chunks that can be solved individually. This might mean creating ‘sub-programs’ or procedures that contain the code for a particular part of the task.

## input

Data put into a computer system, for example through the keyboard, mouse, microphone, or other sensors connected to the computer.

## logical reasoning

A systematic approach to solving problems using a set of consistent rules that apply to the system. For example, when fixing a bug in their Rapid Router program, children might apply the rules they have learnt about the way repeat loops work in this app.

## output

The information produced by a computer system for the user, for example on a screen, printer, through speakers.

## sequence

A set of programming instructions carried out in a specific and consistent order every time.

## procedure or function

A self contained sub program, also called a **subroutine**, to which you give a unique name, that can be used or ‘called’ by the main program multiple times. Both a function and a procedure can accept inputs.

A function sends information back into the main program, whereas a procedure does not. A multiplication function might, for example, have two number inputs and return an answer to the main program.

## program

A set of instructions encoded in a programming language understood by the computer.

(A program is also an algorithm, but not all algorithms are programs e.g. a recipe in English is an algorithm but it is not a computer program).

## repetition

A feature of a programming language where sections of code are repeated. This can be a fixed number of times, or until a condition is met (Rapid Router example: repeat 5 times, repeat until at destination).

## selection

A feature of a programming language where a choice is made. The instructions followed depend on whether a particular condition is met (Rapid Router example: if traffic lights red, wait).

## subroutine

A general term, also called a subprogram, for a **function or procedure**.

## variable

A programming structure that contains data (often numbers or text) and can change or be changed. Variables are used to keep score in computer games, and in Rapid Router to store the colour of the traffic lights.

*Some definitions are adapted from* [*http://www.computingatschool.org.uk/data/uploads/CASPrimaryComputing.pdf*](http://www.computingatschool.org.uk/data/uploads/CASPrimaryComputing.pdf) *where you can find additional explanations of computing terms.*


---

# 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://docs.codeforlife.education/glossary.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.
