Standards in this Framework
Standards Mapped
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.3
Explain “visualizing” as a problem-solving technique prior to writing code |
|
1.4
Describe problem-solving and troubleshooting strategies applicable to software development |
|
2.1
Identify common computer threats (e.g., viruses, phishing, suspicious email, social engineering, spoofing, identity theft, and spamming) |
|
2.2
Describe potential vulnerabilities in software (e.g., OWASP’s Top 10) |
|
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) |
|
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) |
|
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 |
|
4.2
Choose the appropriate data type for a given situation |
|
4.3
Identify the correct syntax and usage for constants and variables in a program |
|
4.4
Identify the correct syntax and safe functions for operations on strings, including length, substring, and concatenation |
|
4.5
Explain complications of storing and manipulating data (i.e., the Big-O notation for analyzing storage and efficiency concerns, etc.) |
|
4.6
Research industry relevant programming languages (i.e., Java, JavaScript, Python, etc.) |
|
5.1
Apply basic mathematics to hardware (e.g., bits, bytes, kilobytes, megabytes, gigabytes, and terabytes) |
|
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 |
|
5.3
Identify and correctly use arithmetic operations applying the order of operations (precedence) with respect to programming |
|
5.4
Interpret and construct mathematical formulas |
|
5.5
Identify correct and problematic uses of integers, floating-point numbers, and fixed-point numbers in arithmetic |
|
6.1
Use the correct syntax for decision statements (e.g., if/else, if, and switch case) |
|
6.2
Compare values using relational operators (e.g., =, >, <, >=, <=, and not equal) |
|
6.3
Evaluate Boolean expressions (e.g., AND, OR, NOT, NOR, and XOR) |
|
6.4
Use the correct nesting for decision structures |
|
7.1
Identify various types of iteration structure (e.g., while, for, for-each, and recursion) |
|
7.2
Identify how loops are controlled (variable conditions and exits) |
|
7.3
Use the correct syntax for nested loops |
|
7.4
Compute the values of variables involved with nested loops |
|
8.1
Demonstrate basic uses of arrays including initialization, storage, and retrieval of values |
|
8.2
Distinguish between arrays and hash maps (associative arrays) |
|
8.3
Identify techniques for declaring, initializing, and modifying user-defined data types |
|
8.4
Search and sort data in an array |
|
8.5
Create and use two-dimensional arrays |
|
8.6
Describe the efficiency of different sorting algorithms (e.g., bubble, insertion, and merge) |
|
8.7
Describe the efficiency of linear vs. binary searches [e.g., O(n) and O(log n)] |
|
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) |
|
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) |
|
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 |
|
10.2
Use client collaboration sources/platforms (e.g., GitHub, Google Drive, Dropbox, JSFiddle, and browser developer tools) |
|
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 |
|
12.1
Use a program editor to enter and modify code |
|
12.2
Identify correct input/output statements |
|
12.3
Choose the correct method of assigning input to variables including data sanitization |
|
12.4
Choose the correct method of outputting data with formatting and escaping |
|
12.5
Differentiate between interpreted and compiled code (e.g., steps necessary to run executable code) |
|
12.6
Identify the purpose of a build system (e.g., make, rake, ant, maven, SCons, and grunt) |
|
12.7
Apply industry standards in documentation (e.g., self-documenting code; function-level, program-level, and user-level documentation) |
|
12.8
Name identifiers and formatting code by applying recognized conventions |
|
12.9
Demonstrate refactoring techniques to reduce repetitious code and improve maintainability |
|
12.10.
Demonstrate the use of parameters to pass data into program modules |
|
12.11
Demonstrate the use of return values from modules |
|
13.1
Identify errors in program modules |
|
13.2
Identify boundary cases and generate appropriate test data |
|
13.3
Perform integration testing including tests within a program to protect execution from bad input or other run-time errors |
|
13.4
Categorize, identify, and correct errors in code, including syntax, semantic, logic, and runtime |
|
13.5
Perform different methods of debugging (e.g., hand-trace code and real time debugging tools) |
|
14.1
Use standard library functions |
|
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) |
|
15.2
Create a new repository |
|
15.3
Add, push, and pull source code from repository |
|
15.4
Explain branching and its uses |
|
15.5
Restore previous versions of code from the repository |
|
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 |
|
18.2
Differentiate among inheritance, composition, and class relationships |
|
18.3
Instantiate objects from existing classes |
|
18.4
Read the state of an object by invoking accessor methods |
|
18.5
Change the state of an object by invoking a modifier method |
|
18.6
Determine the requirements for constructing new objects by reading the documentation |
|
18.7
Create a user-defined class |
|
18.8
Create a subclass of an existing class |
|
18.9
Identify the use of an abstract class as opposed to an interface |
|
18.10.
Explain the object-oriented concepts of polymorphism, inheritance, and encapsulation |
|
19.1
Identify runtime errors |
|
19.2
Describe error handling strategies |
|
19.3
Handle unexpected return values |
|
19.4
Handle (catch) runtime errors and take appropriate action |
|
19.5
Throw standard exception classes |
|
19.6
Develop and throw custom exception classes |
|