Please enable JavaScript to use CodeHS

Standards Mapping

for Arizona Software and App Design 2024

138

Standards in this Framework

85

Standards Mapped

61%

Mapped to Course

Standard Lessons
1.1
Identify common computer threats (e.g., viruses, phishing, suspicious email, social engineering, spoofing, identity theft, spamming, and AI)
  1. Arizona Software and App Design I
  2. 1.2 Impact of Cybersecurity
  3. Arizona Software and App Design II
  4. 5.8 Application Security
1.2
Describe potential vulnerabilities and risk management for information security [i.e., SIEM (security information and event management) software, OWASP’s Top 10, CVEs (common vulnerabilities and exposure), etc.)
  1. Arizona Software and App Design I
  2. 12.1 Inside Web Apps
1.3
Identify procedures to maintain data integrity and security (e.g., lock the screen; report and delete unrecognized, suspicious emails; use trustworthy USB flash drives; and use approved software)
  1. Arizona Software and App Design I
  2. 1.7 Privacy & Security
1.4
Explain best practices to maintain integrity and security in software development (e.g., encryption, hashing, code signing, sandboxes, virtual machine (VM) containers, code versioning systems, and digital signatures)
  1. Arizona Software and App Design I
  2. 1.3 The CIA Triad
  3. 11.7 Web Security
1.5
Describe methods for sanitizing user input to prevent issues (e.g., buffer overflows and SQL injection)
  1. Arizona Software and App Design I
  2. 11.7 Web Security
  3. 12.11 Types of SQLi and Prevention
1.6
Analyze the CIA (confidentiality, integrity, and availability) triad
  1. Arizona Software and App Design I
  2. 1.3 The CIA Triad
1.7
Explain how software defects relate to software security (e.g., buffer overflows and cross-site scripting)
  1. Arizona Software and App Design I
  2. 11.7 Web Security
2.1
Identify hazards and unsafe practices that can lead to serious accidents or injuries (i.e., electrostatic discharge hazards, poor ergonomic practices, etc.)
2.2
Describe OSHA and other state and national regulations designed to reduce safety risks and workplace injuries
2.3
Explain environmental considerations when disposing of computer/network components (i.e., disposing of batteries, devices with lithium batteries, etc.)
2.4
Manage power consumption in the networked environment (i.e., wattage usage, green methods such as climate batteries and energy efficiency methods, cloud-based software, etc.)
3.1
Differentiate among numeric, Boolean, character, string variables, and float and double
  1. Arizona Software and App Design I
  2. 6.2 Variables
  3. 6.5 Booleans
  4. Arizona Software and App Design II
  5. 2.2 Variables and Data Types
  6. 2.6 Casting and Ranges of Variables
3.2
Select the appropriate data type for a given situation
  1. Arizona Software and App Design I
  2. 7.7 Challenge: Make a Keyboard
  3. Arizona Software and App Design II
  4. 2.2 Variables and Data Types
  5. 8.1 What are Data Structures?
3.4
Identify the correct syntax and usage for constants and variables (e.g., variable scope) in a program
  1. Arizona Software and App Design I
  2. 6.2 Variables
  3. 6.5 Booleans
  4. Arizona Software and App Design II
  5. 2.2 Variables and Data Types
3.5
Determine the correct syntax and safe functions for operations on strings, arrays, and data structures, including length, substring, and concatenation
  1. Arizona Software and App Design I
  2. 6.13 Intro to Lists/Arrays
  3. 6.14 Indexing Into an Array
  4. 6.15 Adding/Removing From an Array
3.6
Explain complications of storing and manipulating data (i.e., the Big-O notation used to analyze storage and efficiency concerns, etc.)
  1. Arizona Software and App Design I
  2. 10.1 Collecting and Storing Data
  3. 10.2 Storing Data with Local Storage
  4. 10.3 Storing Data Structures with Local Storage
3.7
Discuss data structure size concerns and memory management, including stack and heap
3.8
Implement file storage operations, including reading, writing, and creating files
4.1
Apply basic mathematics to hardware and software design, logic, and variable scope (e.g., bits, bytes, kilobytes, megabytes, gigabytes, terabytes, and petabytes) including kilohertz, megahertz, and gigahertz
4.2
Calculate binary conversions (e.g., decimal, hexadecimal, and binary) to solve hardware and software problems
  1. Arizona Software and App Design II
  2. 5.1 Hardware
4.3
Identify and correctly use arithmetic operations applying the order of operations (precedence) for programming
  1. Arizona Software and App Design I
  2. 6.4 Basic Math in JavaScript
  3. Arizona Software and App Design II
  4. 2.3 Expressions and Assignment Statements
4.4
Interpret and construct mathematical formulas used in code [i.e., y=n*x+b2-n*(a+b)]
  1. Arizona Software and App Design I
  2. 6.4 Basic Math in JavaScript
  3. Arizona Software and App Design II
  4. 2.3 Expressions and Assignment Statements
4.5
Identify correct and problematic uses of integers, floating-point numbers, and fixed-point numbers in arithmetic
  1. Arizona Software and App Design II
  2. 2.3 Expressions and Assignment Statements
4.6
Emphasize the importance of precision and accuracy in numerical computations to mitigate errors in software development
4.7
Investigate bit-shift left/right and bit-wise operations
5.1
Compare values using relational operators (e.g., =, >, <, >=, <=, and not equal)
  1. Arizona Software and App Design I
  2. 6.7 Comparison Operators
  3. Arizona Software and App Design II
  4. 4.1 Boolean Expressions and if Statements
5.2
Evaluate Boolean expressions (e.g., AND, OR, NOT, NOR, and XOR)
  1. Arizona Software and App Design I
  2. 6.5 Booleans
  3. Arizona Software and App Design II
  4. 4.1 Boolean Expressions and if Statements
5.3
Demonstrate and diagram conditional structures
5.4
Determine the correct syntax and nesting for decision structures (e.g., if/else, if, and switch case)
  1. Arizona Software and App Design I
  2. 6.8 If Statements
  3. Arizona Software and App Design II
  4. 4.2 if Statements and Control Flow
  5. 4.3 if-else Statements
  6. 4.4 else if Statements
5.5
Create and utilize functions and methods
  1. Arizona Software and App Design I
  2. 6.10 Functions and Parameters 1
  3. 6.11 Functions and Parameters 2
  4. 6.12 Functions and Return Values 1
  5. Arizona Software and App Design II
  6. 7.4 Accessor Methods
  7. 7.5 Mutator Methods
  8. 7.6 Writing Methods
6.1
Demonstrate basic uses of arrays including initialization, storage, retrieval of values, and how to use them as arguments
  1. Arizona Software and App Design I
  2. 6.13 Intro to Lists/Arrays
  3. 6.14 Indexing Into an Array
  4. 6.15 Adding/Removing From an Array
  5. Arizona Software and App Design II
  6. 8.1 What are Data Structures?
  7. 8.2 Introduction to Arrays
  8. 8.3 Using Arrays
6.2
Distinguish between arrays and hash maps (associative arrays)
  1. Arizona Software and App Design II
  2. 8.1 What are Data Structures?
  3. 8.2 Introduction to Arrays
  4. 8.11 HashMaps
6.3
Identify techniques for declaring, initializing, and modifying user-defined data types
  1. Arizona Software and App Design I
  2. 10.5 Using Input Fields
  3. 10.6 Challenge: Create a Survey
  4. Arizona Software and App Design II
  5. 7.1 Writing Classes
  6. 7.2 Constructors
  7. 7.5 Mutator Methods
6.4
Search and sort data in an array
  1. Arizona Software and App Design I
  2. 6.14 Indexing Into an Array
  3. 6.15 Adding/Removing From an Array
  4. 6.16 Array Length and Looping Through Arrays
  5. Arizona Software and App Design II
  6. 9.2 Linear Search
  7. 9.3 Binary Search
  8. 9.4 Selection Sort
  9. 9.5 Insertion Sort
6.5
Diagram, create, and use two-dimensional arrays
  1. Arizona Software and App Design II
  2. 8.9 2D Arrays
  3. 8.10 Traversing 2D Arrays
6.6
Describe the efficiency of different sorting algorithms (e.g., bubble, insertion, and merge)
  1. Arizona Software and App Design II
  2. 9.5 Insertion Sort
  3. 9.7 Mergesort
6.7
Describe the efficiency of linear vs. binary searches [e.g., O(n) and O(log n)]
  1. Arizona Software and App Design II
  2. 9.2 Linear Search
  3. 9.3 Binary Search
  4. 9.8 Informal Code Analysis
6.8
Investigate more advanced data structures like trees and graphs
7.1
Identify various types of iteration structure (e.g., while, for, for-each, and recursion)
  1. Arizona Software and App Design I
  2. 6.9 For Loops in JavaScript
  3. Arizona Software and App Design II
  4. 6.1 Iteration
  5. 6.2 For Loops
7.2
Explain how loops are controlled (variable conditions and exits)
  1. Arizona Software and App Design I
  2. 6.9 For Loops in JavaScript
  3. 10.10 For/In Loops
  4. Arizona Software and App Design II
  5. 6.2 For Loops
7.3
Employ the correct syntax for nested loops
  1. Arizona Software and App Design II
  2. 6.4 Nested Iteration
7.4
Compute the values of variables involved with nested loops (i.e., variable changes throughout a loop)
  1. Arizona Software and App Design II
  2. 6.4 Nested Iteration
7.5
Diagram iterative structures and use in writing programs
8.1
Explain the benefits of cloud-based computing
  1. Arizona Software and App Design I
  2. 11.2 Hosting Your Website
8.2
Classify the components and functions of the common internet protocols (e.g., HTTP, HTTPS, SSH, SFTP, FTPS, IP addresses, IPV6, and IMAP)
  1. Arizona Software and App Design II
  2. 1.6 Packets and Protocols
8.3
Determine services run by web servers [e.g., scripting languages (client- and server-side scripting), serverless architectures, cloud computing, databases, and media]
  1. Arizona Software and App Design I
  2. 10.7 Storing Data with Firebase
  3. 10.8 Traversing Data with Firebase
  4. 10.12 Server-side Languages
8.4
Identify performance issues (e.g., bandwidth, internet connection types, pages loading slowly, resolution, and size graphics)
  1. Arizona Software and App Design II
  2. 1.2 Internet Hardware
8.5
Compare different cloud service models [Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS), and Function as a Service (FaaS)]
9.1
Examine key components and functions of the internet and web browsers
9.2
Identify client collaboration sources/platforms (e.g., GitHub, Google Drive, Dropbox, JSFiddle, Visual Studio Live Share, and browser developer tools)
  1. Arizona Software and App Design I
  2. 12.2 Developer Tools
  3. Arizona Software and App Design II
  4. 5.13 Version Control
9.3
Analyze remote computing tools and services and their application [e.g., SSH (secure shell)]
  1. Arizona Software and App Design I
  2. 12.2 Developer Tools
9.4
Explore Modern Web and Application Frameworks (i.e., Node.js, Next.js, React, Django, GoLang, Flutter, etc.)
9.5
Discuss Containerization and Microservices in the context of Internet-based software architectures
10.1
Develop a maintenance plan to prioritize and schedule network security tasks (i.e., Cron Jobs)
10.2
Describe the purpose and benefits of network utilities [i.e., Network Statistics (Netstat), Name Server Lookup(NsLookup), Ping, Traceroute, etc.]
10.3
Demonstrate the use of visual indicators and diagnostic utilities (i.e., Wireshark, etc.) to interpret problems
10.4
Evaluate connectivity issues in various node environments (i.e., smartphones, switches, tablets, Linux/UNIX, Windows, etc.)
10.5
Identify and resolve network issues (i.e., cable failure, connection failure, environmental, misconfigurations, power, user error, etc.)
10.6
Research common tools and methods for monitoring a network
10.7
Describe AI and machine learning-based tools for network maintenance and issue resolution (i.e., LLM)
11.1
Discuss common editors and add-ins
11.2
Use a program editor to enter and modify code
  1. Arizona Software and App Design I
  2. 6.1 Hello World
  3. 10.4 JavaScript Objects
  4. 10.6 Challenge: Create a Survey
  5. Arizona Software and App Design II
  6. 2.1 Why Programming? Why Java?
  7. 3.1 Objects: Instances of Classes
  8. 8.2 Introduction to Arrays
11.3
Identify correct input/output statements
  1. Arizona Software and App Design I
  2. 6.3 User Input
  3. 10.9 Challenge: Collecting User Clicks
  4. Arizona Software and App Design II
  5. 2.1 Why Programming? Why Java?
  6. 2.5 User Input
11.4
Choose the correct method of assigning input to variables including data sanitization (i.e., input text to numbers)
  1. Arizona Software and App Design II
  2. 2.5 User Input
11.5
Determine the correct method of outputting data with formatting and escaping (e.g., ANSI escape code)
  1. Arizona Software and App Design II
  2. 3.7 String Objects
11.6
Differentiate between interpreted and compiled code and run executable code
  1. Arizona Software and App Design II
  2. 5.12 Executing Code
11.7
Identify the purpose of a build system (e.g., make, rake, ant, maven, SCons, and grunt)
  1. Arizona Software and App Design II
  2. 5.12 Executing Code
11.8
Apply industry standards to program documentation (e.g., self-documenting code; function-level, program-level, and user-level documentation)
  1. Arizona Software and App Design II
  2. 7.3 Documentation with Comments
11.9
Name identifiers and formatting code by applying recognized conventions (e.g., camel casing)
  1. Arizona Software and App Design I
  2. 6.2 Variables
  3. Arizona Software and App Design II
  4. 2.2 Variables and Data Types
11.10
Perform refactoring techniques to reduce repetitious code and improve maintainability
  1. Arizona Software and App Design I
  2. 6.10 Functions and Parameters 1
  3. 6.11 Functions and Parameters 2
  4. 6.12 Functions and Return Values 1
  5. Arizona Software and App Design II
  6. 7.6 Writing Methods
11.11
Use parameters to pass data into program modules and return values from modules
  1. Arizona Software and App Design II
  2. 3.5 Calling a Void Method with Parameters
11.12
Discuss the use of random number generators, including concepts of true randomness and seeding
12.1
Explain errors in program modules
  1. Arizona Software and App Design II
  2. 5.7 Error Handling
12.2
Identify boundary cases and generate appropriate test data
  1. Arizona Software and App Design II
  2. 5.7 Error Handling
12.3
Perform integration testing, including tests within a program, to protect execution from bad input or other run-time errors (e.g., CI (continuous integration) and automated testing)
12.4
Categorize, identify, and correct errors in code, including syntax, semantic, logic, and runtime
  1. Arizona Software and App Design II
  2. 5.7 Error Handling
12.5
Practice different methods of debugging (e.g., hand-trace code and real-time debugging tools)
  1. Arizona Software and App Design I
  2. 7.1 The Script Tag
13.1
Integrate standard library functions
  1. Arizona Software and App Design I
  2. 7.5 Functions in HTML
  3. 8.4 Callback Functions and Synchronization
  4. Arizona Software and App Design II
  5. 3.9 Wrapper Classes: Integers and Doubles
  6. 3.10 Using the Math Class
13.2
Design code that incorporates third-party libraries (e.g., web-based and package managers)
  1. Arizona Software and App Design I
  2. 8.1 Introduction to jQuery
  3. 8.2 Iterating with jQuery
  4. 8.3 Animations with jQuery
13.3
Explain and interact with an Application Program Interface (API)
  1. Arizona Software and App Design I
  2. 10.11 Using APIs
13.4
Investigate using community information to solve problems (e.g., stack overflow, forum post, etc.)
13.5
Create a README markdown file (.md) to document and explain basic install and usage steps
14.1
Compare version control system (e.g., Git and Mercurial)
  1. Arizona Software and App Design II
  2. 5.13 Version Control
14.2
Identify the purpose and types of version control systems (e.g., local, centralized, and distributed)
  1. Arizona Software and App Design II
  2. 5.13 Version Control
14.3
Create new repositories and perform basic operations (e.g., adding, pushing, and pulling source code from repositories)
  1. Arizona Software and App Design II
  2. 5.13 Version Control
14.4
Explain version control branching and its uses
  1. Arizona Software and App Design II
  2. 5.13 Version Control
14.5
Restore previous versions of code from the repository
  1. Arizona Software and App Design II
  2. 5.13 Version Control
14.6
Research the principles of DevOps, DevSecOps, and Continuous Integration/Continuous Deployment (CI/CD) as part of version control and software development lifecycle
14.7
Integrate version control workflows (i.e., continuous deployment) using collaborative development practices
14.8
Demonstrate document version control (i.e., commit messages, recovery from common errors, release notes, etc.)
  1. Arizona Software and App Design II
  2. 5.13 Version Control
15.1
Investigate user-centered design (UCD), prototyping, and wireframing used during the design process
15.2
Apply W3C standards and style conventions (e.g., HTML, CSS, and JavaScript)
  1. Arizona Software and App Design I
  2. 9.2 Layout and Web Design Theory
15.3
Construct web pages and applications that are compliant with ADA (Americans with Disabilities Act) and sections 504 and 508 standards (e.g., emphasize accessibility and inclusive design in user interface development)
  1. Arizona Software and App Design I
  2. 11.6 Web Accessibility
15.4
Explain the concept of responsive design and applications (i.e., loading times)
  1. Arizona Software and App Design I
  2. 4.15 CSS Frameworks
15.5
Employ graphics methods to create images at specified locations
  1. Arizona Software and App Design I
  2. 2.5 Images
  3. 7.10 Positioning and Animations
15.6
Choose correct GUI (graphical user interface) objects for input and output of data to the GUI interface (e.g., text boxes, labels, radio buttons, check boxes, dropdowns, and list boxes)
  1. Arizona Software and App Design I
  2. 10.5 Using Input Fields
  3. 10.6 Challenge: Create a Survey
15.7
Apply UI/UX design for multiple platforms including computers, mobile devices, and browsers
15.8
Incorporate SEO (search engine optimization) and web optimization techniques
  1. Arizona Software and App Design I
  2. 11.5 Optimizing Web Information
15.9
Integrate user testing and feedback loops to refine interface designs and improve user experience
15.10
Analyze feature limitations and compatibility issues between different browsers and their versions
15.11
Discuss framework and component libraries for CSS (cascading style sheets)and JavaScript
16.1
Identify different data storage types (e.g., RAID, Cloud, SSD, HDD, Flash, tape, etc.) and explain how they relate to designing and developing software applications
16.2
Discuss data backup and recovery, data integrity, and data privacy (e.g., blockchain, edge computing, and quantum storage
16.3
Read/write data from/to a sequential file or database [i.e., handling sequential files, database operations, CRUD (create, read, update, delete) operations]
16.4
Differentiate among cloud storage, software storage, defined storage, file storage, block storage, object storage, memory, and cache storage in software applications
16.5
Demonstrate creating, reading, updating, and dropping a database
16.6
Employ the proper use of database applications that work with different languages (e.g., MongoDB MQL, Microsoft Access SQL, and Oracle Databases SQL)
  1. Arizona Software and App Design I
  2. 12.6 Basic Querying in SQL
  3. 12.7 Filtering Queries in SQL
16.7
Use, update, and manage data storage (i.e., local, cloud, NAS, RAID, SANs, etc.)
  1. Arizona Software and App Design I
  2. 10.2 Storing Data with Local Storage
  3. 10.7 Storing Data with Firebase
16.8
Review relational and NoSQL databases, covering normalization and schema design
16.9
Discuss data migration and synchronization to simulate real-world data management scenarios (i.e., banking transactions)
17.1
Identify the differences between primitive and non-primitive data structures
  1. Arizona Software and App Design II
  2. 2.2 Variables and Data Types
  3. 8.1 What are Data Structures?
17.2
Differentiate between an object instance and a class
  1. Arizona Software and App Design II
  2. 7.1 Writing Classes
17.3
Discuss the roles of inheritance, composition, and class relationships
  1. Arizona Software and App Design II
  2. 10.1 Inheritance
  3. 10.2 Writing Constructors for Subclasses
  4. 10.3 Overriding Methods
  5. 10.4 super Keyword
  6. 10.8 Object Superclass
17.4
Instantiate objects from existing classes
  1. Arizona Software and App Design II
  2. 3.2 Creating and Storing Objects (Instantiation)
17.5
Interpret the state of an object by invoking accessor methods (i.e., getter)
  1. Arizona Software and App Design II
  2. 7.4 Accessor Methods
17.6
Change the state of an object by invoking a modifier method (i.e., setter)
  1. Arizona Software and App Design I
  2. 10.4 JavaScript Objects
  3. Arizona Software and App Design II
  4. 7.5 Mutator Methods
17.7
Determine the requirements for constructing new objects by reading the documentation
  1. Arizona Software and App Design II
  2. 3.2 Creating and Storing Objects (Instantiation)
17.8
Create a user-defined class and a subclass of an existing class
  1. Arizona Software and App Design II
  2. 7.1 Writing Classes
17.9
Identify the use of an abstract class as opposed to an interface
  1. Arizona Software and App Design II
  2. 10.5 Abstract Classes and Interfaces
17.10
Explore advanced programming concepts (i.e., splitting files into different source files, principles of Inheritance, encapsulation, and polymorphism)
  1. Arizona Software and App Design II
  2. 10.1 Inheritance
  3. 10.3 Overriding Methods
  4. 10.7 Polymorphism
  5. 10.8 Object Superclass
17.11
Investigate data representations in project creation (e.g., JSON and XML)
  1. Arizona Software and App Design I
  2. 10.4 JavaScript Objects
17.12
Explain the implementation and use of arguments, pointers, and references in programming
17.13
Demonstrate the principles of SOLID design and design patterns in object-oriented programming (OOPs)
18.1
Investigate debugging techniques, error propagation and handling, and graceful degradation
18.2
Research causes for compilation and logical errors
  1. Arizona Software and App Design II
  2. 5.7 Error Handling
18.3
Identify and resolve runtime errors
  1. Arizona Software and App Design II
  2. 5.7 Error Handling
18.4
Describe error handling strategies based on severity
  1. Arizona Software and App Design II
  2. 5.7 Error Handling
18.5
Identify and resolve unexpected return values
  1. Arizona Software and App Design II
  2. 5.7 Error Handling
18.6
Investigate standard exception classes and their uses
  1. Arizona Software and App Design II
  2. 5.7 Error Handling
18.7
Develop custom exception classes (i.e., throw)
  1. Arizona Software and App Design II
  2. 5.7 Error Handling
19.1
Discuss software development methods (i.e., waterfall, agile, etc.) and ownership rights
19.2
Explore the basics of app markets, including popular platforms (i.e., Google Play Store and Apple App Store) and identify components of a successful app
19.3
Identify components of a successful app
19.4
Discuss the cost in developing and launching an app
19.5
Research monetization strategies for apps (i.e., ads, in-app purchases, and premium features)
19.6
Investigate basic project management concepts in the software development process
19.7
Evaluate the importance of customer feedback in the software development cycle
19.8
Research trends in the technology sector (i.e., blockchain, quantum computing, edge computing mobile apps, cloud computing, AI, etc.)