Please enable JavaScript to use CodeHS

Standards Mapping

for Arizona CTE Software and App Development

101

Standards in this Framework

75

Standards Mapped

74%

Mapped to Course

Standard Lessons
1.1
Establish objectives and outcomes for a task
1.2
Explain the process of decomposing a large programming problem into smaller, more manageable procedures
  1. 2.6 Top Down Design and Decomposition in Karel
1.3
Explain “visualizing” as a problem-solving technique prior to writing code
1.4
Describe problem-solving and troubleshooting strategies applicable to software development
  1. 6.7 Error Handling
2.1
Identify common computer threats (e.g., viruses, phishing, suspicious email, social engineering, spoofing, identity theft, and spamming)
  1. 6.8 Application Security
2.2
Describe potential vulnerabilities in software (e.g., OWASP’s Top 10)
  1. 6.8 Application Security
2.3
Identify procedures to maintain data integrity and security (e.g., lock the screen, delete unrecognized emails, use trustworthy thumb drives, and use approved software)
2.4
Explain best practices to maintain integrity and security in software development (e.g., encryption, hashing, and digital signatures)
2.5
Describe methods for sanitizing user input to prevent issues (e.g., buffer overflows and SQL injection)
  1. 6.8 Application Security
2.6
Explain the CIA (confidentiality, integrity, and availability) triad
2.7
Explain how software defects relate to software security (e.g., buffer overflows and cross-site scripting)
3.1
Explore intellectual property rights including software licensing and software duplication [e.g., Digital Millennium Copyright Act (DMCA), software licensing, and software duplication]
3.2
Compare and contrast open source and proprietary systems in relation to legal and ethical issues (e.g., data pricing, use of public and private networks, social networking, industry-related data, and data piracy)
  1. 6.6 Software Licenses
3.3
Identify issues and regulations affecting computers, other devices, the internet, and information privacy (e.g., HIPAA, COPPA, CISPA, FERPA, PCI, GDPR, and data brokers)
4.1
Declare numeric, Boolean, character, string variables, and float and double
  1. 3.2 Variables and Data Types
4.2
Choose the appropriate data type for a given situation
  1. 3.2 Variables and Data Types
4.3
Identify the correct syntax and usage for constants and variables in a program
  1. 3.2 Variables and Data Types
4.4
Identify the correct syntax and safe functions for operations on strings, including length, substring, and concatenation
  1. 4.7 String Objects
  2. 4.8 String Methods
4.5
Explain complications of storing and manipulating data (i.e., the Big-O notation for analyzing storage and efficiency concerns, etc.)
  1. 10.1 What is an Algorithm?
4.6
Research industry relevant programming languages (i.e., Java, JavaScript, Python, etc.)
  1. 3.1 Why Programming? Why Java?
5.1
Apply basic mathematics to hardware (e.g., bits, bytes, kilobytes, megabytes, gigabytes, and terabytes)
  1. 6.1 Hardware
5.2
Use binary to decimal, decimal to hexadecimal, hexadecimal to decimal, binary to hexadecimal, and binary to hexadecimal conversions to solve hardware and software problems
  1. 9.12 Binary
5.3
Identify and correctly use arithmetic operations applying the order of operations (precedence) with respect to programming
  1. 3.3 Expressions and Assignment Statements
5.4
Interpret and construct mathematical formulas
  1. 3.3 Expressions and Assignment Statements
5.5
Identify correct and problematic uses of integers, floating-point numbers, and fixed-point numbers in arithmetic
  1. 3.3 Expressions and Assignment Statements
6.1
Use the correct syntax for decision statements (e.g., if/else, if, and switch case)
  1. 5.1 Boolean Expressions and if Statements
  2. 5.2 if Statements and Control Flow
  3. 5.3 if-else Statements
  4. 5.4 else if Statements
6.2
Compare values using relational operators (e.g., =, >, <, >=, <=, and not equal)
  1. 5.1 Boolean Expressions and if Statements
6.3
Evaluate Boolean expressions (e.g., AND, OR, NOT, NOR, and XOR)
  1. 5.1 Boolean Expressions and if Statements
6.4
Use the correct nesting for decision structures
  1. 5.5 Compound Boolean Expressions
7.1
Identify various types of iteration structure (e.g., while, for, for-each, and recursion)
  1. 7.1 Iteration
7.2
Identify how loops are controlled (variable conditions and exits)
  1. 7.2 For Loops
7.3
Use the correct syntax for nested loops
  1. 7.4 Nested Iteration
7.4
Compute the values of variables involved with nested loops
  1. 7.4 Nested Iteration
8.1
Demonstrate basic uses of arrays including initialization, storage, and retrieval of values
  1. 9.3 Using Arrays
8.2
Distinguish between arrays and hash maps (associative arrays)
  1. 9.11 HashMaps
8.3
Identify techniques for declaring, initializing, and modifying user-defined data types
  1. 8.1 Writing Classes
  2. 8.2 Constructors
  3. 8.5 Mutator Methods
8.4
Search and sort data in an array
  1. 10.2 Linear Search
  2. 10.3 Binary Search
  3. 10.4 Selection Sort
  4. 10.5 Insertion Sort
  5. 10.7 Mergesort
8.5
Create and use two-dimensional arrays
  1. 9.10 Traversing 2D Arrays
8.6
Describe the efficiency of different sorting algorithms (e.g., bubble, insertion, and merge)
  1. 10.5 Insertion Sort
  2. 10.7 Mergesort
8.7
Describe the efficiency of linear vs. binary searches [e.g., O(n) and O(log n)]
  1. 10.2 Linear Search
  2. 10.3 Binary Search
9.1
Explain cloud-based computing and content delivery networks
9.2
Identify the components and functions of the internet (e.g., HTTP, HTTPS, FTP, IP addresses, and IMAP)
  1. 1.6 Packets and Protocols
9.3
Identify services run by web servers [e.g., scripting languages (client- and server-side scripting), databases, and media]
9.4
Identify performance issues (e.g., bandwidth, internet connection types, pages loading slowly, resolution, and size graphics)
  1. 1.2 Internet Hardware
9.5
Differentiate among shared hosting, dedicated server, and virtual private server (VPS)
9.6
Identify Internet of Things (IOT) and common communication interfaces (e.g., Bluetooth, NFC, Wi-Fi, and LTE)
10.1
Identify key components and functions of internet and web specialty browsers
  1. 6.9 Browser Configuration
10.2
Use client collaboration sources/platforms (e.g., GitHub, Google Drive, Dropbox, JSFiddle, and browser developer tools)
  1. 6.13 Version Control
10.3
Analyze remote computing tools and services and their application
11.1
Implement the steps in the System Development Life Cycle (SDLC) (e.g., planning, analysis, design, development, testing, implementation, and maintenance)
11.2
Develop program requirements/specifications and a testing plan (e.g., user stories, automated testing, and test procedures)
11.3
Apply pseudocode or graphical representations to plan the structure of a program or module (e.g., flowcharting, whiteboarding, and UML)
11.4
Create and implement basic algorithms
  1. 10.1 What is an Algorithm?
  2. 10.2 Linear Search
12.1
Use a program editor to enter and modify code
  1. 3.1 Why Programming? Why Java?
  2. 3.2 Variables and Data Types
  3. 3.3 Expressions and Assignment Statements
12.2
Identify correct input/output statements
  1. 3.1 Why Programming? Why Java?
  2. 3.5 User Input
12.3
Choose the correct method of assigning input to variables including data sanitization
  1. 3.5 User Input
12.4
Choose the correct method of outputting data with formatting and escaping
  1. 3.1 Why Programming? Why Java?
12.5
Differentiate between interpreted and compiled code (e.g., steps necessary to run executable code)
  1. 6.12 Executing Code
12.6
Identify the purpose of a build system (e.g., make, rake, ant, maven, SCons, and grunt)
  1. 6.12 Executing Code
12.7
Apply industry standards in documentation (e.g., self-documenting code; function-level, program-level, and user-level documentation)
  1. 8.3 Documentation with Comments
12.8
Name identifiers and formatting code by applying recognized conventions
  1. 3.2 Variables and Data Types
12.9
Demonstrate refactoring techniques to reduce repetitious code and improve maintainability
  1. 2.5 Methods in Karel
12.10.
Demonstrate the use of parameters to pass data into program modules
  1. 4.5 Calling a Void Method with Parameters
12.11
Demonstrate the use of return values from modules
  1. 4.6 Calling a Non-void Method
13.1
Identify errors in program modules
  1. 6.7 Error Handling
13.2
Identify boundary cases and generate appropriate test data
  1. 6.7 Error Handling
13.3
Perform integration testing including tests within a program to protect execution from bad input or other run-time errors
  1. 6.7 Error Handling
  2. 9.3 Using Arrays
13.4
Categorize, identify, and correct errors in code, including syntax, semantic, logic, and runtime
  1. 6.7 Error Handling
13.5
Perform different methods of debugging (e.g., hand-trace code and real time debugging tools)
  1. 6.7 Error Handling
  2. 8.3 Documentation with Comments
14.1
Use standard library functions
  1. 4.9 Wrapper Classes: Integers and Doubles
  2. 4.10 Using the Math Class
14.2
Find and use third party libraries (e.g., web-based and package managers)
14.3
Explain and interact with an Application Program Interface (API)
15.1
Identify the purpose of version control systems (e.g., Git and Mercurial)
  1. 6.13 Version Control
15.2
Create a new repository
  1. 6.13 Version Control
15.3
Add, push, and pull source code from repository
  1. 6.13 Version Control
15.4
Explain branching and its uses
  1. 6.13 Version Control
15.5
Restore previous versions of code from the repository
  1. 6.13 Version Control
16.1
Apply W3C standards and style conventions
16.2
Construct web pages and applications that are compliant with ADA and sections 504 and 508 standards
16.3
Explain the concept of responsive design and applications
16.4
Employ graphics methods to create images at specified locations
16.5
Choose correct GUI objects for input and output of data to the GUI interface (e.g., text boxes, labels, radio buttons, check boxes, dropdowns, and list boxes)
17.1
Input/output data from a sequential file or database
17.2
Demonstrate creating, reading, updating, and dropping a database
17.3
Demonstrate the proper use of SQL database applications that work with different languages (e.g., MongoDB, Microsoft Access, Oracle Databases, and Code.org’s App Lab)
18.1
Make a distinction between an object and a class
  1. 4.1 Objects: Instances of Classes
18.2
Differentiate among inheritance, composition, and class relationships
  1. 11.1 Inheritance
18.3
Instantiate objects from existing classes
  1. 4.2 Creating and Storing Objects (Instantiation)
18.4
Read the state of an object by invoking accessor methods
  1. 4.6 Calling a Non-void Method
  2. 8.4 Accessor Methods
18.5
Change the state of an object by invoking a modifier method
  1. 8.5 Mutator Methods
18.6
Determine the requirements for constructing new objects by reading the documentation
  1. 4.2 Creating and Storing Objects (Instantiation)
18.7
Create a user-defined class
  1. 8.2 Constructors
18.8
Create a subclass of an existing class
  1. 11.2 Writing Constructors for Subclasses
18.9
Identify the use of an abstract class as opposed to an interface
  1. 11.5 Abstract Classes and Interfaces
18.10.
Explain the object-oriented concepts of polymorphism, inheritance, and encapsulation
  1. 11.1 Inheritance
19.1
Identify runtime errors
  1. 6.7 Error Handling
19.2
Describe error handling strategies
  1. 6.7 Error Handling
19.3
Handle unexpected return values
  1. 6.7 Error Handling
19.4
Handle (catch) runtime errors and take appropriate action
  1. 6.7 Error Handling
19.5
Throw standard exception classes
  1. 6.7 Error Handling
19.6
Develop and throw custom exception classes
  1. 6.7 Error Handling