Standards in this Framework
Standards Mapped
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.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 | 
 | 
| 3.2 Select the appropriate data type for a given situation | 
 | 
| 3.4 Identify the correct syntax and usage for constants and variables (e.g., variable scope) in a program | 
 | 
| 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 | 
 | 
| 4.3 Identify and correctly use arithmetic operations applying the order of operations (precedence) for programming | 
 | 
| 4.4 Interpret and construct mathematical formulas used in code [i.e., y=n*x+b2-n*(a+b)] | 
 | 
| 4.5 Identify correct and problematic uses of integers, floating-point numbers, and fixed-point numbers in arithmetic | 
 | 
| 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) | 
 | 
| 5.2 Evaluate Boolean expressions (e.g., AND, OR, NOT, NOR, and XOR) | 
 | 
| 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) | 
 | 
| 5.5 Create and utilize functions and methods | 
 | 
| 6.1 Demonstrate basic uses of arrays including initialization, storage, retrieval of values, and how to use them as arguments | 
 | 
| 6.2 Distinguish between arrays and hash maps (associative arrays) | 
 | 
| 6.3 Identify techniques for declaring, initializing, and modifying user-defined data types | 
 | 
| 6.4 Search and sort data in an array | 
 | 
| 6.5 Diagram, create, and use two-dimensional arrays | 
 | 
| 6.6 Describe the efficiency of different sorting algorithms (e.g., bubble, insertion, and merge) | 
 | 
| 6.7 Describe the efficiency of linear vs. binary searches [e.g., O(n) and O(log n)] | 
 | 
| 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) | 
 | 
| 7.2 Explain how loops are controlled (variable conditions and exits) | 
 | 
| 7.3 Employ the correct syntax for nested loops | 
 | 
| 7.4 Compute the values of variables involved with nested loops (i.e., variable changes throughout a loop) | 
 | 
| 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) | 
 | 
| 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) | 
 | 
| 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) | 
 | 
| 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 | 
 | 
| 11.3 Identify correct input/output statements | 
 | 
| 11.4 Choose the correct method of assigning input to variables including data sanitization (i.e., input text to numbers) | 
 | 
| 11.5 Determine the correct method of outputting data with formatting and escaping (e.g., ANSI escape code) | 
 | 
| 11.6 Differentiate between interpreted and compiled code and run executable code | 
 | 
| 11.7 Identify the purpose of a build system (e.g., make, rake, ant, maven, SCons, and grunt) | 
 | 
| 11.8 Apply industry standards to program documentation (e.g., self-documenting code; function-level, program-level, and user-level documentation) | 
 | 
| 11.9 Name identifiers and formatting code by applying recognized conventions (e.g., camel casing) | 
 | 
| 11.10 Perform refactoring techniques to reduce repetitious code and improve maintainability | 
 | 
| 11.11 Use parameters to pass data into program modules and return values from modules | 
 | 
| 11.12 Discuss the use of random number generators, including concepts of true randomness and seeding |  | 
| 12.1 Explain errors in program modules | 
 | 
| 12.2 Identify boundary cases and generate appropriate test data | 
 | 
| 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 | 
 | 
| 12.5 Practice different methods of debugging (e.g., hand-trace code and real-time debugging tools) | 
 | 
| 13.1 Integrate standard library functions | 
 | 
| 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) | 
 | 
| 14.2 Identify the purpose and types of version control systems (e.g., local, centralized, and distributed) | 
 | 
| 14.3 Create new repositories and perform basic operations (e.g., adding, pushing, and pulling source code from repositories) | 
 | 
| 14.4 Explain version control branching and its uses | 
 | 
| 14.5 Restore previous versions of code from the repository | 
 | 
| 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.) | 
 | 
| 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 | 
 | 
| 17.2 Differentiate between an object instance and a class | 
 | 
| 17.3 Discuss the roles of inheritance, composition, and class relationships | 
 | 
| 17.4 Instantiate objects from existing classes | 
 | 
| 17.5 Interpret the state of an object by invoking accessor methods (i.e., getter) | 
 | 
| 17.6 Change the state of an object by invoking a modifier method (i.e., setter) | 
 | 
| 17.7 Determine the requirements for constructing new objects by reading the documentation | 
 | 
| 17.8 Create a user-defined class and a subclass of an existing class | 
 | 
| 17.9 Identify the use of an abstract class as opposed to an interface | 
 | 
| 17.10 Explore advanced programming concepts (i.e., splitting files into different source files, principles of Inheritance, encapsulation, and polymorphism) | 
 | 
| 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 | 
 | 
| 18.3 Identify and resolve runtime errors | 
 | 
| 18.4 Describe error handling strategies based on severity | 
 | 
| 18.5 Identify and resolve unexpected return values | 
 | 
| 18.6 Investigate standard exception classes and their uses | 
 | 
| 18.7 Develop custom exception classes (i.e., throw) | 
 | 
| 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.) |  |