Demonstrate knowledge of iterative computation to solve problems.
13.13 For Loops
13.14 While Loops
17.7 Recursion
311.1B
Apply knowledge of decomposing a problem into simpler computational parts.
2.6 Top Down Design and Decomposition in Karel
17.1 What is an Algorithm?
311.1C
Apply characteristics of algorithmic thinking, including the use of flowcharts and pseudocode.
13.2 Organizational Techniques
311.1D
Demonstrate knowledge of the use of sequence, selection, iteration, and recursive thinking in algorithm design.
13.11 Comparison Operators
13.12 If Statements
13.13 For Loops
13.16 Loop-and-a-Half
311.1E
Demonstrate knowledge of the concept of abstraction for managing computational complexity.
9.8 Industry Resources
17.1 What is an Algorithm?
311.1F
Demonstrate knowledge of how computational and algorithmic components fit together in a problem-solving process.
13.2 Organizational Techniques
311.1G
Demonstrate knowledge of industry resources and career technical education concepts related to computational thinking and the development of algorithms.
17.1 What is an Algorithm?
311.2A
Demonstrate knowledge of the practical application of algorithms.
17.1 What is an Algorithm?
311.2B
Interpret flow of control in an algorithm.
13.2 Organizational Techniques
311.2C
Predict output of a given algorithm, including through algorithmic tracing.
13.2 Organizational Techniques
13.6 Arithmetic Expressions
311.2D
Select an algorithm to solve a given problem.
17.1 What is an Algorithm?
311.2E
Evaluate an algorithm in terms of clarity (e.g., ambiguity, specificity).
12.1 Basic Debugging in Java
12.3 Debugging Techniques
12.4 Common Java Errors
311.2F
Evaluate algorithms in terms of complexity and efficiency, including a basic interpretation of big-O notation.
17.4 Selection Sort
17.5 Insertion Sort
17.8 Mergesort
17.9 Algorithmic Complexity
311.2G
Demonstrate knowledge of industry resources and career technical education concepts related to characteristics of algorithms.Apply knowledge of the characteristics and uses of searching (i.e., linear/sequential and binary) and sorting algorithms (e.g., bubble, selection).
17.2 Linear Search
17.3 Binary Search
17.4 Selection Sort
17.6 Searching and Sorting Algorithms
311.2H
Demonstrate knowledge of industry resources and career technical education concepts related to characteristics of algorithms.
3.6 Ethical and Social Implications of Computing
17.12 Algorithm Characteristics
311.3A
Demonstrate knowledge of tools and techniques for locating, extracting, transforming, loading, and storing data sets (e.g., crawlers, data preparation tools, databases).
5.1 Getting Started with Data
5.4 Data Collection & Limitations
311.3B
Identify data and use a variety of tools (e.g., database, spreadsheet, algorithms) and techniques (e.g., search, filter, transform, visualize) to analyze data and metadata and identify patterns.
5.3 Using Spreadsheets with Data
5.7 Analyzing Data
311.3C
Demonstrate knowledge of the use of representations, models, and simulations to describe processes and evaluate hypotheses.
5.3 Using Spreadsheets with Data
311.3D
Apply knowledge of computer models and data analysis techniques for simulating, analyzing, and evaluating solutions to real-world problems, including the use of artificial intelligence (AI).
3.5 Future of Computing
5.6 AI and Data
311.3E
Demonstrate knowledge of industry resources and career technical education concepts related to data analysis, modeling, and simulation.
5.5 Simulation
312.1A
Apply knowledge of characteristics of types of programming languages (e.g., functional, compiled, object-oriented), including block-based languages.
13.1 Programming Languages
312.1B
Apply knowledge of the Software Development Life Cycle (SDLC) and methodologies (e.g., waterfall, iterative, agile).
11.1 Intro to Software Development
312.1C
Apply knowledge of programming style and good programming practices (e.g., indenting, spacing, comments, encapsulation, naming conventions, camelCase) and program documentation.
2.15 How to Indent Your Code
312.1D
Apply knowledge of tools related to the development of computer artifacts (e.g., integrated development environments [IDEs], application programming interfaces [APIs], libraries, mobile device simulators).
11.2 How Developers Create and Test Applications
12.6 Java Outside of CodeHS
15.3 Using a Class as a Client
312.1E
Apply knowledge of common programming errors and procedures for testing and debugging computer programs.
12.1 Basic Debugging in Java
12.2 Debugging Tools
12.3 Debugging Techniques
312.1F
Demonstrate knowledge of a variety of concepts related to programming (e.g., event driven, heuristic algorithms, parallel processing, artificial intelligence).
3.5 Future of Computing
13.5 User Input
16.3 Using Arrays
312.1G
Demonstrate knowledge of techniques for learning the characteristics of and proficiently using one or more programming languages (e.g., Java, Python, JavaScript, C, C++, C#/.NET, R, Rust).
13.1 Programming Languages
312.1H
Demonstrate knowledge of industry resources and career technical education concepts related to programming concepts and programming design and development.
11.3 Intro to Design Thinking
11.4 Prototype
11.5 Test
312.2A
Demonstrate knowledge of language-defined data types (e.g., integer, float, Boolean).
13.4 Variables and Types
13.9 Booleans
312.2B
Apply properties of strings and string methods (e.g., length, substring, concatenation).
13.19 String Types
14.4 String Methods
312.2C
Apply knowledge of constants, variables, and classes in various contexts.
15.2 Classes vs. Objects
15.3 Using a Class as a Client
15.5 Writing Classes and Instance Methods
15.8 Local Variables and Scope
312.2D
Apply a basic knowledge of data structures (e.g., arrays, lists, queues).
16.2 Introduction to Arrays
16.3 Using Arrays
16.4 2D Arrays
16.6 HashMaps, Stacks, and Queues
312.2E
Demonstrate knowledge of industry resources and career technical education concepts related to characteristics and uses of data types.
3.5 Future of Computing
3.6 Ethical and Social Implications of Computing
5.7 Analyzing Data
312.3A
Apply arithmetical operators as defined by the language (e.g., addition, subtraction, multiplication, integer division, modular arithmetic).
13.6 Arithmetic Expressions
312.3B
Apply relational operators (e.g., greater than, less than, equal to) in conditional statements.
13.10 Logical Operators
13.11 Comparison Operators
312.3C
Interpret logical operators (e.g., AND, OR, NOT) in various contexts (e.g., logic tables, truth tables, logic gates).
13.9 Booleans
13.10 Logical Operators
13.17 Short-Circuit Evaluation
13.18 DeMorgan's Laws
312.3D
Apply knowledge of conditional selection structures (e.g., if, if-else), including nesting.
13.12 If Statements
13.15 Nested Iterations
312.3E
Apply knowledge of iterative control structures (e.g., while, for), including nesting.
13.13 For Loops
13.14 While Loops
13.15 Nested Iterations
312.3F
Demonstrate knowledge of industry resources and career technical education concepts related to operators and control structures.
13.10 Logical Operators
13.11 Comparison Operators
13.12 If Statements
13.13 For Loops
13.14 While Loops
13.18 DeMorgan's Laws
312.4A
Demonstrate knowledge of principles of modularization and characteristics of program modules (e.g., functions/methods, objects, classes).
14.1 Java Methods
14.2 Methods and Parameters
14.3 Methods and Return Values
15.1 Intro to Classes and Objects
15.4 Writing Classes
312.4B
Analyze the characteristics and uses of inheritance, polymorphism, and classes in object-oriented programming.
15.1 Intro to Classes and Objects
15.11 Inheritance
15.12 Polymorphism
312.4C
Demonstrate knowledge of best practice principles related to object-oriented design and programming (e.g., abstraction, information hiding, encapsulation, constructors).
15.2 Classes vs. Objects
15.3 Using a Class as a Client
15.4 Writing Classes
15.9 Key Terms for Classes
312.4D
Apply knowledge of function calls, parameters, and parameter-passing techniques.
15.6 Getter and Setter Methods
15.7 Method Overloading
15.8 Local Variables and Scope
312.4E
Demonstrate knowledge of industry resources and career technical education concepts related to object-oriented design and development.
12.1 Basic Debugging in Java
12.5 Common Compiler Errors
12.6 Java Outside of CodeHS
15.13 Object-Oriented Design for Certification Success
313.1A
Demonstrate knowledge of how information (e.g., text, image, sound, color) can be represented digitally by binary data.
4.4 Encoding Text with Binary
313.1B
Demonstrate knowledge of characteristics of various number systems (e.g., binary, decimal, hexadecimal, ASCII, Unicode).
4.3 Number Systems
4.4 Encoding Text with Binary
313.1C
Demonstrate knowledge of basic computer architecture and peripherals (e.g., processors, memory, storage, digital and analog sensors), including using continuous and discrete data.
9.3 Peripheral Devices
313.1D
Demonstrate knowledge of the characteristics and functions of operating systems.
3.4 Hardware
8.2 Operating Systems Software
8.3 Comparing Operating Systems
313.1E
Apply knowledge of strategies for troubleshooting basic hardware and software problems.
10.1 Methodology
10.2 Support Practice
313.1F
Demonstrate knowledge of industry resources and career technical education concepts related to terminology and concepts related to computing systems.
3.2 Computer Organization
3.3 Software
3.6 Ethical and Social Implications of Computing
313.2A
Demonstrate knowledge of terminology and concepts related to computer networks (e.g., client, server, bandwidth, protocol, intranet, logic gates).
6.1 Welcome to the Internet
6.6 Packets and Protocols
9.4 Network Devices
9.6 Network Options
313.2B
Identify the basic structure and features of the Internet and the World Wide Web (WWW).
6.2 Internet Hardware
6.3 Internet Addresses
6.4 DNS
313.2C
Demonstrate knowledge of concepts related to data transfer on the Internet (e.g., routing, packet switching, https).
6.5 Routing
6.6 Packets and Protocols
313.2D
Demonstrate knowledge of terminology and concepts related to mobile technologies (e.g., apps, wireless connectivity, security) and the interaction between mobile devices and networks (e.g., Internet of Things [IoT], cloud computing).
Demonstrate knowledge of cybersecurity issues (e.g., data encryption, common attacks), and digital citizenship (e.g., safe browsing, ethics, passwords, cyberbullying, social engineering).
4.11 Cryptography
7.3 Cyberbullying
7.5 Privacy and Security
7.8 Common Security Problems
7.10 Digital Certificates
313.2G
Demonstrate knowledge of industry resources and career technical education concepts related to networks and the Internet.