## Standards

Standard Description
CS.HS.1.1a Identify and create different types of algorithms (sort, search, etc.). Lessons
CS.HS.1.1b Predict the outcome of different types of algorithms. Lessons
CS.HS.1.1c Create or adapt algorithms to solve problems for multiple purposes (e.g., personal interests, client needs). Lessons
CS.HS.1.1d Use an algorithm that involves mathematical operations and functions to solve problems. Lessons
CS.HS.1.1e Use an iterative approach to utilizing and/or developing an algorithm. Lessons
CS.HS.1.1f Recognize problems that cannot be solved computationally. Lessons
CS.HS.1.1g Identify and describe algorithms that exist within their personal lives. Lessons
CS.HS.1.2a Identify and compare different algorithms that can be used to solve the same problem. Lessons
CS.HS.1.2b Illustrate the flow of execution of an iterative algorithm (e.g., recursion). Lessons
CS.HS.1.2c Explain the value of heuristic algorithms to model ways to solve problems. Lessons
CS.HS.1.2d Adapt algorithms used in one problem to solve a related or different problem. Lessons
CS.HS.1.2e Use multiple methods to represent an algorithm (e.g., diagram, programming language, unplugged). Lessons
CS.HS.1.3a Describe pros and cons of the performance of algorithms for the same task. Lessons
CS.HS.1.3b Use an iterative approach to developing an algorithm. Lessons
CS.HS.1.3c Test and troubleshoot so that algorithms produce reasonable results. Lessons
CS.HS.1.4a Demonstrate how the process of decomposition is iterative and used to solve problems. Lessons
CS.HS.1.4b Formulate possible solutions based on the decomposition of a problem. Lessons
CS.HS.1.5a Describe how abstraction is central to computational thinking. Lessons
CS.HS.1.5b Identify and prioritize the most relevant parts of a problem while filtering out extraneous details. Lessons
CS.HS.1.5c Demonstrate different ways to represent key problem components. Lessons
CS.HS.1.6a Identify different types of data that are exchanged and produced by computers (e.g., protocols). Lessons
CS.HS.1.6b Represent data using multiple encoding schemes (e.g., RGB, Hex, HSB, ASCII, Unicode). Lessons
CS.HS.1.6c Evaluate the trade-offs for how data elements are organized and where data are stored (e.g., PNG/GIF, structured/unstructured). Lessons
CS.HS.1.6d Compare and contrast various data structures/techniques for storing and processing data (e.g., arrays, lists, tables). Lessons
CS.HS.1.7a Analyze computer programs to identify patterns within the program. Lessons
CS.HS.1.7b Provide multiple versions of data visualization in order to deepen problem analysis. Lessons
CS.HS.1.7c Interpret and analyze data to make informed decisions. Lessons
CS.HS.1.8a Analyze computer output in different forms (e.g., plain text, CSV, graphs, images). Lessons
CS.HS.1.8b Design visualizations using the appropriate tool(s) with the end user in mind. Lessons
CS.HS.1.8c Provide multiple versions of data visualization in order to deepen problem analysis. Lessons
CS.HS.2.1a Describe key protocols and underlying processes of internet-based services, (e.g., https) and discuss impact of technology change on communication protocols. Lessons
CS.HS.2.1b Illustrate and describe the basic components and various network types and topologies (e.g., personal, local, metropolitan, and wide). Lessons
CS.HS.2.1c Explain the difference between decimal, hexadecimal, octal and binary number formats and how they are used in computing environments. Lessons
CS.HS.2.2a Explain the difference between memory and disk storage, internal and external storage, Random Access Memory (RAM), flash, cloud. Lessons
CS.HS.2.2b List and explain the common working parts of a computing device. Lessons
CS.HS.2.2c Explain how to maintain safety when working on PCs, e.g., electromagnetic precautions. Lessons
CS.HS.2.2d Describe how computing devices are engineered for fault tolerance and reliability, and identify potential sources of weakness (e.g., redundant power supplies, RAID, SAN/NAS connections). Lessons
CS.HS.2.3a Identify and differentiate between different kinds of software (e.g., operating systems vs. applications) and their purposes. Lessons
CS.HS.2.3b Explain what an operating system is, and why it is important for a computer or computing device (e.g., Linux, Windows, iOS). Lessons
CS.HS.2.3c Describe how software interacts with hardware to complete tasks. Lessons
CS.HS.2.4a Explain the integration of hardware, software and network communications components to create a networked system. Lessons
CS.HS.2.4b Summarize security approaches using a systems approach perspective Lessons
CS.HS.2.5a Identify client’s problems/needs. Lessons
CS.HS.2.5b Articulate design requirements back to client. Lessons
CS.HS.2.5c Illustrate options for considerations and develop conceptual model. Lessons
CS.HS.2.5d Perform system analysis based on client considerations. Lessons
CS.HS.2.6a Identify different ways that systems might lose data or functionality. Lessons
CS.HS.2.6b Describe elements of an effective backup system. Lessons
CS.HS.2.6c Compare backup systems for computer users, or a network. Lessons
CS.HS.2.6d List the various backup methodologies (e.g., full, differential), and why one would pick one over the other, or use all. Lessons
CS.HS.2.6e Explain the ways an organization would continue to operate in light of a systems failure. Lessons
CS.HS.2.7a Identify examples of threats to systems and data. Lessons
CS.HS.2.7b Describe the process by which intruders gain entry into a production system (e.g., reconnaissance). Lessons
CS.HS.2.7c Describe and compare methods to test/validate how well systems and data are protected. Lessons
CS.HS.2.7d Investigate different career pathways relating to systems security. Lessons
CS.HS.3.1a Analyze and apply a design methodology to identify constraints and requirements of an identified problem. Lessons
CS.HS.3.1b Utilize tools and resources such as pseudocode, flowcharts, wireframes, etc., as part of the design process. Lessons
CS.HS.3.1c Determine and use graphical or text-based languages. Lessons
CS.HS.3.1d Understand and apply core programming concepts. Lessons
CS.HS.3.2a Write code per selected design. Lessons
CS.HS.3.2b Create code comments to communicate to other developers and ensure documentation of code. Lessons
CS.HS.3.2c Use various troubleshooting and debugging techniques to improve code. Lessons
CS.HS.3.2d Create appropriate variables to store and retrieve data. Lessons
CS.HS.3.3a Integrate collaborative strategies to improve programming outputs. Lessons
CS.HS.3.3b Identify and analyze a variety of collaborative tools (e.g., commenting, development repositories) in order to determine the appropriateness for intended use. Lessons
CS.HS.3.3c Identify strategies such as peer reviews to test and refine artifacts in development. Lessons
CS.HS.3.3d Determine when to use standard software tools like APIs, libraries, version control repositories, etc. Lessons
CS.HS.3.4a Understand and apply principles of client-based design. Lessons
CS.HS.3.4b Guide/advise clients on strategies and solutions best suited for their problem (i.e., type of platform). Lessons
CS.HS.3.4c Construct effective methods for gathering feedback from client. Lessons
CS.HS.3.4d Respond to feedback from clients to improve computing solutions. Lessons
CS.HS.3.4e Create and share product support documentation for potential users. Lessons
CS.HS.3.4f Articulate lessons learned as a result of the design and creation process. Lessons
CS.HS.3.5a Investigate and understand privacy, security and protection laws. Lessons
CS.HS.3.5b Articulate the importance of securing personal data information on encrypted storage systems. Lessons
CS.HS.3.5c Identify and analyze current events to ensure the safety, security and wellbeing of all potential clients and end users. Lessons
CS.HS.3.5d Identify influential computing innovations, and identify the beneficial and harmful effects they have had, or could have, on society, economy and culture. Lessons
CS.HS.3.5e Discuss and explain how diversity of design and issues of accessibility impact a wide-range of users. Lessons
CS.HS.3.5f Demonstrate ways to improve the accessibility of computational technologies and artifacts. Lessons
CS.HS.3.6a Describe how software licensing influences program development. Lessons
CS.HS.3.6b Investigate and develop solutions that discourage online software piracy. Lessons
CS.HS.3.6c Explore and integrate security measures such as encryption, authentication and verification strategies to secure developed computer programs. Lessons
CS.HS.3.6d Research and abide by intellectual property laws and patents. Lessons