Common Core Math Standards
 6.EE.B.6

Use variables to represent numbers and write expressions when solving a realworld or mathematical problem; understand that a variable can represent an unknown number, or, depending on the purpose at hand, any number in a specified set. [See: Function Composition; Defining Values; Solving Word Problems with the Design Recipe.]
 6.RP.A

Understand ratio concepts and use ratio reasoning to solve problems. [See: Making Flags.]
 6.RP.A.3.D

Use ratio reasoning to convert measurement units; manipulate and transform units appropriately when multiplying or dividing quantities. [See: Making Flags.]
 7.EE.B

Solve reallife and mathematical problems using numerical and algebraic expressions and equations. [See: Solving Word Problems with the Design Recipe.]
 7.EE.B.4

Use variables to represent quantities in a realworld or mathematical problem, and construct simple equations and inequalities to solve problems by reasoning about the quantities. [See: Defining Values; Solving Word Problems with the Design Recipe.]
 8.F.A.1

Understand that a function is a rule that assigns to each input exactly one output. The graph of a function is the set of ordered pairs consisting of an input and the corresponding output. [See: Contracts.]
 8.F.B

Use functions to model relationships between quantities. [See: Solving Word Problems with the Design Recipe.]
 HSA.SSE.A.1

Interpret expressions that represent a quantity in terms of its context. [See: Defining Values.]
 HSF.BF.A

Build a function that models a relationship between two quantities. [See: Function Composition.]
 HSF.BF.A.1

Write a function that describes a relationship between two quantities. [See: Solving Word Problems with the Design Recipe.]
 HSF.BF.A.1.C

Compose functions. [See: Function Composition.]
 HSF.IF.A.1

Understand that a function from one set (called the domain) to another set (called the range) assigns to each element of the domain exactly one element of the range. If f is a function and x is an element of its domain, then f(x) denotes the output of f corresponding to the input x. The graph of f is the graph of the equation y = f(x). [See: Contracts.]
 HSF.IF.A.2

Use function notation, evaluate functions for inputs in their domains, and interpret statements that use function notation in terms of a context. [See: Contracts; Making Flags.]
 HSF.IF.B

Interpret functions that arise in applications in terms of the context. [See: Making Flags.]
 HSF.IF.C

Analyze functions using different representations. [See: Solving Word Problems with the Design Recipe.]
 HSN.Q.A

Reason quantitatively and use units to solve problems. [See: Making Flags.]
CSTA Standards
 1BAP09

Create programs that use variables to store and modify data. [See: Defining Values; Structures, Reactors, and Animations; Key Events; Your Own Drawing Functions; Build Your Own Animation; Adding Collisions.]
 1BAP10

Create programs that include sequences, events, loops, and conditionals. [See: Structures, Reactors, and Animations; Key Events; Adding Collisions.]
 1BAP11

Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process. [See: Refactoring; Going Deeper: Nested Structures.]
 1BAP12

Modify, remix, or incorporate portions of an existing program into one’s own work, to develop something new or add more advanced features. [See: Introduction to Data Structures; Structures, Reactors, and Animations; Key Events; Refactoring.]
 1BAP15

Test and debug (identify and fix errors) a program or algorithm to ensure it runs as intended. [See: Refactoring.]
 1BAP17

Describe choices made during program development using code comments, presentations, and demonstrations. [See: Introduction to Data Structures; Functions That Ask Questions.]
 2AP10

Use flowcharts and/or pseudocode to address complex problems as algorithms [See: Structures, Reactors, and Animations.]
 2AP11

Create clearly named variables that represent different data types and perform operations on their values. [See: Simple Data Types; Function Composition; Defining Values; Introduction to Data Structures; Structures, Reactors, and Animations.]
 2AP12

Design and iteratively develop programs that combine control structures, including nested loops and compound conditionals [See: Build Your Own Animation; Adding Levels; Making Pong; Going Deeper: Nested Structures.]
 2AP13

Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs [See: Refactoring; Going Deeper: Nested Structures.]
 2AP14

Create procedures with parameters to organize code and make it easier to reuse. [See: Introduction to Data Structures; Functions That Ask Questions; Key Events; Refactoring; Your Own Drawing Functions; Scoring.]
 2AP17

Systematically test and refine programs using a range of test cases [See: Function Composition; Functions That Ask Questions; Key Events; Scoring; Making Pong.]
 2AP19

Document programs in order to make them easier to follow, test, and debug. [See: Function Composition.]
 3AAP15

Justify the selection of specific control structures when tradeoffs involve implementation, readability, and program performance, and explain the benefits and drawbacks of choices made. [See: Refactoring; Going Deeper: Nested Structures.]
 3AAP16

Design and iteratively develop computational artifacts for practical intent, personal expression, or to address a societal issue by using events to initiate instructions. [See: Your Own Drawing Functions; Build Your Own Animation.]
 3AAP17

Decompose problems into smaller components through systematic analysis, using constructs such as procedures, modules, and/or objects. [See: Refactoring; Going Deeper: Nested Structures.]
 3AAP18

Create artifacts by using procedures within a program, combinations of data and procedures, or independent but interrelated programs. [See: Making Flags; Scoring; Adding Levels; Feature: Timers.]
 3BAP13

Illustrate the flow of execution of a recursive algorithm [See: Structures, Reactors, and Animations.]
 3BAP14

Construct solutions to problems using studentcreated components, such as procedures, modules and/or objects. [See: Adding Collisions; Adding Levels; Feature: Timers.]
 3BAP21

Develop and use a series of test cases to verify that a program performs according to its design specifications. [See: Function Composition; Functions That Ask Questions.]
 3BAP22

Modify an existing program to add additional functionality and discuss intended and unintended implications (e.g., breaking other functionality). [See: Functions That Ask Questions; Scoring; Feature: Timers.]
K12CS Standards
 68.Algorithms and Programming.Control

Programmers select and combine control structures, such as loops, event handlers, and conditionals, to create more complex program behavior. [See: Functions That Ask Questions.]
 68.Algorithms and Programming.Modularity

Programs use procedures to organize code, hide implementation details, and make code easier to reuse. Procedures can be repurposed in new programs. Defining parameters for procedures can generalize behavior and increase reusability. [See: Refactoring.]
 68.Algorithms and Programming.Variables

Programmers create variables to store data values of selected types. A meaningful identifier is assigned to each variable to access and perform operations on the value by name. Variables enable the flexibility to represent different situations, process different sets of data, and produce varying outputs. [See: Defining Values; Introduction to Data Structures.]
 912.Algorithms and Programming.Variables

Data structures are used to manage program complexity. Programmers choose data structures based on functionality, storage, and performance tradeoffs. [See: Introduction to Data Structures.]
 912.Impacts of Computing.Social Interactions

Many aspects of society, especially careers, have been affected by the degree of communication afforded by computing. The increased connectivity between people in different cultures and in different career fields has changed the nature and content of many careers. [See: Computing Needs All Voices.]
Oklahoma Standards
 OK.3.A.V.01

Create programs that use variables to store and modify grade level appropriate data. [See: Defining Values.]
 OK.3.AP.A.01

Compare multiple algorithms for the same task. [See: Making Flags.]
 OK.3.AP.M.01

Decompose the steps needed to solve a problem into a precise sequence of instructions. [See: Making Flags.]
 OK.3.AP.PD.01

Use an iterative process to plan the development of a program while solving simple problems. [See: Solving Word Problems with the Design Recipe.]
 OK.3.AP.PD.03

Analyze and debug a program that includes sequencing, repetition and variables in a programming language. [See: Making Flags.]
 OK.3.AP.PD.04

Communicate and explain your program development using comments, presentations and demonstrations. [See: Solving Word Problems with the Design Recipe.]
 OK.4.AP.A.01

Compare and refine multiple algorithms for the same task. [See: Making Flags.]
 OK.4.AP.C.01

Create programs using a programming language that utilize sequencing, repetition, conditionals and variables using math operations manipulate values to solve a problem or express ideas both independently and collaboratively. [See: Making Flags.]
 OK.4.AP.PD.04

Communicate and explain your program development using comments, presentations and demonstrations. [See: Solving Word Problems with the Design Recipe.]
 OK.4.AP.V.01

Create programs that use variables to store and modify grade level appropriate data. [See: Defining Values.]
 OK.5.AP.A.01

Compare and refine multiple algorithms for the same task and determine which is the most efficient. [See: Function Composition; Making Flags.]
 OK.5.AP.PD.04

Communicate and explain your program development using comments, presentations and demonstrations. [See: Solving Word Problems with the Design Recipe.]
 OK.5.AP.V.01

Create programs that use variables to store and modify grade level appropriate data. [See: Defining Values.]
 OK.5.GM.1.1

Describe, classify and construct triangles, including equilateral, right, scalene, and isosceles triangles. Recognize triangles in various contexts. [See: Contracts.]
 OK.6.A.1.1

Plot integer and rationalvalued (limited to halves and fourths) orderedpairs as coordinates in all four quadrants and recognize the reflective relationships among coordinates that differ only by their signs. [See: Making Flags.]
 OK.6.A.1.3

Use and evaluate variables in expressions, equations, and inequalities that arise from various contexts, including determining when or if, for a given value of the variable, an equation or inequality involving a variable is true or false. [See: Simple Data Types.]
 OK.6.AP.A.01

Use an existing algorithm in natural language or pseudocode to solve complex problems. [See: Solving Word Problems with the Design Recipe.]
 OK.6.AP.M.01

Decompose problems into parts to facilitate the design, implementation, and review of programs. [See: Making Flags.]
 OK.6.AP.PD.01

Seek and incorporate feedback from team members to refine a solution to a problem. [See: Making Flags.]
 OK.6.AP.PD.05

Document textbased programs in order to make them easier to follow, test, and debug. [See: Solving Word Problems with the Design Recipe.]
 OK.6.GM.2.2

Develop and use the fact that the sum of the interior angles of a triangle is 180° to determine missing angle measures in a triangle. [See: Contracts.]
 OK.6.IC.C.01

Explain how computing impacts people’s everyday activities. [See: Computing Needs All Voices.]
 OK.7.A.3.3

Represent realworld or mathematical situations using equations and inequalities involving variables and rational numbers. [See: Defining Values.]
 OK.7.AP.A.01

Select and modify an existing algorithm in natural language or pseudocode to solve complex problems. [See: Simple Data Types; Solving Word Problems with the Design Recipe.]
 OK.7.AP.PD.05

Document textbased programs of increasing complexity in order to make them easier to follow, test, and debug. [See: Solving Word Problems with the Design Recipe.]
 OK.7.GM.4.1

Describe the properties of similarity, compare geometric figures for similarity, and determine scale factors resulting from dilations. [See: Making Flags.]
 OK.7.GM.4.2

Apply proportions, ratios, and scale factors to solve problems involving scale drawings and determine side lengths and areas of similar triangles and rectangles. [See: Making Flags.]
 OK.7.N.1.1

Know that every rational number can be written as the ratio of two integers or as a terminating or repeating decimal. [See: Simple Data Types.]
 OK.7.N.1.2

Compare and order rational numbers expressed in various forms using the symbols <, >, and =. [See: Simple Data Types.]
 OK.7.N.1.3

Recognize and generate equivalent representations of rational numbers, including equivalent fractions. [See: Simple Data Types.]
 OK.8.AP.A.01

Design algorithms in natural language, flow and control diagrams, comments within code, and/or pseudocode to solve complex problems. [See: Making Flags; Solving Word Problems with the Design Recipe.]
 OK.8.AP.C.01

Develop programs that utilize combinations of nested repetition, compound conditionals, procedures without parameters, and the manipulation of variables representing different data types. [See: Simple Data Types.]
 OK.8.AP.PD.04

Explain how effective communication between participants is required for successful collaboration when developing computational artifacts. [See: Solving Word Problems with the Design Recipe.]
 OK.8.AP.PD.05

Document textbased programs of increasing complexity in order to make them easier to follow, test, and debug. [See: Solving Word Problems with the Design Recipe.]
 OK.A1.F.1.2

Identify the dependent and independent variables as well as the domain and range given a function, equation, or graph. Identify restrictions on the domain and range in realworld contexts. [See: Contracts.]
 OK.A1.F.1.3

Write linear functions, using function notation, to model realworld and mathematical situations. [See: Contracts; Function Composition.]
 OK.A1.F.1.4

Given a graph modeling a realworld situation, read and interpret the linear piecewise function (excluding step functions). [See: Contracts.]
 OK.A1.F.3

Represent functions in multiple ways and use the representation to interpret realworld and mathematical problems. [See: Function Composition; Defining Values.]
 OK.A1.F.3.1

Identify and generate equivalent representations of linear equations, graphs, tables, and realworld situations. [See: Defining Values.]
 OK.A1.F.3.2

Use function notation; evaluate a function, including nonlinear, at a given point in its domain algebraically and graphically. Interpret the results in terms of realworld and mathematical problems. [See: Function Composition.]
 OK.A1.F.3.3

Add, subtract, and multiply functions using function notation. [See: Function Composition.]
 OK.G.2D.1.8

Construct logical arguments to prove triangle congruence (SSS, SAS, ASA, AAS and HL) and triangle similarity (AA, SSS, SAS). [See: Contracts.]
 OK.L2.AP.PD.05

Develop and use a series of test cases to verify that a program performs according to its design specifications. [See: Solving Word Problems with the Design Recipe.]
 OK.MAP.1

Develop a deep and flexible conceptual understanding. [See: Making Flags.]
 OK.MAP.4

Develop mathematical reasoning. [See: Making Flags.]
 OK.MAP.7

Develop the ability to communicate mathematically. [See: Solving Word Problems with the Design Recipe.]
 OK.PA.A.1.1

Recognize that a function is a relationship between an independent variable and a dependent variable in which the value of the independent variable determines the value of the dependent variable. [See: Contracts.]
 OK.PA.A.1.2

Use linear functions to represent and explain realworld and mathematical situations. [See: Solving Word Problems with the Design Recipe.]
 OK.PA.A.1.3

Identify a function as linear if it can be expressed in the form y = mx + b or if its graph is a straight line. [See: Solving Word Problems with the Design Recipe.]
 OK.PA.A.2

Recognize linear functions in realworld and mathematical situations; represent linear functions and other functions with tables, verbal descriptions, symbols, and graphs; solve problems involving linear functions and interpret results in the original context. [See: Solving Word Problems with the Design Recipe.]
 OK.PA.A.2.1

Represent linear functions with tables, verbal descriptions, symbols, and graphs; translate from one representation to another. [See: Solving Word Problems with the Design Recipe.]
 OK.PA.A.3.1

Use substitution to simplify and evaluate algebraic expressions. [See: Function Composition; Defining Values.]
 OK.PA.A.4

Represent realworld and mathematical problems using equations and inequalities involving linear expressions. Solve and graph equations and inequalities symbolically and graphically. Interpret solutions in the original context. [See: Making Flags.]
Iowa Standards
 IA.6.EE.B.6

Use variables to represent numbers and write expressions when solving a realworld or mathematical problem; understand that a variable can represent an unknown number, or, depending on the purpose at hand, any number in a specified set. [See: Defining Values.]
 IA.HSF.BF.A.1.B

Combine standard function types using arithmetic operations. [See: Function Composition.]
 IA.HSF.BF.A.1.C

Compose functions. [See: Function Composition.]
 IA.HSF.IF.A.1

Understand that a function from one set (called the domain) to another set (called the range) assigns to each element of the domain exactly one element of the range. If f is a function and x is an element of its domain, then f(x) denotes the output of f corresponding to the input x. The graph of f is the graph of the equation y = f(x). [See: Contracts.]
Connected Math
 CMP.6.6

Variables and Patterns: Focus on Algebra. [See: Defining Values.]
IM 8 Math™
 IM.8.1.1

Moving in the Plane. [See: Making Flags.]
 IM.8.1.2

Naming the moves. [See: Making Flags.]
 IM.8.1.3

Grid Moves. [See: Making Flags.]
 IM.8.2.1

Projecting and Scaling. [See: Making Flags.]
 IM.8.5.1

Inputs and Outputs. [See: Contracts.]
 IM.8.5.2

Introduction to Functions. [See: Contracts.]
IM 6 Math™
 IM.6.1.3

Reasoning to Find Area. [See: Making Flags.]
 IM.6.2.14

Solving Equivalent Ratio Problems. [See: Making Flags.]
 IM.6.7.14

Distances on the Coordinate Plane. [See: Making Flags.]
 IM.6.7.15

Shapes on the Coordinate Plane. [See: Making Flags.]
 IM.6.6.2

Truth and Equations. [See: Defining Values.]
 IM.6.6.16

Two Related Quantities, Part 1. [See: Contracts.]
 IM.6.6.17

Two Related Quantities, Part 2. [See: Contracts.]
 IM.6.6.18

More Relationships. [See: Contracts.]
 IM.6.7.9

Solutions of Inequalities. [See: Simple Data Types.]
 IM.6.7.10

Interpreting Inequalities. [See: Simple Data Types.]
IM 7 Math™
 IM.7.1.1

What are Scaled Copies?. [See: Making Flags.]
 IM.7.1.5

The Size of the Scale Factor. [See: Making Flags.]
 IM.7.4.1

Lots of Flags. [See: Making Flags.]
 IM.7.6.11

Using Equations to Solve Problems. [See: Defining Values.]
 IM.7.2.4

Proportional Relationships and Equations. [See: Contracts.]
 IM.7.2.5

Two Equations for Each Relationship. [See: Contracts.]
 IM.7.2.6

Using Equations to Solve Problems. [See: Contracts.]
 IM.7.6.13

Reintroducing Inequalities. [See: Simple Data Types.]
IM Algebra 1
 IM.Alg1.4.2

Function Notation. [See: Contracts; Defining Values.]
 IM.Alg1.4.3

Interpreting & Using Function Notation. [See: Contracts; Making Flags.]
 IM.Alg1.1.6

Mystery Computations. [See: Simple Data Types.]
Science and Engineering
 SEP.7

Engaging in Argument from Evidence. [See: Defining Values.]
 SEP.5

Using Mathematics and Computational Thinking. [See: Function Composition; Making Flags.]
 SEP.8

Obtaining, Evaluating, and Communicating Information. [See: Contracts.]
Math Lang. Routines
 MLR.6

Three Reads. [See: Solving Word Problems with the Design Recipe.]
 MLR.5

CoCraft Questions and Problems. [See: Defining Values.]
 MLR.1

Stronger and Clearer Each Time. [See: Function Composition; Solving Word Problems with the Design Recipe.]
 MLR.3

Clarify, Critique and Correct. [See: Function Composition; Making Flags.]
 MLR.7

Compare and Connect. [See: Function Composition; Defining Values; Making Flags; Solving Word Problems with the Design Recipe.]
 MLR.2

Collect and Display. [See: Contracts.]
 MLR.8

Discussion Supports. [See: Contracts; Defining Values.]
 MLR.4

Information Gap. [See: Simple Data Types.]
Math
 MP.3

Construct viable arguments and critique the reasoning of others. [See: Solving Word Problems with the Design Recipe.]
 MP.4

Model with mathematics. [See: Making Flags; Solving Word Problems with the Design Recipe.]
 MP.2

Reason abstractly and quantitatively. [See: Defining Values; Making Flags.]
 MP.8

Look for and express regularity in repeated reasoning. [See: Defining Values; Making Flags.]
 MP.7

Look for and make use of structure. [See: Defining Values; Making Flags; Solving Word Problems with the Design Recipe.]
 MP.5

Use appropriate tools strategically. [See: Function Composition.]
 MP.1

Make sense of problems and persevere in solving them. [See: Function Composition; Making Flags; Solving Word Problems with the Design Recipe.]
 MP.6

Attend to precision. [See: Simple Data Types; Making Flags.]
K12CS
 P6

Testing and Refining Computational Artifacts. [See: Scoring; Adding Levels.]
 P3

Recognizing and Defining Computational Problems. [See: Refactoring; Build Your Own Animation; Adding Collisions; Adding Levels; Making Pong; Going Deeper: Nested Structures; Feature: Timers.]
 P4

Developing and Using Abstractions. [See: Refactoring; Build Your Own Animation; Adding Collisions; Scoring; Making Pong; Going Deeper: Nested Structures; Feature: Timers.]
 P1

Fostering an Inclusive Computing Culture. [See: Computing Needs All Voices.]
Social Justice
 SJ.10

Students will examine diversity in social, cultural, political and historical contexts rather than in ways that are superficial or oversimplified.. [See: Computing Needs All Voices.]
 SJ.8

Students will respectfully express curiosity about the history and lived experiences of others and will exchange ideas and beliefs in an openminded way. [See: Computing Needs All Voices.]
 SJ.7

Students will develop language and knowledge to accurately and respectfully describe how people (including themselves) are both similar to and different from each other and others in their identity groups.. [See: Computing Needs All Voices.]
 SJ.4

Students will express pride, confidence and healthy selfesteem without denying the value and dignity of other people.. [See: Computing Needs All Voices.]
 SJ.2

Students will develop language and historical and cultural knowledge that affirm and accurately describe their membership in multiple identity groups. [See: Computing Needs All Voices.]
 SJ.1

Students will develop positive social identities based on their membership in multiple groups in society. [See: Computing Needs All Voices.]