for Arizona CTE Software and App Development — Arizona Software and App Design I
Total Standards: 101Mapped: 101Completion: 100%
1.1
Establish objectives and outcomes for a task
Arizona Software and App Design I
5.3 Project Overview
5.4 Planning Your Site
1.2
Explain the process of decomposing a large programming problem into smaller, more manageable procedures
Arizona Software and App Design II
11.6 Top Down Design and Decomposition in Karel
1.3
Explain “visualizing” as a problem-solving technique prior to writing code
Arizona Software and App Design I
9.2 Layout and Web Design Theory
1.4
Describe problem-solving and troubleshooting strategies applicable to software development
Arizona Software and App Design II
5.7 Error Handling
2.1
Identify common computer threats (e.g., viruses, phishing, suspicious email, social engineering, spoofing, identity theft, and spamming)
Arizona Software and App Design I
1.2 Impact of Cybersecurity
Arizona Software and App Design II
5.8 Application Security
2.2
Describe potential vulnerabilities in software (e.g., OWASP’s Top 10)
Arizona Software and App Design I
12.1 Inside Web Apps
Arizona Software and App Design II
5.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)
Arizona Software and App Design I
1.7 Privacy & Security
2.4
Explain best practices to maintain integrity and security in software development (e.g., encryption, hashing, and digital signatures)
Arizona Software and App Design I
1.3 The CIA Triad
11.7 Web Security
2.5
Describe methods for sanitizing user input to prevent issues (e.g., buffer overflows and SQL injection)
Arizona Software and App Design I
11.7 Web Security
12.11 Types of SQLi and Prevention
Arizona Software and App Design II
5.8 Application Security
2.6
Explain the CIA (confidentiality, integrity, and availability) triad
Arizona Software and App Design I
1.3 The CIA Triad
2.7
Explain how software defects relate to software security (e.g., buffer overflows and cross-site scripting)
Arizona Software and App Design I
11.7 Web Security
3.1
Explore intellectual property rights including software licensing and software duplication [e.g., Digital Millennium Copyright Act (DMCA), software licensing, and software duplication]
Arizona Software and App Design I
2.6 Copyright
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)
Arizona Software and App Design II
5.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)
Arizona Software and App Design I
1.8 Research: Privacy Acts and Regulations
4.1
Declare numeric, Boolean, character, string variables, and float and double
Arizona Software and App Design I
6.2 Variables
6.5 Booleans
Arizona Software and App Design II
2.2 Variables and Data Types
4.2
Choose the appropriate data type for a given situation
Arizona Software and App Design I
7.7 Challenge: Make a Keyboard
Arizona Software and App Design II
2.2 Variables and Data Types
4.3
Identify the correct syntax and usage for constants and variables in a program
Arizona Software and App Design I
6.2 Variables
6.5 Booleans
7.7 Challenge: Make a Keyboard
Arizona Software and App Design II
2.2 Variables and Data Types
4.4
Identify the correct syntax and safe functions for operations on strings, including length, substring, and concatenation
Arizona Software and App Design I
6.2 Variables
Arizona Software and App Design II
3.7 String Objects
3.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.)
Arizona Software and App Design I
10.1 Collecting and Storing Data
Arizona Software and App Design II
9.1 What is an Algorithm?
4.6
Research industry relevant programming languages (i.e., Java, JavaScript, Python, etc.)
Arizona Software and App Design I
2.1 Introduction to HTML
6.1 Hello World
Arizona Software and App Design II
2.1 Why Programming? Why Java?
5.1
Apply basic mathematics to hardware (e.g., bits, bytes, kilobytes, megabytes, gigabytes, and terabytes)
Arizona Software and App Design II
5.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
Arizona Software and App Design II
8.12 Binary
5.3
Identify and correctly use arithmetic operations applying the order of operations (precedence) with respect to programming
Arizona Software and App Design I
6.4 Basic Math in JavaScript
Arizona Software and App Design II
2.3 Expressions and Assignment Statements
5.4
Interpret and construct mathematical formulas
Arizona Software and App Design I
6.4 Basic Math in JavaScript
Arizona Software and App Design II
2.3 Expressions and Assignment Statements
5.5
Identify correct and problematic uses of integers, floating-point numbers, and fixed-point numbers in arithmetic
Arizona Software and App Design II
2.3 Expressions and Assignment Statements
6.1
Use the correct syntax for decision statements (e.g., if/else, if, and switch case)
Arizona Software and App Design I
6.8 If Statements
7.7 Challenge: Make a Keyboard
Arizona Software and App Design II
4.1 Boolean Expressions and if Statements
4.2 if Statements and Control Flow
4.3 if-else Statements
4.4 else if Statements
6.2
Compare values using relational operators (e.g., =, >, <, >=, <=, and not equal)
Arizona Software and App Design I
6.7 Comparison Operators
7.8 Keyboard Interactions
7.9 JavaScript Animations
Arizona Software and App Design II
4.1 Boolean Expressions and if Statements
6.3
Evaluate Boolean expressions (e.g., AND, OR, NOT, NOR, and XOR)
Arizona Software and App Design I
6.5 Booleans
6.6 Logical Operators
Arizona Software and App Design II
4.1 Boolean Expressions and if Statements
6.4
Use the correct nesting for decision structures
Arizona Software and App Design I
6.8 If Statements
Arizona Software and App Design II
4.5 Compound Boolean Expressions
7.1
Identify various types of iteration structure (e.g., while, for, for-each, and recursion)
Arizona Software and App Design I
6.9 For Loops in JavaScript
6.16 Array Length and Looping Through Arrays
10.10 For/In Loops
Arizona Software and App Design II
6.1 Iteration
7.2
Identify how loops are controlled (variable conditions and exits)
Arizona Software and App Design I
6.9 For Loops in JavaScript
10.10 For/In Loops
Arizona Software and App Design II
6.2 For Loops
7.3
Use the correct syntax for nested loops
Arizona Software and App Design I
6.9 For Loops in JavaScript
6.16 Array Length and Looping Through Arrays
10.10 For/In Loops
Arizona Software and App Design II
6.4 Nested Iteration
7.4
Compute the values of variables involved with nested loops
Arizona Software and App Design I
6.12 Functions and Return Values 1
6.16 Array Length and Looping Through Arrays
10.10 For/In Loops
Arizona Software and App Design II
6.4 Nested Iteration
8.1
Demonstrate basic uses of arrays including initialization, storage, and retrieval of values
Arizona Software and App Design I
6.13 Intro to Lists/Arrays
6.14 Indexing Into an Array
6.15 Adding/Removing From an Array
6.16 Array Length and Looping Through Arrays
10.2 Storing Data with Local Storage
10.3 Storing Data Structures with Local Storage
10.7 Storing Data with Firebase
Arizona Software and App Design II
8.3 Using Arrays
8.2
Distinguish between arrays and hash maps (associative arrays)
Arizona Software and App Design II
8.11 HashMaps
8.3
Identify techniques for declaring, initializing, and modifying user-defined data types
Arizona Software and App Design I
10.5 Using Input Fields
10.6 Challenge: Create a Survey
Arizona Software and App Design II
7.1 Writing Classes
7.2 Constructors
7.5 Mutator Methods
8.4
Search and sort data in an array
Arizona Software and App Design I
6.14 Indexing Into an Array
6.15 Adding/Removing From an Array
6.16 Array Length and Looping Through Arrays
10.10 For/In Loops
Arizona Software and App Design II
9.2 Linear Search
9.3 Binary Search
9.4 Selection Sort
9.5 Insertion Sort
9.7 Mergesort
8.5
Create and use two-dimensional arrays
Arizona Software and App Design II
8.10 Traversing 2D Arrays
8.6
Describe the efficiency of different sorting algorithms (e.g., bubble, insertion, and merge)
Arizona Software and App Design II
9.5 Insertion Sort
9.7 Mergesort
8.7
Describe the efficiency of linear vs. binary searches [e.g., O(n) and O(log n)]
Arizona Software and App Design II
9.2 Linear Search
9.3 Binary Search
9.1
Explain cloud-based computing and content delivery networks
Arizona Software and App Design I
11.2 Hosting Your Website
9.2
Identify the components and functions of the internet (e.g., HTTP, HTTPS, FTP, IP addresses, and IMAP)
Arizona Software and App Design II
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]
Arizona Software and App Design I
10.1 Collecting and Storing Data
10.2 Storing Data with Local Storage
10.3 Storing Data Structures with Local Storage
10.7 Storing Data with Firebase
10.8 Traversing Data with Firebase
9.4
Identify performance issues (e.g., bandwidth, internet connection types, pages loading slowly, resolution, and size graphics)
Arizona Software and App Design II
1.2 Internet Hardware
9.5
Differentiate among shared hosting, dedicated server, and virtual private server (VPS)
Arizona Software and App Design I
12.4 Clients and Servers
9.6
Identify Internet of Things (IOT) and common communication interfaces (e.g., Bluetooth, NFC, Wi-Fi, and LTE)
Arizona Software and App Design I
1.1 What is Cybersecurity?
10.1
Identify key components and functions of internet and web specialty browsers
Arizona Software and App Design II
5.9 Browser Configuration
10.2
Use client collaboration sources/platforms (e.g., GitHub, Google Drive, Dropbox, JSFiddle, and browser developer tools)
Arizona Software and App Design I
12.2 Developer Tools
Arizona Software and App Design II
5.13 Version Control
10.3
Analyze remote computing tools and services and their application
Arizona Software and App Design I
12.2 Developer Tools
11.1
Implement the steps in the System Development Life Cycle (SDLC) (e.g., planning, analysis, design, development, testing, implementation, and maintenance)
Arizona Software and App Design I
13.1 Providing Feedback
13.2 Presenting Your Innovation
11.2
Develop program requirements/specifications and a testing plan (e.g., user stories, automated testing, and test procedures)
Arizona Software and App Design I
13.1 Providing Feedback
11.3
Apply pseudocode or graphical representations to plan the structure of a program or module (e.g., flowcharting, whiteboarding, and UML)
Arizona Software and App Design I
5.4 Planning Your Site
11.4
Create and implement basic algorithms
Arizona Software and App Design I
9.3 Interactive Resume Development
Arizona Software and App Design II
9.1 What is an Algorithm?
9.2 Linear Search
12.1
Use a program editor to enter and modify code
Arizona Software and App Design I
7.7 Challenge: Make a Keyboard
9.3 Interactive Resume Development
10.9 Challenge: Collecting User Clicks
Arizona Software and App Design II
2.1 Why Programming? Why Java?
2.2 Variables and Data Types
2.3 Expressions and Assignment Statements
12.2
Identify correct input/output statements
Arizona Software and App Design I
7.8 Keyboard Interactions
10.9 Challenge: Collecting User Clicks
Arizona Software and App Design II
2.1 Why Programming? Why Java?
2.5 User Input
12.3
Choose the correct method of assigning input to variables including data sanitization
Arizona Software and App Design I
7.8 Keyboard Interactions
10.9 Challenge: Collecting User Clicks
Arizona Software and App Design II
2.5 User Input
12.4
Choose the correct method of outputting data with formatting and escaping
Arizona Software and App Design II
2.1 Why Programming? Why Java?
12.5
Differentiate between interpreted and compiled code (e.g., steps necessary to run executable code)
Arizona Software and App Design II
5.12 Executing Code
12.6
Identify the purpose of a build system (e.g., make, rake, ant, maven, SCons, and grunt)
Arizona Software and App Design II
5.12 Executing Code
12.7
Apply industry standards in documentation (e.g., self-documenting code; function-level, program-level, and user-level documentation)
Arizona Software and App Design II
7.3 Documentation with Comments
12.8
Name identifiers and formatting code by applying recognized conventions
Arizona Software and App Design II
2.2 Variables and Data Types
12.9
Demonstrate refactoring techniques to reduce repetitious code and improve maintainability
Arizona Software and App Design II
11.5 Methods in Karel
12.10.
Demonstrate the use of parameters to pass data into program modules
Arizona Software and App Design II
3.5 Calling a Void Method with Parameters
12.11
Demonstrate the use of return values from modules
Arizona Software and App Design II
3.6 Calling a Non-void Method
13.1
Identify errors in program modules
Arizona Software and App Design I
7.1 The Script Tag
Arizona Software and App Design II
5.7 Error Handling
13.2
Identify boundary cases and generate appropriate test data
Arizona Software and App Design II
5.7 Error Handling
13.3
Perform integration testing including tests within a program to protect execution from bad input or other run-time errors
Arizona Software and App Design II
5.7 Error Handling
8.3 Using Arrays
13.4
Categorize, identify, and correct errors in code, including syntax, semantic, logic, and runtime
Arizona Software and App Design II
5.7 Error Handling
13.5
Perform different methods of debugging (e.g., hand-trace code and real time debugging tools)
Arizona Software and App Design I
7.1 The Script Tag
Arizona Software and App Design II
5.7 Error Handling
7.3 Documentation with Comments
14.1
Use standard library functions
Arizona Software and App Design I
7.5 Functions in HTML
8.4 Callback Functions and Synchronization
Arizona Software and App Design II
3.9 Wrapper Classes: Integers and Doubles
3.10 Using the Math Class
14.2
Find and use third party libraries (e.g., web-based and package managers)
Arizona Software and App Design I
8.1 Introduction to jQuery
8.2 Iterating with jQuery
8.3 Animations with jQuery
14.3
Explain and interact with an Application Program Interface (API)
Arizona Software and App Design I
10.11 Using APIs
15.1
Identify the purpose of version control systems (e.g., Git and Mercurial)
Arizona Software and App Design II
5.13 Version Control
15.2
Create a new repository
Arizona Software and App Design II
5.13 Version Control
15.3
Add, push, and pull source code from repository
Arizona Software and App Design II
5.13 Version Control
15.4
Explain branching and its uses
Arizona Software and App Design II
5.13 Version Control
15.5
Restore previous versions of code from the repository
Arizona Software and App Design II
5.13 Version Control
16.1
Apply W3C standards and style conventions
Arizona Software and App Design I
9.2 Layout and Web Design Theory
16.2
Construct web pages and applications that are compliant with ADA and sections 504 and 508 standards
Arizona Software and App Design I
11.6 Web Accessibility
16.3
Explain the concept of responsive design and applications
Arizona Software and App Design I
4.15 CSS Frameworks
16.4
Employ graphics methods to create images at specified locations
Arizona Software and App Design I
2.5 Images
7.10 Positioning and Animations
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)
Arizona Software and App Design I
10.5 Using Input Fields
10.6 Challenge: Create a Survey
17.1
Input/output data from a sequential file or database
Arizona Software and App Design I
10.2 Storing Data with Local Storage
10.3 Storing Data Structures with Local Storage
10.7 Storing Data with Firebase
10.8 Traversing Data with Firebase
17.2
Demonstrate creating, reading, updating, and dropping a database
Arizona Software and App Design I
10.2 Storing Data with Local Storage
10.3 Storing Data Structures with Local Storage
10.4 JavaScript Objects
10.7 Storing Data with Firebase
10.8 Traversing Data with Firebase
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)
Arizona Software and App Design I
12.8 Databases
18.1
Make a distinction between an object and a class
Arizona Software and App Design I
10.4 JavaScript Objects
Arizona Software and App Design II
3.1 Objects: Instances of Classes
18.2
Differentiate among inheritance, composition, and class relationships
Arizona Software and App Design II
10.1 Inheritance
18.3
Instantiate objects from existing classes
Arizona Software and App Design II
3.2 Creating and Storing Objects (Instantiation)
18.4
Read the state of an object by invoking accessor methods
Arizona Software and App Design I
10.4 JavaScript Objects
Arizona Software and App Design II
3.6 Calling a Non-void Method
7.4 Accessor Methods
18.5
Change the state of an object by invoking a modifier method
Arizona Software and App Design I
10.4 JavaScript Objects
Arizona Software and App Design II
7.5 Mutator Methods
18.6
Determine the requirements for constructing new objects by reading the documentation
Arizona Software and App Design II
3.2 Creating and Storing Objects (Instantiation)
18.7
Create a user-defined class
Arizona Software and App Design II
7.2 Constructors
18.8
Create a subclass of an existing class
Arizona Software and App Design II
10.2 Writing Constructors for Subclasses
18.9
Identify the use of an abstract class as opposed to an interface
Arizona Software and App Design II
10.5 Abstract Classes and Interfaces
18.10.
Explain the object-oriented concepts of polymorphism, inheritance, and encapsulation
Arizona Software and App Design II
10.1 Inheritance
19.1
Identify runtime errors
Arizona Software and App Design II
5.7 Error Handling
19.2
Describe error handling strategies
Arizona Software and App Design II
5.7 Error Handling
19.3
Handle unexpected return values
Arizona Software and App Design II
5.7 Error Handling
19.4
Handle (catch) runtime errors and take appropriate action