# 1.2 Program Function and Purpose

## Enduring Understanding

Developers create and innovate using an iterative design process that is userfocused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking.

## Learning Objective

Describe the purpose of a computing innovation.

## Essential Knowledge

The purpose of computing innovations is to solve problems or to pursue interests through creative expression.

An understanding of the purpose of a computing innovation provides developers with an improved ability to develop that computing innovation.

## Learning Objective

Explain how a program or code segment functions.

## Essential Knowledge

A program is a collection of program statements that performs a specific task when run by a computer. A program is often referred to as software.

A code segment is a collection of program statements that is part of a program.

A program needs to work for a variety of inputs and situations.

The behavior of a program is how a program functions during execution and is often described by how a user interacts with it.

A program can be described broadly by what it does, or in more detail by both what the program does and how the program statements accomplish this function.

## Learning Objective

Identify input(s) to a program. 

## Essential Knowledge

Program inputs are data sent to a computer for processing by a program. Input can come in a variety of forms, such as tactile, audio, visual, or text.

An event is associated with an action and supplies input data to a program.

Events can be generated when a key is pressed, a mouse is clicked, a program is started, or any other defined action occurs that affects the flow of execution.

Inputs usually affect the output produced by a program.

In event-driven programming, program statements are executed when triggered rather than through the sequential flow of control.

Input can come from a user or other programs

## Learning Objective

Identify output(s) produced by a program.

## Essential Knowledge

Program outputs are any data sent from a program to a device. Program output can come in a variety of forms, such as tactile, audio, visual, or text.

Program output is usually based on a program’s input or prior state (e.g., internal values).


---

# 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://www.csprinciples.com/big-idea-1/1.2-program-function-and-purpose.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.
