130.421.c.1.a 
Participate with electronic communities as a learner, initiator, contributor, and teacher/mentor; 

130.421.c.1.b 
Extend the learning environment beyond the school walls with digital products created to increase teaching and learning in the other subject areas; and 

130.421.c.1.c 
Participate in relevant, meaningful activities in the larger community and society to create electronic projects. 

130.421.c.2.a 
Create and properly display meaningful output; 

3.3 User Input

3.4 Basic Math in JavaScript

5.8 Random Numbers

7.1 Functions and Parameters 1

7.2 Functions and Parameters 2

7.3 Functions and Parameters 3

7.4 Functions and Return Values 1

7.5 Functions and Return Values 2

130.421.c.2.b 
Create interactive console display interfaces, with appropriate user prompts, to acquire data from a user; 

3.5 Using Graphics in JavaScript

7.1 Functions and Parameters 1

7.4 Functions and Return Values 1

22.1 Tic Tac Toe

130.421.c.2.c 
Use Graphical User Interfaces (GUIs) to create interactive interfaces to acquire data from a user and display program results; 

23.1 Game Design: Helicopter

130.421.c.2.d 
Write programs with proper programming style to enhance the readability and functionality of the code by using meaningful descriptive identifiers, internal comments, white space, spacing, indentation, and a standardized program style; 

1.5 The Start Function

1.6 Top Down Design and Decomposition in Karel

1.7 Commenting Your Code

1.15 How to Indent Your Code

130.421.c.2.e 
Improve numeric display by optimizing data visualization; 

130.421.c.2.f 
Display simple vector graphics using lines, circles, and rectangles; 

3.5 Using Graphics in JavaScript

8.1 Functions Challenges

9.1 Functions Challenges

130.421.c.2.g 
Display simple bitmap images; and 

3.5 Using Graphics in JavaScript

23.1 Game Design: Helicopter

130.421.c.2.h 
Seek and respond to advice from peers and professionals in evaluating quality and accuracy. 

4.1 Collaborative Programming

130.421.c.3.a 
Use a variety of resources, including foundation and enrichment curricula, to gather authentic data as a basis for individual and group programming projects; and 

130.421.c.3.b 
Use various productivity tools to gather authentic data as a basis for individual and group programming projects. 

130.421.c.4.a 
Use program design problemsolving strategies to create program solutions; 

1.6 Top Down Design and Decomposition in Karel

1.13 Control Structures Example

1.14 More Karel Examples and Testing

130.421.c.4.b 
Define and specify the purpose and goals of solving a problem; 

1.6 Top Down Design and Decomposition in Karel

130.421.c.4.c 
Identify the subtasks needed to solve a problem; 

1.5 The Start Function

1.6 Top Down Design and Decomposition in Karel

1.7 Commenting Your Code

130.421.c.4.d 
Identify the data types and objects needed to solve a problem; 

3.2 Variables

21.1 Intro to Lists/Arrays

21.8 Intro to Objects/Maps

21.9 Basics of Objects

21.12 Intro to Sets

21.13 Intro to Grids

130.421.c.4.e 
Identify reusable components from existing code; 

7.1 Functions and Parameters 1

7.2 Functions and Parameters 2

7.3 Functions and Parameters 3

7.4 Functions and Return Values 1

7.5 Functions and Return Values 2

130.421.c.4.f 
Design a solution to a problem; 

5.4 If Statements

5.7 For Loop Practice

5.8 Random Numbers

7.1 Functions and Parameters 1

7.2 Functions and Parameters 2

7.3 Functions and Parameters 3

7.4 Functions and Return Values 1

7.5 Functions and Return Values 2

15.1 Conway's Game of Life

130.421.c.4.g 
Code a solution from a program design; 

1.6 Top Down Design and Decomposition in Karel

1.13 Control Structures Example

130.421.c.4.h 
Identify and debug errors; 

1.3 Karel Can't Turn Right

1.7 Commenting Your Code

1.14 More Karel Examples and Testing

3.3 User Input

7.6 Local Variables and Scope

130.421.c.4.i 
Test program solutions with appropriate valid and invalid test data for correctness; 

1.14 More Karel Examples and Testing

3.2 Variables

3.3 User Input

7.1 Functions and Parameters 1

7.4 Functions and Return Values 1

130.421.c.4.j 
Debug and solve problems using error messages, reference materials, language documentation, and effective strategies; 

1.6 Top Down Design and Decomposition in Karel

1.14 More Karel Examples and Testing

3.3 User Input

7.6 Local Variables and Scope

130.421.c.4.k 
Explore common algorithms, including finding greatest common divisor, finding the biggest number out of three, finding primes, making change, and finding the average; 

1.9 For Loops

5.9 While Loops

7.1 Functions and Parameters 1

130.421.c.4.l 
Analyze and modify existing code to improve the underlying algorithm; 

1.4 Functions in Karel

1.6 Top Down Design and Decomposition in Karel

1.8 Super Karel

23.3 Improvements

130.421.c.4.m 
Create program solutions that exhibit robust behavior by understanding, avoiding, and preventing runtime errors, including division by zero and type mismatch; 

130.421.c.4.n 
Select the most appropriate algorithm for a defined problem; 

1.6 Top Down Design and Decomposition in Karel

1.13 Control Structures Example

5.10 Loop and a Half

7.6 Local Variables and Scope

130.421.c.4.o 
Demonstrate proficiency in the use of the arithmetic operators to create mathematical expressions, including addition, subtraction, multiplication, real division, integer division, and modulus division; 

3.2 Variables

3.4 Basic Math in JavaScript

5.5 For Loops in JavaScript

7.1 Functions and Parameters 1

7.2 Functions and Parameters 2

7.4 Functions and Return Values 1

130.421.c.4.p 
Create program solutions to problems using available mathematics libraries, including absolute value, round, power, square, and square root; 

3.4 Basic Math in JavaScript

7.1 Functions and Parameters 1

130.421.c.4.q 
Develop program solutions that use assignment; 

3.2 Variables

3.3 User Input

7.1 Functions and Parameters 1

7.2 Functions and Parameters 2

7.3 Functions and Parameters 3

7.4 Functions and Return Values 1

7.5 Functions and Return Values 2

7.6 Local Variables and Scope

130.421.c.4.r 
Develop sequential algorithms to solve nonbranching and noniterative problems; 

1.1 Introduction to Programming With Karel

1.2 More Basic Karel

1.3 Karel Can't Turn Right

1.5 The Start Function

3.1 Hello World

3.2 Variables

3.3 User Input

3.4 Basic Math in JavaScript

130.421.c.4.s 
Develop algorithms to decisionmaking problems using branching control statements; 

1.10 If Statements

1.11 If/Else Statements

1.13 Control Structures Example

5.4 If Statements

5.10 Loop and a Half

130.421.c.4.t 
Develop iterative algorithms and code programs to solve practical problems; 

1.9 For Loops

1.12 While Loops in Karel

5.5 For Loops in JavaScript

5.6 General For Loops

5.7 For Loop Practice

5.9 While Loops

130.421.c.4.u 
Demonstrate proficiency in the use of the relational operators; 

5.3 Comparison Operators

130.421.c.4.v 
Demonstrate proficiency in the use of the logical operators; and 

5.2 Logical Operators

130.421.c.4.w 
Generate and use random numbers. 

5.8 Random Numbers

130.421.c.5.a 
Discuss intellectual property, privacy, sharing of information, copyright laws, and software licensing agreements; 

130.421.c.5.b 
Model ethical acquisition and use of digital information; 

130.421.c.5.c 
Demonstrate proper digital etiquette, responsible use of software, and knowledge of acceptable use policies; 

130.421.c.5.d 
Investigate measures, including passwords and virus detection/prevention, to protect computer systems and databases from unauthorized use and tampering; and 

130.421.c.5.e 
Investigate how technology has changed and the social and ethical ramifications of computer usage. 

130.421.c.6.a 
Compare and contrast types of operating systems, software applications, and programming languages; 

5.1 Booleans

130.421.c.6.b 
Demonstrate knowledge of major hardware components, including primary and secondary memory, a central processing unit (CPU), and peripherals; 

130.421.c.6.c 
Differentiate among current programming languages, discuss the use of those languages in other fields of study, and demonstrate knowledge of specific programming terminology and concepts; 

5.1 Booleans

130.421.c.6.d 
Differentiate between a highlevel compiled language and an interpreted language; 

5.1 Booleans

130.421.c.6.e 
Understand concepts of objectoriented design; 

21.8 Intro to Objects/Maps

21.9 Basics of Objects

21.10 Iterating Over an Object

21.11 When Do I Use an Object?

130.421.c.6.f 
Use local and global scope access variable declarations; 

7.6 Local Variables and Scope

130.421.c.6.g 
Encapsulate data and associated subroutines into an abstract data type; 

21.3 Adding/Removing From an Array

21.6 Finding an Element in a List

21.7 Removing an Element From an Array

130.421.c.6.h 
Create subroutines that do not return values with and without the use of arguments and parameters; 

1.4 Functions in Karel

7.1 Functions and Parameters 1

7.2 Functions and Parameters 2

7.3 Functions and Parameters 3

130.421.c.6.i 
Create subroutines that return typed values with and without the use of arguments and parameters; 

7.4 Functions and Return Values 1

7.5 Functions and Return Values 2

8.1 Functions Challenges

9.1 Functions Challenges

130.421.c.6.j 
Understand and identify the databinding process between arguments and parameters; 

7.6 Local Variables and Scope

130.421.c.6.k 
Compare objects using reference values and a comparison routine; 

21.9 Basics of Objects

23.1 Game Design: Helicopter

130.421.c.6.l 
Understand the binary representation of numeric and nonnumeric data in computer systems; 

130.421.c.6.m 
Understand the finite limits of numeric data; 

130.421.c.6.n 
Perform numerical conversions between the decimal and binary number systems and count in the binary number system; 

130.421.c.6.o 
Choose, identify, and use the appropriate data types for integer, real, and Boolean data when writing program solutions; 

3.2 Variables

3.3 User Input

5.1 Booleans

130.421.c.6.p 
Demonstrate an understanding of the concept of a variable; 

3.2 Variables

130.421.c.6.q 
Demonstrate an understanding of and use reference variables for objects; 

21.8 Intro to Objects/Maps

21.9 Basics of Objects

130.421.c.6.r 
Demonstrate an understanding of how to represent and manipulate text data, including concatenation and other string functions; 

3.2 Variables

130.421.c.6.s 
Demonstrate an understanding of the concept of scope; 

7.6 Local Variables and Scope

130.421.c.6.t 
Identify and use the structured data type of onedimensional arrays to traverse, search, and modify data; 

21.1 Intro to Lists/Arrays

21.2 Indexing Into an Array

21.3 Adding/Removing From an Array

21.4 Array Length and Looping Through Arrays

21.5 Iterating Over an Array

21.6 Finding an Element in a List

21.7 Removing an Element From an Array

130.421.c.6.u 
Choose, identify, and use the appropriate data type and structure to properly represent the data in a program problem solution; and 

21.1 Intro to Lists/Arrays

21.8 Intro to Objects/Maps

21.11 When Do I Use an Object?

21.16 Data Structures Challenges

130.421.c.6.v 
Compare and contrast strongly typed and untyped programming languages. 

5.1 Booleans
