Please enable JavaScript to use CodeHS

Standards Mapping

for Arizona Software and App Design 2024

138

Standards in this Framework

62

Standards Mapped

44%

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. 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.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.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.5
Describe methods for sanitizing user input to prevent issues (e.g., buffer overflows and SQL injection)
1.6
Analyze the CIA (confidentiality, integrity, and availability) triad
1.7
Explain how software defects relate to software security (e.g., buffer overflows and cross-site scripting)
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. 2.2 Variables and Data Types
  2. 2.6 Casting and Ranges of Variables
3.2
Select the appropriate data type for a given situation
  1. 2.2 Variables and Data Types
  2. 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. 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
3.6
Explain complications of storing and manipulating data (i.e., the Big-O notation used to analyze storage and efficiency concerns, etc.)
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. 5.1 Hardware
4.3
Identify and correctly use arithmetic operations applying the order of operations (precedence) for programming
  1. 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. 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. 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. 4.1 Boolean Expressions and if Statements
5.2
Evaluate Boolean expressions (e.g., AND, OR, NOT, NOR, and XOR)
  1. 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. 4.2 if Statements and Control Flow
  2. 4.3 if-else Statements
  3. 4.4 else if Statements
5.5
Create and utilize functions and methods
  1. 7.4 Accessor Methods
  2. 7.5 Mutator Methods
  3. 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. 8.1 What are Data Structures?
  2. 8.2 Introduction to Arrays
  3. 8.3 Using Arrays
6.2
Distinguish between arrays and hash maps (associative arrays)
  1. 8.1 What are Data Structures?
  2. 8.2 Introduction to Arrays
  3. 8.11 HashMaps
6.3
Identify techniques for declaring, initializing, and modifying user-defined data types
  1. 7.1 Writing Classes
  2. 7.2 Constructors
  3. 7.5 Mutator Methods
6.4
Search and sort data in an array
  1. 9.2 Linear Search
  2. 9.3 Binary Search
  3. 9.4 Selection Sort
  4. 9.5 Insertion Sort
6.5
Diagram, create, and use two-dimensional arrays
  1. 8.9 2D Arrays
  2. 8.10 Traversing 2D Arrays
6.6
Describe the efficiency of different sorting algorithms (e.g., bubble, insertion, and merge)
  1. 9.5 Insertion Sort
  2. 9.7 Mergesort
6.7
Describe the efficiency of linear vs. binary searches [e.g., O(n) and O(log n)]
  1. 9.2 Linear Search
  2. 9.3 Binary Search
  3. 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. 6.1 Iteration
  2. 6.2 For Loops
7.2
Explain how loops are controlled (variable conditions and exits)
  1. 6.2 For Loops
7.3
Employ the correct syntax for nested loops
  1. 6.4 Nested Iteration
7.4
Compute the values of variables involved with nested loops (i.e., variable changes throughout a loop)
  1. 6.4 Nested Iteration
7.5
Diagram iterative structures and use in writing programs
8.1
Explain the benefits of cloud-based computing
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. 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]
8.4
Identify performance issues (e.g., bandwidth, internet connection types, pages loading slowly, resolution, and size graphics)
  1. 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. 5.13 Version Control
9.3
Analyze remote computing tools and services and their application [e.g., SSH (secure shell)]
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. 2.1 Why Programming? Why Java?
  2. 3.1 Objects: Instances of Classes
  3. 8.2 Introduction to Arrays
11.3
Identify correct input/output statements
  1. 2.1 Why Programming? Why Java?
  2. 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. 2.5 User Input
11.5
Determine the correct method of outputting data with formatting and escaping (e.g., ANSI escape code)
  1. 3.7 String Objects
11.6
Differentiate between interpreted and compiled code and run executable code
  1. 5.12 Executing Code
11.7
Identify the purpose of a build system (e.g., make, rake, ant, maven, SCons, and grunt)
  1. 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. 7.3 Documentation with Comments
11.9
Name identifiers and formatting code by applying recognized conventions (e.g., camel casing)
  1. 2.2 Variables and Data Types
11.10
Perform refactoring techniques to reduce repetitious code and improve maintainability
  1. 7.6 Writing Methods
11.11
Use parameters to pass data into program modules and return values from modules
  1. 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. 5.7 Error Handling
12.2
Identify boundary cases and generate appropriate test data
  1. 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. 5.7 Error Handling
12.5
Practice different methods of debugging (e.g., hand-trace code and real-time debugging tools)
13.1
Integrate standard library functions
  1. 3.9 Wrapper Classes: Integers and Doubles
  2. 3.10 Using the Math Class
13.2
Design code that incorporates third-party libraries (e.g., web-based and package managers)
13.3
Explain and interact with an Application Program Interface (API)
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. 5.13 Version Control
14.2
Identify the purpose and types of version control systems (e.g., local, centralized, and distributed)
  1. 5.13 Version Control
14.3
Create new repositories and perform basic operations (e.g., adding, pushing, and pulling source code from repositories)
  1. 5.13 Version Control
14.4
Explain version control branching and its uses
  1. 5.13 Version Control
14.5
Restore previous versions of code from the repository
  1. 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. 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)
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)
15.4
Explain the concept of responsive design and applications (i.e., loading times)
15.5
Employ graphics methods to create images at specified locations
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)
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
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)
16.7
Use, update, and manage data storage (i.e., local, cloud, NAS, RAID, SANs, etc.)
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. 2.2 Variables and Data Types
  2. 8.1 What are Data Structures?
17.2
Differentiate between an object instance and a class
  1. 7.1 Writing Classes
17.3
Discuss the roles of inheritance, composition, and class relationships
  1. 10.1 Inheritance
  2. 10.2 Writing Constructors for Subclasses
  3. 10.3 Overriding Methods
  4. 10.4 super Keyword
  5. 10.8 Object Superclass
17.4
Instantiate objects from existing classes
  1. 3.2 Creating and Storing Objects (Instantiation)
17.5
Interpret the state of an object by invoking accessor methods (i.e., getter)
  1. 7.4 Accessor Methods
17.6
Change the state of an object by invoking a modifier method (i.e., setter)
  1. 7.5 Mutator Methods
17.7
Determine the requirements for constructing new objects by reading the documentation
  1. 3.2 Creating and Storing Objects (Instantiation)
17.8
Create a user-defined class and a subclass of an existing class
  1. 7.1 Writing Classes
17.9
Identify the use of an abstract class as opposed to an interface
  1. 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. 10.1 Inheritance
  2. 10.3 Overriding Methods
  3. 10.7 Polymorphism
  4. 10.8 Object Superclass
17.11
Investigate data representations in project creation (e.g., JSON and XML)
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. 5.7 Error Handling
18.3
Identify and resolve runtime errors
  1. 5.7 Error Handling
18.4
Describe error handling strategies based on severity
  1. 5.7 Error Handling
18.5
Identify and resolve unexpected return values
  1. 5.7 Error Handling
18.6
Investigate standard exception classes and their uses
  1. 5.7 Error Handling
18.7
Develop custom exception classes (i.e., throw)
  1. 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.)