# Overview
**Creative Development**
- Program Function and Purpose
- Identifying and Correcting Errors
**Algorithms and Programming**
- Variables and Assignment
- Data Abstraction
- Mathematical Expressions
- Strings
- Boolean Expressions
- Conditionals
# Learning Objectives
**Enduring Understanding**
#CRD-2
Developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking
#AAP-1
To find specific solutions to generalizable problems, programmers represent and organize data in multiple different ways
#AAP-2
The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.
## Program Function and Purpose
**CRD-2.A**
Describe the purpose of a computing innovation.
**CRD-2.B**
Explain how a program or code segment functions.
**CRD-2.C**
Identify input(s) to a program.
**CRD-2.D**
Identify output(s) produced by a program.
---
## Identifying and Correcting Errors
**CRD-2.I**
For errors in an algorithm or program:
a. Identify the error
b. Correct the error
**CRD-2.J**
Identify inputs and corresponding expected outputs or behaviors that can be used to check the correctness of an algorithm or program.
---
## Variables and Assignment
**AAP-1.A**
Represent a value with a variable.
**AAP-1.B**
Determine the value of a variable as a result of an assignment.
---
## Data Abstraction
**AAP-1.C**
Represent a list or string using a variable.
**AAP-1.D**
For data abstraction:
a. Develop data abstraction using lists to store multiple elements.
b. Explain how the use of data abstraction manages complexity in program code.
---
## Mathematical Expressions
**AAP-2.A**
Express an algorithm that uses sequencing without using a programming language.
**AAP-2.B**
Represent a step-by-step algorithmic process using sequential code statements.
**AAP-2.C**
Evaluate expressions that use arithmetic operators.
---
## Strings
**AAP-2.D**
Evaluate expressions that manipulate strings.
---
## Boolean Expressions
**AAP-2.E**
For relationships between two variables, expressions, or values:
a. Write expressions using relational operators.
b. Evaluate expressions that use relational operators.
**AAP-2.F**
For relationships between Boolean values:
a. Write expressions using logical operators.
b. Evaluate expressions that use logic operators.
---
## Conditionals
**AAP-2.G**
Express an algorithm that uses selection without using a programming language.
**AAP-2.H**
For selection:
a. Write conditional statements.
b. Determine the result of conditional statements.
---
# Learning Series
## Series 1 - Storing & Changing Data
### Episode 1 - Variable Assignment
#ES-KN
Essential knowledge description
### Episode 2 - Math & Letters
#ES-KN
Essential knowledge description
---
## Series 2 - Making Programs Useful
### Episode 1 - Logic & Conditionals
#ES-KN
Essential knowledge description
### Episode 2 - Sequence & Algorithms
#ES-KN
Essential knowledge description