Bootstrap lessons align with several important teaching standards, textbooks, and practices. Select from the following menu to see which lessons meet those alignments.

## Common Core Math Standards

5.G.A.1

Use a pair of perpendicular number lines, called axes, to define a coordinate system, with the intersection of the lines (the origin) arranged to coincide with the 0 on each line and a given point in the plane located by using an ordered pair of numbers, called its coordinates. Understand that the first number indicates how far to travel from the origin in the direction of one axis, and the second number indicates how far to travel in the direction of the second axis, with the convention that the names of the two axes and the coordinates correspond (e.g., x-axis and x-coordinate, y-axis and y-coordinate). [See: Coordinates and Game Design.]

6.EE.B.5

Understand solving an equation or inequality as a process of answering a question: which values from a specified set, if any, make the equation or inequality true? Use substitution to determine whether a given number in a specified set makes an equation or inequality true. [See: Simple Inequalities.]

6.EE.B.6

Use variables to represent numbers and write expressions when solving a real-world 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; Functions Make Life Easier!; Functions: Contracts, Examples & Definitions; Defining Linear Functions; Problem Solving Together; Functions for Character Animation; Surface Area of a Rectangular Prism; Problem Decomposition; Sam the Butterfly - Applying Inequalities; Piecewise Functions and Conditionals; Player Animation; The Distance Formula; Collision Detection - Distance and Inequality.]

6.EE.B.8

Write an inequality of the form x > c or x < c to represent a constraint or condition in a real-world or mathematical problem. Recognize that inequalities of the form x > c or x < c have infinitely many solutions; represent solutions of such inequalities on number line diagrams. [See: Simple Inequalities; Sam the Butterfly - Applying Inequalities.]

6.G.A.4

Represent three-dimensional figures using nets made up of rectangles and triangles, and use the nets to find the surface area of these figures. Apply these techniques in the context of solving real-world and mathematical problems. [See: Surface Area of a Rectangular Prism.]

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.A.2

Understand that rewriting an expression in different forms in a problem context can shed light on the problem and how the quantities in it are related. [See: Problem Decomposition.]

7.EE.B

Solve real-life and mathematical problems using numerical and algebraic expressions and equations. [See: Solving Word Problems with the Design Recipe; Problem Solving Together; Problem Decomposition; Sam the Butterfly - Applying Inequalities; Piecewise Functions and Conditionals; Player Animation; The Distance Formula.]

7.EE.B.4

Use variables to represent quantities in a real-world or mathematical problem, and construct simple equations and inequalities to solve problems by reasoning about the quantities. [See: Defining Values; Functions Make Life Easier!; Problem Solving Together; Simple Inequalities; Compound Inequalities: Solutions & Non-Solutions.]

7.G.B.6

Solve real-world and mathematical problems involving area, volume and surface area of two- and three-dimensional objects composed of triangles, quadrilaterals, polygons, cubes, and right prisms. [See: Surface Area of a Rectangular Prism.]

7.RP.A.1

Compute unit rates associated with ratios of fractions, including ratios of lengths, areas and other quantities measured in like or different units. [See: Making Game Images.]

8.EE.B

Understand the connections between proportional relationships, lines, and linear equations. [See: Functions Can Be Linear; Defining Linear Functions.]

8.EE.B.5

Graph proportional relationships, interpreting the unit rate as the slope of the graph. Compare two different proportional relationships represented in different ways. [See: Functions Can Be Linear; Defining Linear Functions.]

8.EE.B.6

Use similar triangles to explain why the slope m is the same between any two distinct points on a non-vertical line in the coordinate plane; derive the equation y = mx for a line through the origin and the equation y = mx + b for a line intercepting the vertical axis at b. [See: Functions Can Be Linear.]

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.A.2

Compare properties of two functions each represented in a different way (algebraically, graphically, numerically in tables, or by verbal descriptions). [See: Functions Can Be Linear.]

8.F.B

Use functions to model relationships between quantities. [See: Functions Make Life Easier!; Solving Word Problems with the Design Recipe; Problem Solving Together; Functions for Character Animation.]

8.F.B.4

Construct a function to model a linear relationship between two quantities. Determine the rate of change and initial value of the function from a description of a relationship or from two (x, y) values, including reading these from a table or from a graph. Interpret the rate of change and initial value of a linear function in terms of the situation it models, and in terms of its graph or a table of values. [See: Functions Can Be Linear.]

8.G.A.1

Verify experimentally the properties of rotations, reflections, and translations. [See: Making Game Images.]

8.G.B

Understand and apply the Pythagorean Theorem. [See: The Distance Formula.]

8.G.B.7

Apply the Pythagorean Theorem to determine unknown side lengths in right triangles in real-world and mathematical problems in two and three dimensions. [See: The Distance Formula.]

8.G.B.8

Apply the Pythagorean Theorem to find the distance between two points in a coordinate system. [See: The Distance Formula.]

HSA.CED.A.1

Create equations and inequalities in one variable and use them to solve problems. [See: Sam the Butterfly - Applying Inequalities.]

HSA.CED.A.3

Represent constraints by equations or inequalities, and by systems of equations and/or inequalities, and interpret solutions as viable or nonviable options in a modeling context. [See: Sam the Butterfly - Applying Inequalities.]

HSA.SSE.A.1

Interpret expressions that represent a quantity in terms of its context. [See: Defining Values; Functions Make Life Easier!.]

HSA.SSE.A.1.A

Interpret parts of an expression, such as terms, factors, and coefficients. [See: Piecewise Functions and Conditionals; Player Animation.]

HSA.SSE.A.1.B

Interpret complicated expressions by viewing one or more of their parts as a single entity. [See: Piecewise Functions and Conditionals; Player Animation.]

HSA.SSE.A.2

Use the structure of an expression to identify ways to rewrite it. [See: Order of Operations.]

HSA.SSE.B

Write expressions in equivalent forms to solve problems. [See: Order of Operations.]

HSF.BF.A

Build a function that models a relationship between two quantities. [See: Function Composition; Problem Decomposition.]

HSF.BF.A.1

Write a function that describes a relationship between two quantities. [See: The Vertical Line Test; Functions Can Be Linear; Solving Word Problems with the Design Recipe; Problem Decomposition; Collision Detection - Distance and Inequality.]

HSF.BF.A.1.C

Compose functions. [See: Function Composition; Problem Decomposition; Sam the Butterfly - Applying Inequalities.]

HSF.BF.B

Build new functions from existing functions. [See: Problem Decomposition; Sam the Butterfly - Applying Inequalities; Collision Detection - Distance and Inequality.]

HSF.IF.A

Understand the concept of a function and use function notation. [See: Function Notation.]

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; Defining Linear Functions.]

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; Function Notation; Defining Linear Functions; Simple Inequalities; Compound Inequalities: Solutions & Non-Solutions.]

HSF.IF.B

Interpret functions that arise in applications in terms of the context. [See: Making Flags; Functions Make Life Easier!.]

HSF.IF.B.5

Relate the domain of a function to its graph and, where applicable, to the quantitative relationship it describes. [See: Function Notation; Functions Can Be Linear.]

HSF.IF.C

Analyze functions using different representations. [See: The Vertical Line Test; Functions: Contracts, Examples & Definitions; Functions Can Be Linear; Defining Linear Functions; Solving Word Problems with the Design Recipe.]

HSF.IF.C.9

Compare properties of two functions each represented in a different way (algebraically, graphically, numerically in tables, or by verbal descriptions). [See: Functions Can Be Linear; Defining Linear Functions.]

HSF.LE.B

Interpret expressions for functions in terms of the situation they model. [See: Functions for Character Animation.]

HSN.Q.A

Reason quantitatively and use units to solve problems. [See: Making Flags.]

HSS.CP.A.1

Describe events as subsets of a sample space (the set of outcomes) using characteristics (or categories) of the outcomes, or as unions, intersections, or complements of other events ('or', 'and', 'not'). [See: Compound Inequalities: Solutions & Non-Solutions.]

## CSTA Standards

1B-AP-09

Create programs that use variables to store and modify data. [See: Defining Values.]

1B-AP-10

Create programs that include sequences, events, loops, and conditionals. [See: Functions for Character Animation; Piecewise Functions and Conditionals; Player Animation.]

1B-AP-11

Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process. [See: Problem Decomposition.]

1B-AP-12

Modify, remix, or incorporate portions of an existing program into one’s own work, to develop something new or add more advanced features. [See: Making Game Images; Piecewise Functions and Conditionals; Player Animation.]

1B-AP-14

Observe intellectual property rights and give appropriate attribution when creating or remixing programs. [See: Making Game Images.]

1B-AP-15

Test and debug (identify and fix errors) a program or algorithm to ensure it runs as intended. [See: Functions Make Life Easier!.]

1B-IC-21

Use public domain or creative commons media, and refrain from copying or using material created by others without permission. [See: Making Game Images.]

2-AP-11

Create clearly named variables that represent different data types and perform operations on their values. [See: Simple Data Types; Function Composition; Defining Values; Functions Make Life Easier!; Problem Solving Together; Functions for Character Animation; Surface Area of a Rectangular Prism; Problem Decomposition; Piecewise Functions and Conditionals; Player Animation; The Distance Formula; Collision Detection - Distance and Inequality.]

2-AP-13

Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs [See: Problem Decomposition.]

2-AP-14

Create procedures with parameters to organize code and make it easier to reuse. [See: Functions Make Life Easier!.]

2-AP-16

Incorporate existing code, media, and libraries into original programs, and give attribution. [See: Making Game Images.]

2-AP-17

Systematically test and refine programs using a range of test cases [See: Function Composition; Functions Make Life Easier!; Problem Solving Together; Functions for Character Animation; Surface Area of a Rectangular Prism; Problem Decomposition; Piecewise Functions and Conditionals; Player Animation; The Distance Formula; Collision Detection - Distance and Inequality.]

2-AP-19

Document programs in order to make them easier to follow, test, and debug. [See: Function Composition; Functions Make Life Easier!; Problem Solving Together; Functions for Character Animation; Surface Area of a Rectangular Prism; Problem Decomposition; Piecewise Functions and Conditionals; Player Animation; The Distance Formula; Collision Detection - Distance and Inequality.]

3A-AP-16

Design and iteratively develop computational artifacts for practical intent, personal expression, or to address a societal issue by using events to initiate instructions. [See: Functions for Character Animation; Player Animation.]

3A-AP-17

Decompose problems into smaller components through systematic analysis, using constructs such as procedures, modules, and/or objects. [See: Problem Decomposition.]

3A-AP-18

Create artifacts by using procedures within a program, combinations of data and procedures, or independent but interrelated programs. [See: Making Flags; Making Game Images.]

3A-AP-20

Evaluate licenses that limit or restrict use of computational artifacts when using resources such as libraries [See: Making Game Images.]

3B-AP-10

Use and adapt classic algorithms to solve computational problems. [See: Simple Inequalities; Compound Inequalities: Solutions & Non-Solutions; Sam the Butterfly - Applying Inequalities; The Distance Formula.]

3B-AP-14

Construct solutions to problems using student-created components, such as procedures, modules and/or objects. [See: Functions Make Life Easier!; Problem Solving Together; Functions for Character Animation; Problem Decomposition; Piecewise Functions and Conditionals; Player Animation; The Distance Formula; Collision Detection - Distance and Inequality.]

3B-AP-21

Develop and use a series of test cases to verify that a program performs according to its design specifications. [See: Function Composition; Functions Make Life Easier!; Problem Solving Together; Functions for Character Animation; Problem Decomposition; Piecewise Functions and Conditionals; Player Animation; The Distance Formula; Collision Detection - Distance and Inequality.]

3B-AP-22

Modify an existing program to add additional functionality and discuss intended and unintended implications (e.g., breaking other functionality). [See: Player Animation.]

## K-12CS Standards

6-8.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: Functions Make Life Easier!.]

6-8.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; Functions Make Life Easier!.]

9-12.Algorithms and Programming.Control

Programmers consider tradeoffs related to implementation, readability, and program performance when selecting and combining control structures. [See: Piecewise Functions and Conditionals.]

9-12.Algorithms and Programming.Modularity

Complex programs are designed as systems of interacting modules, each with a specific role, coordinating for a common overall purpose. These modules can be procedures within a program; combinations of data and procedures; or independent, but interrelated, programs. Modules allow for better management of complex tasks. [See: Functions Make Life Easier!.]

9-12.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.M.02

With grade appropriate complexity, modify, remix, or incorporate portions of an existing program into one’s own work, to develop something new or add more advanced features. [See: Making Game Images; Functions for Character Animation; Player Animation.]

OK.3.AP.PD.01

Use an iterative process to plan the development of a program while solving simple problems. [See: Functions Make Life Easier!; Solving Word Problems with the Design Recipe; Problem Solving Together.]

OK.3.AP.PD.02

Observe intellectual property rights and give appropriate credit when creating or remixing programs. [See: Making Game Images.]

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.M.01

Decompose large problems into smaller, manageable subproblems to facilitate the program development process. [See: Problem Decomposition.]

OK.4.AP.M.02

With grade appropriate complexity, modify, remix, or incorporate portions of an existing program into one’s own work, to develop something new or add more advanced features. [See: Making Game Images; Functions for Character Animation; Player Animation.]

OK.4.AP.PD.02

Observe intellectual property rights and give appropriate credit when creating or remixing programs. [See: Making Game Images.]

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.M.01

Decompose large problems into smaller, manageable subproblems and then into a precise sequence of instructions. [See: Problem Decomposition.]

OK.5.AP.M.02

With grade appropriate complexity, modify, remix, or incorporate portions of an existing program into one’s own work, to develop something new or add more advanced features. [See: Making Game Images; Functions for Character Animation; Player Animation.]

OK.5.AP.PD.02

Observe intellectual property rights and give appropriate credit when creating or remixing programs. [See: Making Game Images.]

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 rational-valued (limited to halves and fourths) ordered-pairs as coordinates in all four quadrants and recognize the reflective relationships among coordinates that differ only by their signs. [See: Coordinates and Game Design; 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.A.3.1

Represent real-world or mathematical situations using expressions, equations and inequalities involving variables and rational numbers. [See: Simple Inequalities; Compound Inequalities: Solutions & Non-Solutions.]

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.C.01

Develop programs that utilize combinations of repetition, conditionals, and the manipulation of variables representing different data types. [See: Sam the Butterfly - Applying Inequalities.]

OK.6.AP.M.01

Decompose problems into parts to facilitate the design, implementation, and review of programs. [See: Making Flags; Problem Decomposition; Sam the Butterfly - Applying Inequalities; Collision Detection - Distance and Inequality.]

OK.6.AP.PD.01

Seek and incorporate feedback from team members to refine a solution to a problem. [See: Making Flags; Making Game Images; Functions for Character Animation; Player Animation; Collision Detection - Distance and Inequality.]

OK.6.AP.PD.02

Incorporate existing code, media, and libraries into original programs and give attribution. [See: Making Game Images.]

OK.6.AP.PD.03

Test and refine programs using teacher provided inputs. [See: Problem Solving Together.]

OK.6.AP.PD.05

Document text-based 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 real-world or mathematical situations using equations and inequalities involving variables and rational numbers. [See: Defining Values; Simple Inequalities; Compound Inequalities: Solutions & Non-Solutions; Sam the Butterfly - Applying Inequalities.]

OK.7.A.4.2

Apply understanding of order of operations and grouping symbols when using calculators and other technologies [See: Order of Operations.]

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; Surface Area of a Rectangular Prism.]

OK.7.AP.C.01

Develop programs that utilize combinations of repetition, compound conditionals, and the manipulation of variables representing different data types. [See: Sam the Butterfly - Applying Inequalities.]

OK.7.AP.M.01

Decompose problems into parts to facilitate the design, implementation, and review of increasingly complex programs. [See: Problem Decomposition; Sam the Butterfly - Applying Inequalities; Collision Detection - Distance and Inequality.]

OK.7.AP.PD.01

Seek and incorporate feedback from team members and users to refine a solution to a problem. [See: Making Game Images; Functions for Character Animation; Player Animation; Collision Detection - Distance and Inequality.]

OK.7.AP.PD.02

Incorporate existing code, media, and libraries into original programs of increasing complexity and give attribution. [See: Making Game Images.]

OK.7.AP.PD.03

Test and refine programs using a variety of student created inputs. [See: Problem Solving Together.]

OK.7.AP.PD.05

Document text-based 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.CS.T.01

Identify and fix increasingly complex software and hardware problems with computing devices and their components. [See: Problem Decomposition.]

OK.7.GM.1.1

Using a variety of tools and strategies, develop the concept that surface area of a rectangular prism with rational-valued edge lengths can be found by wrapping the figure with samesized square units without gaps or overlap. Use appropriate measurements such as cm^2 [See: Surface Area of a Rectangular Prism.]

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; Making Game Images.]

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; Making Game Images.]

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; Making Game Images; Solving Word Problems with the Design Recipe; Problem Solving Together; Functions for Character Animation.]

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.M.01

Decompose problems and subproblems into parts to facilitate the design, implementation, and review of complex programs. [See: Problem Decomposition; Sam the Butterfly - Applying Inequalities; Collision Detection - Distance and Inequality.]

OK.8.AP.PD.02

Incorporate existing code, media, and libraries into original programs of increasing complexity and give attribution. [See: Functions Make Life Easier!.]

OK.8.AP.PD.03

Systematically test and refine programs using a range of student created inputs. [See: Problem Solving Together.]

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 text-based programs of increasing complexity in order to make them easier to follow, test, and debug. [See: Solving Word Problems with the Design Recipe.]

OK.8.CS.T.01

Systematically identify, fix, and document increasingly complex software and hardware problems with computing devices and their components. [See: Problem Decomposition.]

OK.A1.A.1.1

Use knowledge of solving equations with rational values to represent and solve mathematical and real-world problems (e.g., angle measures, geometric formulas, science, or statistics) and interpret the solutions in the original context. [See: Functions Make Life Easier!.]

OK.A1.A.2

Represent and solve real-world and mathematical problems using linear inequalities, compound inequalities and systems of linear inequalities; interpret solutions in the original context. [See: Sam the Butterfly - Applying Inequalities.]

OK.A1.A.2.2

Represent relationships in various contexts with compound and absolute value inequalities and solve the resulting inequalities by graphing and interpreting the solutions on a number line. [See: Compound Inequalities: Solutions & Non-Solutions; Sam the Butterfly - Applying Inequalities.]

OK.A1.A.3

Generate equivalent algebraic expressions and use algebraic properties to evaluate expressions and arithmetic and geometric sequences. [See: Order of Operations.]

OK.A1.A.3.1

Solve equations involving several variables for one variable in terms of the others. [See: Problem Decomposition.]

OK.A1.A.4

Analyze mathematical change involving linear equations in real-world and mathematical problems. [See: Defining Linear Functions.]

OK.A1.A.4.1

Calculate and interpret slope and the x- and y-intercepts of a line using a graph, an equation, two points, or a set of data points to solve realworld and mathematical problems. [See: Defining Linear Functions.]

OK.A1.D.2.2

Describe the concepts of intersections, unions, and complements using Venn diagrams to evaluate probabilities. Understand the relationships between these concepts and the words AND, OR, and NOT. [See: Compound Inequalities: Solutions & Non-Solutions.]

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 real-world contexts. [See: Contracts.]

OK.A1.F.1.3

Write linear functions, using function notation, to model real-world and mathematical situations. [See: Contracts; Function Composition; Functions Make Life Easier!.]

OK.A1.F.1.4

Given a graph modeling a real-world situation, read and interpret the linear piecewise function (excluding step functions). [See: Contracts.]

OK.A1.F.2.1

Distinguish between linear and nonlinear (including exponential) functions arising from real-world and mathematical situations that are represented in tables, graphs, and equations. Understand that linear functions grow by equal intervals and that exponential functions grow by equal factors over equal intervals. [See: Functions Can Be Linear; Defining Linear Functions.]

OK.A1.F.3

Represent functions in multiple ways and use the representation to interpret real-world and mathematical problems. [See: Function Composition; Defining Values; Defining Linear Functions.]

OK.A1.F.3.1

Identify and generate equivalent representations of linear equations, graphs, tables, and real-world situations. [See: Defining Values; Defining Linear Functions.]

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 real-world 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.5

Use coordinate geometry to represent and analyze line segments and polygons, including determining lengths, midpoints, and slopes of line segments. [See: The Distance Formula; Collision Detection - Distance and Inequality.]

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.G.3D.1.1

Solve real-world and mathematical problems using the surface area and volume of prisms, cylinders, pyramids, cones, spheres, and composites of these figures. Use nets, measuring devices, or formulas as appropriate. [See: Surface Area of a Rectangular Prism.]

OK.G.RT.1.1

Apply the distance formula and the Pythagorean Theorem and its converse to solve real-world and mathematical problems, as approximate and exact values, using algebraic and logical reasoning (include Pythagorean Triples). [See: The Distance Formula; Collision Detection - Distance and Inequality.]

OK.L1.AP.A.01

Create a prototype that uses algorithms (e.g., searching, sorting, finding shortest distance) to provide a possible solution for a real-world problem. [See: Surface Area of a Rectangular Prism; Sam the Butterfly - Applying Inequalities.]

OK.L1.AP.M.01

Break down a solution into procedures using systematic analysis and design. [See: Problem Decomposition; Piecewise Functions and Conditionals.]

OK.L1.AP.M.02

Create computational artifacts by systematically organizing, manipulating and/or processing data. [See: Piecewise Functions and Conditionals.]

OK.L1.CS.D.01

Explain how abstractions hide the underlying implementation details of computing systems embedded in everyday objects. [See: Coordinates and Game Design.]

OK.L2.AP.M.01

Construct solutions to problems using student-created components (e.g., procedures, modules, objects). [See: Problem Solving Together.]

OK.L2.AP.M.03

Create programming solutions by reusing existing code (e.g., libraries, Application Programming Interface (APIs), code repositories). [See: Sam the Butterfly - Applying Inequalities.]

OK.L2.AP.PD.03

Develop programs for multiple computing platforms. [See: Functions Make Life Easier!.]

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; Problem Solving Together.]

OK.L2.AP.PD.07

Modify an existing program to add additional functionality and discuss intended and unintended implications (e.g., breaking other functionality). [See: Player Animation.]

OK.MAP.1

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

OK.MAP.2

Develop accurate and appropriate procedural fluency. [See: Order of Operations.]

OK.MAP.3

Develop strategies for problem solving. [See: Functions for Character Animation.]

OK.MAP.4

Develop mathematical reasoning. [See: Making Flags.]

OK.MAP.5

Develop a productive mathematical disposition. [See: Functions Make Life Easier!.]

OK.MAP.6

Develop the ability to make conjectures, model, and generalize. [See: Functions Make Life Easier!.]

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; Functions Make Life Easier!; Piecewise Functions and Conditionals; Player Animation.]

OK.PA.A.1.2

Use linear functions to represent and explain real-world and mathematical situations. [See: Functions Make Life Easier!; Solving Word Problems with the Design Recipe; Functions for Character Animation.]

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; Problem Solving Together.]

OK.PA.A.2

Recognize linear functions in real-world 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; Problem Solving Together; Functions for Character Animation.]

OK.PA.A.2.1

Represent linear functions with tables, verbal descriptions, symbols, and graphs; translate from one representation to another. [See: Functions Can Be Linear; Defining Linear Functions; Solving Word Problems with the Design Recipe; Problem Solving Together; Functions for Character Animation.]

OK.PA.A.2.2

Identify, describe, and analyze linear relationships between two variables. [See: Functions Can Be Linear; Defining Linear Functions.]

OK.PA.A.2.3

Identify graphical properties of linear functions including slope and intercepts. Know that the slope equals the rate of change, and that the yintercept is zero when the function represents a proportional relationship. [See: Defining Linear Functions.]

OK.PA.A.2.4

Predict the effect on the graph of a linear function when the slope or y-intercept changes. Use appropriate tools to examine these effects. [See: Functions Can Be Linear; Defining Linear Functions.]

OK.PA.A.3

Generate equivalent numerical and algebraic expressions and use algebraic properties to evaluate expressions. [See: Order of Operations.]

OK.PA.A.3.1

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

OK.PA.A.4

Represent real-world 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.]

OK.PA.A.4.3

Represent real-world situations using equations and inequalities involving one variable. [See: Simple Inequalities; Compound Inequalities: Solutions & Non-Solutions; Sam the Butterfly - Applying Inequalities.]

OK.PA.GM.1

Solve problems involving right triangles using the Pythagorean Theorem. [See: The Distance Formula.]

OK.PA.GM.1.1

Informally justify the Pythagorean Theorem using measurements, diagrams, or dynamic software and use the Pythagorean Theorem to solve problems in two and three dimensions involving right triangles. [See: The Distance Formula.]

OK.PA.GM.1.2

Use the Pythagorean Theorem to find the distance between any two points in a coordinate plane. [See: The Distance Formula; Collision Detection - Distance and Inequality.]

OK.PA.GM.2

Calculate surface area and volume of three-dimensional figures. [See: Surface Area of a Rectangular Prism.]

OK.PA.GM.2.1

Calculate the surface area of a rectangular prism using decomposition or nets. Use appropriate units of measure, such as square centimeters. [See: Surface Area of a Rectangular Prism.]

OK.PA.GM.2.2

Calculate the surface area of a cylinder, in terms of pi and using approximations for pi, using decomposition or nets. Use appropriate units of measure, such as square centimeters. [See: Surface Area of a Rectangular Prism.]

## Iowa Standards

IA.5.G.A.1

Use a pair of perpendicular number lines, called axes, to define a coordinate system, with the intersection of the lines (the origin) arranged to coincide with the 0 on each line and a given point in the plane located by using an ordered pair of numbers, called its coordinates. Understand that the first number indicates how far to travel from the origin in the direction of one axis, and the second number indicates how far to travel in the direction of the second axis, with the convention that the names of the two axes and the coordinates correspond (e.g., x-axis and x-coordinate, y-axis and y-coordinate). [See: Coordinates and Game Design.]

IA.6.EE.B.6

Use variables to represent numbers and write expressions when solving a real-world 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.8.2

Looking for Pythagoras: The Pythagorean Theorem. [See: The Distance Formula.]

CMP.6.4

Covering and Surrounding: Two Dimensional Measurement. [See: Surface Area of a Rectangular Prism.]

CMP.7.7

Filling and Wrapping: Three Dimensional Measurement. [See: Surface Area of a Rectangular Prism.]

CMP.6.6

Variables and Patterns: Focus on Algebra. [See: Defining Values.]

CMP.6.1

Prime Time: Factors & Multiples. [See: Order of Operations.]

CMP.7.2

Accentuate the Negative: Integers and Rational Numbers. [See: Order of Operations.]

## IM 6 Math™

IM.6.6.8

Equal and Equivalent. [See: Problem Decomposition.]

IM.6.1.12

What is Surface Area?. [See: Surface Area of a Rectangular Prism.]

IM.6.1.13

Polyhedra. [See: Surface Area of a Rectangular Prism.]

IM.6.1.14

Nets and Surface Area. [See: Surface Area of a Rectangular Prism.]

IM.6.1.15

More Nets, More Surface Area. [See: Surface Area of a Rectangular Prism.]

IM.6.3.8

More about Constant Speed. [See: Functions for Character Animation.]

IM.6.6.6

Write Expressions Where Letters Stand for Numbers. [See: Functions for Character Animation.]

IM.6.5.5

Decimal Points in Products. [See: Making Game Images.]

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; Simple Inequalities.]

IM.6.7.10

Interpreting Inequalities. [See: Simple Data Types; Simple Inequalities; Sam the Butterfly - Applying Inequalities.]

IM.6.6.13

Expressions with Exponents. [See: Order of Operations.]

IM.6.6.14

Evaluating Expressions with Exponents. [See: Order of Operations.]

IM.6.6.15

Equivalent Exponential Expressions. [See: Order of Operations.]

## IM 7 Math™

IM.7.6.17

Modeling with Inequalities. [See: Sam the Butterfly - Applying Inequalities.]

IM.7.7.14

Surface Area of Right Prisms. [See: Surface Area of a Rectangular Prism.]

IM.7.1.1

What are Scaled Copies?. [See: Making Flags; Making Game Images.]

IM.7.1.5

The Size of the Scale Factor. [See: Making Flags; Making Game Images.]

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.7.5.13

Expressions with Rational Numbers. [See: Order of Operations.]

IM.7.5.14

Solving Problems with Rational Numbers. [See: Order of Operations.]

## IM 8 Math™

IM.8.8.11

Finding Distances in the Coordinate Plane. [See: Collision Detection - Distance and Inequality.]

IM.8.8.6

Finding Side Lengths of Triangles. [See: The Distance Formula.]

IM.8.8.7

A Proof of the Pythagorean Theorem. [See: The Distance Formula.]

IM.8.8.8

Finding Unknown Side Lengths. [See: The Distance Formula.]

IM.8.8.10

Applications of the Pythagorean Theorem. [See: The Distance Formula.]

IM.8.5.10

Piecewise Linear Functions. [See: Player Animation.]

IM.8.3.11

Equations of All Kinds of Lines. [See: Functions for Character Animation.]

IM.8.1.2

Naming the moves. [See: Making Flags; Making Game Images.]

IM.8.1.3

Grid Moves. [See: Making Flags; Making Game Images.]

IM.8.2.1

Projecting and Scaling. [See: Making Flags; Making Game Images.]

IM.8.5.1

Inputs and Outputs. [See: Contracts.]

IM.8.5.2

Introduction to Functions. [See: Contracts.]

IM.8.7.7

Practice with Rational Bases. [See: Order of Operations.]

IM.8.1.1

Moving in the Plane. [See: Coordinates and Game Design; Making Flags; Making Game Images.]

## IM Algebra 1

IM.Alg1.2.9

Which Variable to Solve for? (Part 2). [See: The Distance Formula.]

IM.Alg1.4.12

Piecewise Functions. [See: Player Animation.]

IM.Alg1.2.20

Writing and Solving Inequalities in One Variable. [See: Sam the Butterfly - Applying Inequalities; Collision Detection - Distance and Inequality.]

IM.Alg1.2.18

Representing Situations with Inequalities. [See: Simple Inequalities; Compound Inequalities: Solutions & Non-Solutions.]

IM.Alg1.2.8

Which Variable to Solve for? (Part 1). [See: Problem Decomposition.]

IM.Alg1.2.2

Writing Equations to Model Relationships (Part 1). [See: Surface Area of a Rectangular Prism.]

IM.Alg1.2.3

Writing Equations to Model Relationships (Part 2). [See: Surface Area of a Rectangular Prism.]

IM.Alg1.4.6

Features of Graphs. [See: Functions for Character Animation.]

IM.Alg1.4.10

Domain and Range (Part 1). [See: Functions for Character Animation.]

IM.Alg1.4.2

Function Notation. [See: Contracts; Defining Values; Making Game Images.]

IM.Alg1.4.3

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

IM.Alg1.1.6

Mystery Computations. [See: Simple Data Types.]

IM.Alg1.2.6

Equivalent Equations. [See: Order of Operations; Problem Decomposition.]

IM.Alg1.4.1

Describing and Graphing Situations. [See: Coordinates and Game Design.]

## 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; The Distance Formula.]

SEP.8

Obtaining, Evaluating, and Communicating Information. [See: Contracts.]

SEP.2

Developing and Using Models. [See: Order of Operations.]

## Math Lang. Routines

MLR.6

Three Reads. [See: Solving Word Problems with the Design Recipe; Player Animation.]

MLR.5

Co-Craft Questions and Problems. [See: Defining Values; Simple Inequalities; Compound Inequalities: Solutions & Non-Solutions.]

MLR.3

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

MLR.1

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

MLR.2

Collect and Display. [See: Contracts.]

MLR.8

Discussion Supports. [See: Contracts; Defining Values; Making Game Images; The Distance Formula.]

MLR.4

Information Gap. [See: Simple Data Types.]

MLR.7

## K12CS

P4

Developing and Using Abstractions. [See: Functions Make Life Easier!.]

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 open-minded 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 self-esteem 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.]