Please enable JavaScript to use CodeHS

Standards Mapping

for Praxis 5652

249

Standards in this Framework

240

Standards Mapped

96%

Mapped to Course

Standard Lessons
I.A.1
Understand computing as a way of expressing creativity, solving problems, enabling communication, and fostering innovation in a variety of fields and careers
  1. 3.1 History of Computers
  2. 3.5 Future of Computing
  3. 7.5 Hacking Ethics
  4. 7.6 Databases
  5. 7.7 Common Security Problems
  6. 10.1 Intro to Design Thinking
  7. 11.1 Collaboration in Computer Science
I.A.1.a
recognize that computers can be used to showcase creativity
  1. 10.1 Intro to Design Thinking
  2. 10.2 Prototype
  3. 10.3 Test
I.A.1.b
recognize the benefits of using computers to solve problems
  1. 3.1 History of Computers
  2. 8.4 Software and Applications
  3. 13.6 Arithmetic Expressions
I.A.1.c
provide examples of how computers enable communication and collaboration
  1. 3.5 Future of Computing
  2. 6.8 The Impact of the Internet
  3. 8.4 Software and Applications
I.A.1.d
provide examples of how computers foster innovation
  1. 3.1 History of Computers
  2. 3.5 Future of Computing
  3. 6.8 The Impact of the Internet
I.A.2
Know the obstacles to equal access to computing among different groups and the impact of those obstacles
  1. 3.5 Future of Computing
  2. 3.6 Ethical and Social Implications of Computing
  3. 6.8 The Impact of the Internet
I.A.2.a
identify obstacles to equal access to computing among different groups (e.g., groups defined by gender, socioeconomic status, disability/accessibility needs) and the impact of those obstacles
  1. 3.6 Ethical and Social Implications of Computing
  2. 6.8 The Impact of the Internet
I.A.2.b
identify factors that contribute to the digital divide
  1. 3.6 Ethical and Social Implications of Computing
  2. 6.8 The Impact of the Internet
I.A.2.c
match obstacles to equal access with effective solutions
  1. 3.5 Future of Computing
  2. 3.6 Ethical and Social Implications of Computing
  3. 6.8 The Impact of the Internet
I.A.3
Understand beneficial and harmful effects of computing innovations and the trade-offs between them
  1. 3.5 Future of Computing
  2. 3.6 Ethical and Social Implications of Computing
  3. 6.8 The Impact of the Internet
  4. 7.4 Privacy and Security
I.A.3.a
analyze computing innovations in terms of their social, economic, and cultural impacts, both beneficial and harmful
  1. 3.1 History of Computers
  2. 3.5 Future of Computing
  3. 3.6 Ethical and Social Implications of Computing
  4. 6.8 The Impact of the Internet
I.A.3.b
identify trade-offs between beneficial and harmful effects of computer innovations
  1. 3.1 History of Computers
  2. 3.5 Future of Computing
  3. 3.6 Ethical and Social Implications of Computing
  4. 6.8 The Impact of the Internet
  5. 7.4 Privacy and Security
I.B.1
Know different methods of protecting intellectual property rights and the trade-offs between them in a variety of contexts (e.g., Creative Commons, open source, copyright)
  1. 6.8 The Impact of the Internet
  2. 6.9 Creative Credit & Copyright
I.B.1.a
using correct vocabulary, describe how different methods of protecting intellectual property rights work
  1. 6.9 Creative Credit & Copyright
I.B.1.b
given a context, identify appropriate methods of protecting intellectual property rights
  1. 6.9 Creative Credit & Copyright
I.B.1.c
identify and compare trade-offs between different methods of protecting intellectual property rights
  1. 6.9 Creative Credit & Copyright
I.B.2
Understand ethical and unethical computing practices and their social, economic, and cultural implications
  1. 3.5 Future of Computing
  2. 3.6 Ethical and Social Implications of Computing
  3. 7.5 Hacking Ethics
I.B.2.a
identify ethical and unethical computing practices in context
  1. 3.6 Ethical and Social Implications of Computing
  2. 6.9 Creative Credit & Copyright
  3. 7.5 Hacking Ethics
I.B.2.b
describe the social, economic, and cultural implications of ethical and unethical computing practices
  1. 3.6 Ethical and Social Implications of Computing
  2. 6.8 The Impact of the Internet
  3. 7.2 Impact of Cyber
  4. 7.5 Hacking Ethics
I.B.2.c
identify the conditions under which a given computing practice is ethical or legal
  1. 3.6 Ethical and Social Implications of Computing
  2. 7.5 Hacking Ethics
I.B.3
Know privacy and security issues regarding the acquisition, use, and disclosure of information in a digital world
  1. 7.4 Privacy and Security
I.B.3.a
using correct vocabulary, describe privacy and security issues
  1. 7.4 Privacy and Security
I.B.3.b
using correct vocabulary, describe privacy and security issues
  1. 7.4 Privacy and Security
I.B.3.c
describe trade-offs between local and cloud-based data storage
  1. 9.5 Storage Options
I.B.3.d
identify methods that digital services use to collect information about users
II.A.1
Understand abstraction as a foundation of computer science
  1. 13.5 User Input
  2. 14.4 String Methods
  3. 15.3 Using a Class as a Client
II.A.1.a
identify, create, or complete the correct ordering, from low to high, of an abstraction hierarchy
  1. 15.11 Inheritance
II.A.1.b
identify abstractions in context
  1. 15.3 Using a Class as a Client
II.A.1.c
identify details that can be removed from a solution in order to generalize it
  1. 15.5 Writing Classes and Instance Methods
  2. 15.7 Method Overloading
II.A.2
Know how to use pattern recognition, problem decomposition, and abstraction to develop an algorithm
  1. 17.1 What is an Algorithm?
II.A.2.a
given a table of values or other data source, identify the patterns in the data and identify algorithms that could produce the patterns
  1. 16.5 Traversing 2D Arrays
  2. 17.2 Linear Search
  3. 17.3 Binary Search
II.A.2.b
identify components that could be part of an algorithm to solve a problem
  1. 17.1 What is an Algorithm?
II.A.2.c
identify actions and actors when decomposing a problem
  1. 2.6 Top Down Design and Decomposition in Karel
II.A.2.d
identify appropriate decomposition strategies
  1. 2.6 Top Down Design and Decomposition in Karel
II.A.3
Understand number base conversion and binary, decimal, and hexadecimal number systems
II.A.3.a
convert between number bases
II.A.3.b
analyze and compare representations of numbers in different bases
II.A.4
Understand how to develop and analyze algorithms expressed in multiple formats (e.g., natural language, flowcharts, pseudocode)
  1. 2.6 Top Down Design and Decomposition in Karel
  2. 13.2 Organizational Techniques
II.A.4.a
interpret diagrams that describe algorithms, given an explanation of the symbols used
  1. 13.2 Organizational Techniques
II.A.4.b
compare algorithms written in multiple formats
  1. 17.8 Informal Code Analysis
II.A.4.c
trace and analyze algorithms written in different formats
  1. 17.8 Informal Code Analysis
II.A.4.d
identify correct sequencing of steps in an algorithm and errors in sequencing
  1. 13.17 Short-Circuit Evaluation
  2. 17.8 Informal Code Analysis
II.B.1
Be familiar with the limitations of computing in terms of time, space, and solvability as well as with the use of heuristic solutions that can address these limitations
  1. 3.5 Future of Computing
  2. 4.10 Cryptography
II.B.1.a
identify and compare algorithms that are linear, quadratic, exponential, or logarithmic
  1. 17.2 Linear Search
  2. 17.4 Selection Sort
II.B.1.b
recognize the existence of problems that cannot be solved by a computer
  1. 3.5 Future of Computing
  2. 4.10 Cryptography
II.B.1.c
in context, identify factors that prevent a problem from being solvable
  1. 3.5 Future of Computing
  2. 4.10 Cryptography
II.B.1.d
identify situations where heuristic solutions are useful
  1. 3.5 Future of Computing
  2. 4.10 Cryptography
II.B.1.e
in context, identify space and time limitations of computational solutions to problems
II.B.2
Understand searching and sorting algorithms; can analyze sorting algorithms for correctness and can analyze searching algorithms for correctness and efficiency
  1. 17.2 Linear Search
  2. 17.3 Binary Search
  3. 17.4 Selection Sort
  4. 17.5 Insertion Sort
II.B.2.a
trace algorithms and predict output and intermediate results
  1. 17.8 Informal Code Analysis
II.B.2.b
calculate the number of comparisons required for linear and binary search algorithms
  1. 17.2 Linear Search
  2. 17.3 Binary Search
II.B.3
Understand simple recursive algorithms (e.g., n factorial, sum of first n integers)
  1. 17.6 Recursion
II.B.3.a
trace simple recursive algorithms
  1. 17.6 Recursion
II.B.3.b
provide missing steps in incomplete simple recursive algorithms
  1. 17.6 Recursion
II.B.3.c
identify parts of a recursive algorithm (e.g., base or stopping condition, recursive call)
  1. 17.6 Recursion
II.B.3.d
identify errors in simple recursive algorithms
  1. 17.6 Recursion
II.B.3.e
identify an iterative algorithm that is equivalent to a recursive algorithm
  1. 17.6 Recursion
II.B.4
Be familiar with the use of randomization in computing
II.B.4.a
identify appropriate uses of randomization in a variety of applications
II.B.4.b
identify the difference between random and pseudorandom numbers
III.A.1
Understand how to write and modify computer programs in a text-based programming language
  1. 13.3 Printing in Java
  2. 13.4 Variables and Types
  3. 13.5 User Input
III.A.1.a
describe what a program does or be able to choose the code segment that correctly implements a given intended purpose
  1. 2.7 Commenting Your Code
  2. 2.14 More Karel Examples and Testing
  3. 12.1 Basic Debugging in Java
III.A.1.b
identify missing code in a code segment with a stated intended purpose
  1. 2.14 More Karel Examples and Testing
  2. 12.1 Basic Debugging in Java
  3. 12.3 Debugging Techniques
  4. 12.4 Common Java Errors
III.A.1.c
place statements in appropriate order to create a correct program
  1. 2.6 Top Down Design and Decomposition in Karel
  2. 12.1 Basic Debugging in Java
  3. 12.3 Debugging Techniques
  4. 12.4 Common Java Errors
  5. 15.8 Local Variables and Scope
  6. 17.8 Informal Code Analysis
III.A.1.d
identify how changing one part of a code segment will affect the output
  1. 15.8 Local Variables and Scope
  2. 17.8 Informal Code Analysis
III.A.2
Understand how to analyze computer programs in terms of correctness
  1. 2.14 More Karel Examples and Testing
  2. 17.8 Informal Code Analysis
III.A.2.a
trace code and indicate the output printed or the value of variables after code segment execution
  1. 13.17 Short-Circuit Evaluation
  2. 17.8 Informal Code Analysis
III.A.2.b
indicate the inputs that produce given outputs for a code segment
  1. 2.7 Commenting Your Code
  2. 12.1 Basic Debugging in Java
III.A.2.c
describe what a program does or choose the code segment that correctly implements a given intended purpose
  1. 2.7 Commenting Your Code
  2. 12.1 Basic Debugging in Java
III.A.2.d
identify valid preconditions and postconditions
  1. 2.7 Commenting Your Code
III.A.2.e
compare two code segments or algorithm
  1. 17.2 Linear Search
  2. 17.3 Binary Search
III.A.2.f
identify the type of error produced by a code segment (i.e., syntax, runtime, compile-time, overflow, round-off, logic)
  1. 12.1 Basic Debugging in Java
  2. 12.2 Debugging Tools
  3. 12.3 Debugging Techniques
  4. 12.4 Common Java Errors
  5. 12.5 Common Compiler Errors
  6. 13.13 For Loops
  7. 14.5 Exceptions
III.A.2.g
identify errors in incorrect code and changes that can be made to correct them
  1. 12.1 Basic Debugging in Java
  2. 12.2 Debugging Tools
  3. 12.3 Debugging Techniques
  4. 12.4 Common Java Errors
  5. 12.5 Common Compiler Errors
  6. 14.5 Exceptions
  7. 15.8 Local Variables and Scope
III.A.3
Know the concepts of extensibility, modifiability, and reusability
  1. 14.1 Java Methods
  2. 15.4 Writing Classes
  3. 15.5 Writing Classes and Instance Methods
  4. 15.11 Inheritance
III.A.3.a
identify the meaning of the terms
  1. 14.1 Java Methods
  2. 15.4 Writing Classes
  3. 15.11 Inheritance
III.A.3.b
identify functionally equivalent statements or code segments that differ in one of these three ways
  1. 14.2 Methods and Parameters
  2. 14.3 Methods and Return Values
III.A.3.c
identify situations where the use of constants or variables would be preferred over hard-coded values
  1. 13.4 Variables and Types
III.A.3.d
identify opportunities for parameterization
  1. 14.2 Methods and Parameters
III.A.3.e
choose code that improves on given code by making it more extensible, modifiable, or reusable
  1. 15.11 Inheritance
III.A.3.f
identify changes that would improve a given code segment
  1. 17.8 Informal Code Analysis
III.A.4
Understand the three basic constructs used in programming: sequence, selection, and iteration
  1. 13.11 Comparison Operators
  2. 13.12 If Statements
  3. 13.13 For Loops
  4. 13.16 Loop-and-a-Half
III.A.4.a
trace code and indicate the output printed or the value of variables after code segment execution
  1. 15.8 Local Variables and Scope
  2. 17.8 Informal Code Analysis
III.A.4.b
indicate inputs that produce given outputs for a code segment
  1. 15.8 Local Variables and Scope
  2. 17.8 Informal Code Analysis
III.A.4.c
describe what a program does or choose the code segment that correctly implements a given intended purpose
  1. 2.7 Commenting Your Code
  2. 2.11 If Statements
  3. 13.12 If Statements
III.A.4.d
identify missing code in a code segment with a stated intended purpose
  1. 2.14 More Karel Examples and Testing
  2. 12.1 Basic Debugging in Java
  3. 12.3 Debugging Techniques
  4. 12.4 Common Java Errors
III.A.4.e
identify equivalent statements or code segments
  1. 17.8 Informal Code Analysis
III.A.4.f
identify the three constructs when used in code
  1. 13.11 Comparison Operators
  2. 13.12 If Statements
  3. 13.13 For Loops
  4. 13.14 While Loops
III.A.4.g
identify which of the constructs are needed to implement given functionality
  1. 13.20 Basic Java Quiz
III.A.4.h
convert code that does not use iteration to equivalent code that uses iteration
  1. 13.13 For Loops
III.A.5
Understand how to use standard operators (i.e., assignment, arithmetic, relational, logical) and operator precedence to write programs
  1. 13.4 Variables and Types
  2. 13.6 Arithmetic Expressions
  3. 13.10 Logical Operators
  4. 13.11 Comparison Operators
III.A.5.a
trace code and indicate the output displayed or the value of variables after code segment execution
  1. 15.8 Local Variables and Scope
III.A.5.b
indicate inputs that produce given outputs for a code segment
  1. 15.8 Local Variables and Scope
  2. 17.8 Informal Code Analysis
III.A.5.c
describe what a program does or choose the code segment that correctly implements a stated intended purpose
  1. 2.7 Commenting Your Code
III.A.5.d
identify missing code in a code segment with a stated intended purpose
  1. 12.1 Basic Debugging in Java
  2. 12.3 Debugging Techniques
  3. 12.4 Common Java Errors
  4. 12.5 Common Compiler Errors
III.A.5.e
identify equivalent statements or code segments
  1. 13.14 While Loops
  2. 17.8 Informal Code Analysis
III.A.5.f
place statements in appropriate order to create a correct program
  1. 13.16 Loop-and-a-Half
  2. 13.17 Short-Circuit Evaluation
III.A.5.g
use Boolean algebra to identify equivalent Boolean expressions
  1. 13.18 DeMorgan's Laws
III.A.5.h
write a Boolean expression equivalent to given code, or identify code equivalent to a given Boolean expression or English description
  1. 13.18 DeMorgan's Laws
III.A.5.i
identify the correct implementation of a given formula, including formulas with fractions
  1. 13.6 Arithmetic Expressions
III.A.5.j
evaluate expressions that include arithmetic operations
  1. 13.6 Arithmetic Expressions
III.A.6
Understand how to use variables and a variety of data types
  1. 13.1 Programming Languages
  2. 13.4 Variables and Types
III.A.6.a
identify variables and data types (e.g., integers, floating point, string, Booleans, arrays/lists)
  1. 13.1 Programming Languages
  2. 13.4 Variables and Types
  3. 16.1 What are Data Structures
III.A.6.b
identify the need for type conversion
  1. 13.7 Casting
III.A.6.c
trace code and indicate the output printed or the value of variables after code segment execution
  1. 13.16 Loop-and-a-Half
  2. 17.8 Informal Code Analysis
III.A.6.d
indicate the inputs that produce given outputs for a code segment
  1. 13.16 Loop-and-a-Half
  2. 15.8 Local Variables and Scope
III.A.6.e
describe what a program does or choose the code segment that correctly implements a stated intended purpose
  1. 2.7 Commenting Your Code
III.A.6.f
identify missing code in a code segment with a stated intended purpose
  1. 12.1 Basic Debugging in Java
  2. 12.3 Debugging Techniques
III.A.6.g
identify equivalent statements or code segment
  1. 13.14 While Loops
  2. 13.18 DeMorgan's Laws
  3. 17.8 Informal Code Analysis
III.A.6.h
place statements in appropriate order to create a correct program
  1. 13.12 If Statements
  2. 13.16 Loop-and-a-Half
III.A.6.i
describe the difference between integer and floating point numeric data types
  1. 13.4 Variables and Types
  2. 13.6 Arithmetic Expressions
III.A.6.j
describe the difference between integer and floating point division
  1. 13.6 Arithmetic Expressions
III.A.6.k
describe the benefits of the use of each data type
  1. 13.4 Variables and Types
III.A.6.l
distinguish between global and local scope
  1. 15.8 Local Variables and Scope
III.A.6.m
identify the most appropriate data type in a given context
  1. 13.4 Variables and Types
III.A.6.n
identify the correct sequence of string operations to produce a given output
  1. 14.4 String Methods
III.B.1
Understand how to write and call procedures with parameters and return values
  1. 14.2 Methods and Parameters
  2. 14.3 Methods and Return Values
III.B.1.a
trace code and indicate the output printed or the value of variables after code segment execution
  1. 15.8 Local Variables and Scope
  2. 17.8 Informal Code Analysis
III.B.1.b
indicate inputs that produce given outputs for a code segment
  1. 15.8 Local Variables and Scope
III.B.1.c
describe what a program does or choose the code segment that correctly implements a stated intended purpose
  1. 2.7 Commenting Your Code
III.B.1.d
identify missing code in a code segment with a stated intended purpose
  1. 12.1 Basic Debugging in Java
  2. 12.3 Debugging Techniques
  3. 12.4 Common Java Errors
III.B.1.e
identify equivalent statements or code segments
  1. 13.14 While Loops
  2. 13.18 DeMorgan's Laws
  3. 17.8 Informal Code Analysis
III.B.1.f
place statements in appropriate order to create a correct program
  1. 13.12 If Statements
  2. 13.16 Loop-and-a-Half
  3. 13.17 Short-Circuit Evaluation
III.B.1.g
trace code when references to objects and arrays are passed to procedures
  1. 16.3 Using Arrays
  2. 16.5 Traversing 2D Arrays
III.B.1.h
trace code that includes nested procedure calls
  1. 13.14 While Loops
  2. 16.5 Traversing 2D Arrays
III.B.10
Be familiar with the features and capabilities of integrated development environments (IDEs)
  1. 12.6 Java Outside of CodeHS
  2. 13.3 Printing in Java
III.B.10.a
identify components of IDEs
  1. 12.6 Java Outside of CodeHS
III.B.10.b
identify benefits and drawbacks of using IDEs
  1. 12.6 Java Outside of CodeHS
III.B.10.c
identify the costs and benefits of context editors
  1. 12.6 Java Outside of CodeHS
III.B.11
Be familiar with the differences between low- and high-level programming languages
  1. 13.1 Programming Languages
III.B.11.a
identify characteristics of low- and high-level languages
  1. 13.1 Programming Languages
III.B.12
Be familiar with different programming paradigms
  1. 13.1 Programming Languages
III.B.12.a
identify the terminology of procedural programming
  1. 2.3 Java Programs and the Run Method
III.B.12.b
identify the terminology of object-oriented programming
  1. 15.1 Intro to Classes and Objects
  2. 15.2 Classes vs. Objects
  3. 15.4 Writing Classes
III.B.12.c
compare programming paradigms
III.B.13
Know object-oriented programming concepts
  1. 15.1 Intro to Classes and Objects
  2. 15.2 Classes vs. Objects
III.B.13.a
identify classes, instance variables, and methods given a diagram
  1. 15.1 Intro to Classes and Objects
  2. 15.2 Classes vs. Objects
  3. 15.5 Writing Classes and Instance Methods
III.B.13.b
identify the benefits of inheritance and encapsulation
  1. 15.11 Inheritance
III.B.13.c
identify distinctions between overloading and overriding
  1. 15.7 Method Overloading
III.B.14
Be familiar with program compilation and program interpretation
  1. 13.1 Programming Languages
III.B.14.a
identify differences between compilation and interpretation
  1. 13.1 Programming Languages
III.B.14.b
identify differences between source code and object code
  1. 12.5 Common Compiler Errors
  2. 12.6 Java Outside of CodeHS
III.B.2
Know the concepts of event-driven programs that respond to external events (e.g., sensors, messages, clicks)
  1. 13.5 User Input
III.B.2.a
trace code and indicate the output printed or the value of variables after code segment execution
  1. 13.5 User Input
III.B.2.b
indicate inputs that produce given outputs for a code segment
  1. 13.5 User Input
III.B.2.c
describe what a program does or choose the code segment that correctly implements a stated intended purpose
  1. 13.5 User Input
III.B.2.d
identify missing code in a code segment with a stated intended purpose
  1. 12.1 Basic Debugging in Java
  2. 12.2 Debugging Tools
  3. 12.3 Debugging Techniques
  4. 12.4 Common Java Errors
  5. 12.5 Common Compiler Errors
III.B.2.e
identify possible errors due to asynchronous events
  1. 12.5 Common Compiler Errors
III.B.2.f
identify aspects of concurrency in event-driven programming
  1. 16.6 HashMaps, Stacks, and Queues
III.B.3
Be familiar with usability and user experience (e.g., ease of use and accessibility)
  1. 10.1 Intro to Design Thinking
  2. 10.2 Prototype
  3. 10.3 Test
III.B.3.a
identify code that improves on given code in terms of usability or user experience
  1. 14.5 Exceptions
III.B.3.b
identify meaningful error messages
  1. 14.5 Exceptions
III.B.3.c
identify features that improve accessibility
  1. 10.1 Intro to Design Thinking
  2. 10.2 Prototype
  3. 10.3 Test
III.B.4
Be familiar with dictionaries/maps, stacks, and queues
  1. 16.6 HashMaps, Stacks, and Queues
III.B.4.a
identify a data structure based on a description of behavior or appropriate use
  1. 16.1 What are Data Structures
III.B.4.b
given goals, constraints, or context, identify the most appropriate data structure
  1. 16.1 What are Data Structures
III.B.4.c
trace code that uses a particular data structure
  1. 16.4 2D Arrays
III.B.5
Understand how to use debugging techniques and appropriate test cases
  1. 2.14 More Karel Examples and Testing
  2. 12.1 Basic Debugging in Java
  3. 12.2 Debugging Tools
  4. 12.3 Debugging Techniques
  5. 12.4 Common Java Errors
  6. 12.5 Common Compiler Errors
III.B.5.a
identify which test cases are most useful for given code
  1. 2.14 More Karel Examples and Testing
  2. 12.1 Basic Debugging in Java
  3. 12.2 Debugging Tools
  4. 12.3 Debugging Techniques
  5. 12.4 Common Java Errors
  6. 12.5 Common Compiler Errors
III.B.5.b
differentiate between different types of errors (e.g., overflow, round-off, syntax, runtime, compile-time, logic)
  1. 12.1 Basic Debugging in Java
  2. 12.2 Debugging Tools
  3. 12.3 Debugging Techniques
  4. 12.4 Common Java Errors
  5. 12.5 Common Compiler Errors
III.B.5.c
describe useful debugging techniques (e.g., where to put print statements)
  1. 2.14 More Karel Examples and Testing
  2. 12.1 Basic Debugging in Java
  3. 12.2 Debugging Tools
  4. 12.3 Debugging Techniques
  5. 12.4 Common Java Errors
  6. 12.5 Common Compiler Errors
III.B.5.d
differentiate between empirical testing and proof
  1. 5.4 Data Collection & Limitations
III.B.5.e
identify errors in code and solutions to those errors
  1. 12.1 Basic Debugging in Java
  2. 12.2 Debugging Tools
  3. 12.3 Debugging Techniques
  4. 12.4 Common Java Errors
  5. 12.5 Common Compiler Errors
III.B.6
Be familiar with characteristics of well-documented computer programs that are usable, readable, and modular
  1. 2.7 Commenting Your Code
  2. 12.1 Basic Debugging in Java
  3. 13.2 Organizational Techniques
III.B.6.a
identify characteristics of good documentation
  1. 2.7 Commenting Your Code
  2. 13.2 Organizational Techniques
III.B.6.b
identify good and poor documentation practices in context
  1. 2.7 Commenting Your Code
  2. 13.2 Organizational Techniques
III.B.7
Be familiar with techniques to obtain and use feedback to produce high-quality code (e.g., code reviews, peer feedback, end user feedback)
  1. 10.2 Prototype
  2. 10.3 Test
  3. 11.1 Collaboration in Computer Science
  4. 11.2 Whiteboarding
  5. 11.3 Pair-Programming
  6. 11.4 Pop Coding
  7. 11.5 Storytelling through Code
III.B.7.a
identify situations in which each of the three listed techniques are useful
  1. 10.1 Intro to Design Thinking
  2. 10.2 Prototype
  3. 10.3 Test
III.B.8
Know how to use libraries and APIs
  1. 15.3 Using a Class as a Client
III.B.8.a
identify correct call(s) and use of return values given an A P I definition
  1. 15.3 Using a Class as a Client
III.B.8.b
identify reasons to use or not use libraries in place of writing original code
  1. 15.3 Using a Class as a Client
III.B.8.c
identify applications (e.g., math libraries, random number generation) that use APIs
  1. 14.1 Java Methods
  2. 15.3 Using a Class as a Client
III.B.9
Understand programming techniques to validate correct input and detect incorrect input
  1. 14.5 Exceptions
III.B.9.a
identify effective input data validation strategies
  1. 14.5 Exceptions
III.B.9.b
compare data validation (proper range and format) and data verification (e.g., password verification)
  1. 14.5 Exceptions
III.B.9.c
identify improvements to code for which data validation is required
  1. 14.5 Exceptions
IV.A.1
Understand bits as the universal medium for expressing digital information
  1. 4.2 Intro to Digital Information
IV.A.1.a
perform calculations, using bits and bytes
  1. 4.6 Hexadecimal
  2. 4.7 Pixel Colors
IV.A.1.b
determine the number of bits and bytes required to store a given amount of data
  1. 4.6 Hexadecimal
  2. 4.7 Pixel Colors
  3. 9.5 Storage Options
IV.A.1.c
given the description of an encoding scheme, encode or decode data
  1. 4.6 Hexadecimal
  2. 4.7 Pixel Colors
IV.A.1.d
describe lossy and lossless data compression
  1. 4.9 Lossy Compression
IV.A.1.e
explain why binary numbers are fundamental to the operation of computer systems
  1. 3.4 Hardware
  2. 4.1 What is Code?
IV.A.2
Be familiar with concepts of data encryption and decryption
  1. 4.10 Cryptography
IV.A.2.a
distinguish between encoding and encryption
  1. 4.10 Cryptography
IV.A.2.b
identify trade-offs in the use of data encryption
  1. 4.10 Cryptography
IV.A.3
Know how to use computational tools, including spreadsheets, to analyze data in order to discover, explain, and visualize patterns, connections, and trends
  1. 5.1 Getting Started with Data
  2. 5.2 Visualizing and Interpreting Data
  3. 5.3 Using Spreadsheets with Data
  4. 5.4 Data Collection & Limitations
IV.A.3.a
transform data to make it more useful
  1. 5.1 Getting Started with Data
  2. 5.2 Visualizing and Interpreting Data
  3. 5.3 Using Spreadsheets with Data
IV.A.3.b
identify specific data or characteristics of specific data that need to be removed or modified before an entire data set can be used
  1. 5.2 Visualizing and Interpreting Data
  2. 5.3 Using Spreadsheets with Data
  3. 5.4 Data Collection & Limitations
IV.A.3.c
describe the use of spreadsheet operations (e.g., formulas, filters, sorts, charts, graphs) to analyze and visualize data
  1. 5.3 Using Spreadsheets with Data
IV.B.1
Be familiar with the use of computing in simulation and modeling
  1. 5.5 Simulation
IV.B.1.a
describe questions that can be answered with a given simulation, or explain what data and process are required in a simulation in order to answer a given question
  1. 5.5 Simulation
IV.B.1.b
trace code in a simulation context
  1. 5.5 Simulation
IV.B.1.c
identify missing code in a simulation context
  1. 5.5 Simulation
IV.B.1.d
identify the impact of changes to simulations (e.g., more or fewer variables, more or less data)
  1. 5.5 Simulation
IV.B.1.e
identify applications of simulation and modeling
  1. 5.5 Simulation
IV.B.2
Be familiar with methods to store, manage, and manipulate data
  1. 3.4 Hardware
  2. 5.1 Getting Started with Data
  3. 5.3 Using Spreadsheets with Data
  4. 7.6 Databases
  5. 9.5 Storage Options
IV.B.2.a
use terminology and concepts of files and databases
  1. 7.6 Databases
IV.B.2.b
identify measures of file size (e.g., byte, kilo, mega, giga, tera, peta)
  1. 9.5 Storage Options
IV.B.2.c
identify issues connected with the storage requirements of computing applications, including scale, redundancy, and backup
  1. 9.5 Storage Options
IV.B.3
Be familiar with a variety of computational methods for data collection, aggregation, and generation
  1. 5.1 Getting Started with Data
  2. 5.3 Using Spreadsheets with Data
  3. 5.4 Data Collection & Limitations
IV.B.3.a
identify the benefits of working with publicly available data sets
  1. 5.1 Getting Started with Data
  2. 5.2 Visualizing and Interpreting Data
IV.B.3.b
identify the types of data generated by surveys and sensors
  1. 3.2 Computer Organization
IV.B.3.c
identify examples of crowdsourcing and citizen science
  1. 6.1 Welcome to the Internet
IV.B.3.d
identify appropriate data-collection methods for a given context and purpose
  1. 5.4 Data Collection & Limitations
V.A.1
Know that operating systems are programs that control and coordinate interactions between hardware and software components
  1. 3.3 Software
  2. 3.4 Hardware
  3. 8.2 Operating Systems Software
V.A.1.a
identify hardware components and their functions
  1. 3.4 Hardware
  2. 9.2 Internal Components
  3. 9.3 Peripheral Devices
  4. 9.4 Network Devices
  5. 9.5 Storage Options
  6. 9.6 Network Options
V.A.1.b
identify software components and their functions
  1. 3.3 Software
  2. 8.4 Software and Applications
V.A.1.c
identify common operating systems tasks
  1. 3.3 Software
  2. 8.2 Operating Systems Software
  3. 8.3 Comparing Operating Systems
V.A.1.d
identify resource issues that have an impact on functionality
  1. 8.3 Comparing Operating Systems
  2. 8.4 Software and Applications
  3. 8.5 Browser Configuration
V.A.2
Be familiar with computing systems embedded in everyday objects (e.g., Internet of Things [IoT], ATMs, medical devices)
  1. 3.5 Future of Computing
  2. 6.1 Welcome to the Internet
  3. 8.2 Operating Systems Software
V.A.2.a
describe what an embedded system is
  1. 8.2 Operating Systems Software
V.A.2.b
define what the IoT is and how it is used
  1. 7.1 What is Cyber?
  2. 7.2 Impact of Cyber
V.A.2.c
describe how sensors are used in embedded systems
  1. 3.2 Computer Organization
V.A.3
Know the capabilities, features, and uses of different types of computing systems (e.g., desktop, mobile, cluster)
  1. 3.2 Computer Organization
V.A.3.a
identify capabilities, features, and uses for each type of computer system
  1. 3.2 Computer Organization
V.A.3.b
identify criteria to evaluate and compare computing systems
  1. 3.2 Computer Organization
V.A.4
Be familiar with computers as layers of abstraction from hardware (e.g., logic gates, chips) to software (e.g., system software, applications)
  1. 3.2 Computer Organization
  2. 3.3 Software
  3. 3.4 Hardware
  4. 4.2 Intro to Digital Information
V.A.4.a
identify appropriate abstraction layers for hardware and software components
  1. 3.3 Software
  2. 3.4 Hardware
V.A.5
Be familiar with the steps required to execute a computer program (fetch-decode-execute cycles)
  1. 4.1 What is Code?
V.A.5.a
describe what happens during fetch, decode, and execute, including the order of the steps in the cycle
  1. 4.1 What is Code?
V.A.6
Be familiar with trade-offs between local, network, and cloud computing and storage
  1. 9.6 Network Options
V.A.6.a
identify advantages and disadvantages in terms of performance, cost, security, reliability, and collaboration
  1. 9.6 Network Options
  2. 9.7 Network Communication
V.A.6.b
identify means of storing binary data
  1. 4.2 Intro to Digital Information
V.A.7
Be familiar with communication between devices
  1. 6.1 Welcome to the Internet
  2. 6.2 Internet Hardware
  3. 9.7 Network Communication
V.A.7.a
identify and compare wireless communication systems
  1. 6.2 Internet Hardware
  2. 9.7 Network Communication
V.A.7.b
identify and compare wired communication systems
  1. 9.6 Network Options
  2. 9.7 Network Communication
V.A.7.c
identify and compare network types
  1. 3.2 Computer Organization
  2. 9.6 Network Options
  3. 9.7 Network Communication
V.B.1
Know components of networks
  1. 9.6 Network Options
  2. 9.7 Network Communication
V.B.1.a
identify network hardware devices and their functions
  1. 3.2 Computer Organization
  2. 9.4 Network Devices
V.B.1.b
describe possible abstraction models of networks
  1. 6.2 Internet Hardware
  2. 6.4 DNS
  3. 9.7 Network Communication
V.B.2
Be familiar with factors that have an impact on network functionality
  1. 6.2 Internet Hardware
  2. 9.7 Network Communication
V.B.2.a
define basic terminology (e.g., bandwidth, load, latency)
  1. 6.2 Internet Hardware
  2. 6.5 Routing
  3. 9.6 Network Options
  4. 9.7 Network Communication
V.B.2.b
estimate necessary bandwidth and data size for a given situation
  1. 6.5 Routing
  2. 6.6 Packets and Protocols
V.B.2.c
identify critical resources for a given situation
  1. 9.6 Network Options
V.B.3
Be familiar with how Internet and Web protocols work
  1. 6.2 Internet Hardware
  2. 6.3 Internet Addresses
  3. 6.4 DNS
  4. 6.5 Routing
  5. 6.6 Packets and Protocols
V.B.3.a
describe the purpose of protocols and identify common Internet and Web protocols
  1. 6.3 Internet Addresses
  2. 6.4 DNS
  3. 6.6 Packets and Protocols
V.B.3.b
compare IPv4 and IPv6
  1. 6.3 Internet Addresses
V.B.3.c
identify and describe the basic parts of a U R L (e.g., protocol, subdomain, domain name, port, path)
  1. 6.3 Internet Addresses
  2. 6.4 DNS
V.B.3.d
describe the hierarchical structure of names in the domain name system (DNS)
  1. 6.4 DNS
V.B.3.e
describe the purpose and function of I P addressing
  1. 6.3 Internet Addresses
V.B.3.f
identify how Internet protocols address reliability, redundancy, and error handling
  1. 6.2 Internet Hardware
  2. 6.3 Internet Addresses
  3. 6.6 Packets and Protocols
V.B.4
Be familiar with digital and physical strategies for maintaining security
  1. 6.7 Cybersecurity
  2. 7.4 Privacy and Security
  3. 7.7 Common Security Problems
  4. 7.8 Environmental Controls
  5. 7.9 Digital Certificates
V.B.4.a
identify characteristics of strong passwords (e.g., length, bits per character)
  1. 6.7 Cybersecurity
  2. 7.4 Privacy and Security
V.B.4.b
identify digital and physical security strategies
  1. 6.7 Cybersecurity
  2. 7.7 Common Security Problems
  3. 7.8 Environmental Controls
  4. 7.9 Digital Certificates
  5. 7.10 Data and Licenses
V.B.4.c
identify trade-offs in the use of security measures (e.g., encryption, decryption, digital signatures and certificates)
  1. 6.7 Cybersecurity
  2. 7.9 Digital Certificates
V.B.5
Be familiar with concepts of cybersecurity
  1. 6.7 Cybersecurity
  2. 7.1 What is Cyber?
  3. 7.2 Impact of Cyber
V.B.5.a
identify and define the five pillars of cybersecurity: confidentiality, integrity, availability, nonrepudiation, and authentication
  1. 7.3 The CIA Triad
V.B.6
Be familiar with the components that make up the Web (e.g., HTTP, HTML, browsers, servers, clients)
  1. 6.1 Welcome to the Internet
  2. 6.3 Internet Addresses
  3. 6.4 DNS
  4. 6.6 Packets and Protocols
  5. 8.5 Browser Configuration
V.B.6.a
identify the uses of markup languages
  1. 13.1 Programming Languages
V.B.6.b
identify the purposes of browsers, servers, and clients
  1. 8.5 Browser Configuration