Please enable JavaScript to use CodeHS

Standards Framework

for Colorado 9-12


Standards in this Framework

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