Please enable JavaScript to use CodeHS

CSTA Standards Framework

236 Standards in this Framework


Standard Description
1A-AP-08 Model daily processes by creating and following algorithms (sets of step-by-step instructions) to complete tasks.
1A-AP-09 Model the way programs store and manipulate data by using numbers or other symbols to represent information.
1A-AP-10 Develop programs with sequences and simple loops, to express ideas or address a problem.
1A-AP-11 Decompose (break down) the steps needed to solve a problem into a precise sequence of instructions.
1A-AP-12 Develop plans that describe a program’s sequence of events, goals, and expected outcomes.
1A-AP-13 Give attribution when using the ideas and creations of others while developing programs.
1A-AP-14 Debug (identify and fix) errors in an algorithm or program that includes sequences and simple loops.
1A-AP-15 Using correct terminology, describe steps taken and choices made during the iterative process of program development.
1A-CS-01 Select and operate appropriate software to perform a variety of tasks, and recognize that users have different needs and preferences for the technology they use.
1A-CS-02 Use appropriate terminology in identifying and describing the function of common physical components of computing systems (hardware).
1A-CS-03 Describe basic hardware and software problems using accurate terminology.
1A-DA-05 Store, copy, search, retrieve, modify, and delete information using a computing device and define the information stored as data.
1A-DA-06 Collect and present the same data in various visual formats.
1A-DA-07 Identify and describe patterns in data visualizations, such as charts or graphs, to make predictions.
1A-IC-16 Compare how people live and work before and after the implementation or adoption of new computing technology.
1A-IC-17 Work respectfully and responsibly with others online.
1A-IC-18 Keep login information private, and log off of devices appropriately.
1A-NI-04 Explain what passwords are and why we use them, and use strong passwords to protect devices and information from unauthorized access.
1B-AP-08 Compare and refine multiple algorithms for the same task and determine which is the most appropriate.
1B-AP-09 Create programs that use variables to store and modify data.
1B-AP-10 Create programs that include sequences, events, loops, and conditionals.
1B-AP-11 Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.
1B-AP-12 Modify, remix, or incorporate portions of an existing program into one's own work, to develop something new or add more advanced features.
1B-AP-13 Use an iterative process to plan the development of a program by including others' perspectives and considering user preferences.
1B-AP-14 Observe intellectual property rights and give appropriate attribution when creating or remixing programs.
1B-AP-15 Test and debug (identify and fix errors) a program or algorithm to ensure it runs as intended.
1B-AP-16 Take on varying roles, with teacher guidance, when collaborating with peers during the design, implementation, and review stages of program development.
1B-AP-17 Describe choices made during program development using code comments, presentations, and demonstrations.
1B-CS-01 Describe how internal and external parts of computing devices function to form a system.
1B-CS-02 Model how computer hardware and software work together as a system to accomplish tasks.
1B-CS-03 Determine potential solutions to solve simple hardware and software problems using common troubleshooting strategies.
1B-DA-06 Organize and present collected data visually to highlight relationships and support a claim.
1B-DA-07 Use data to highlight or propose cause-and-effect relationships, predict outcomes, or communicate an idea.
1B-IC-18 Discuss computing technologies that have changed the world, and express how those technologies influence, and are influenced by, cultural practices.
1B-IC-19 Brainstorm ways to improve the accessibility and usability of technology products for the diverse needs and wants of users.
1B-IC-20 Seek diverse perspectives for the purpose of improving computational artifacts.
1B-IC-21 Use public domain or creative commons media, and refrain from copying or using material created by others without permission.
1B-NI-04 Model how information is broken down into smaller pieces, transmitted as packets through multiple devices over networks and the Internet, and reassembled at the destination.
1B-NI-05 Discuss real-world cybersecurity problems and how personal information can be protected.
2-AP-10 Use flowcharts and/or pseudocode to address complex problems as algorithms.
2-AP-11 Create clearly named variables that represent different data types and perform operations on their values.
2-AP-12 Design and iteratively develop programs that combine control structures, including nested loops and compound conditionals.
2-AP-13 Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
2-AP-14 Create procedures with parameters to organize code and make it easier to reuse.
2-AP-15 Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
2-AP-16 Incorporate existing code, media, and libraries into original programs, and give attribution.
2-AP-17 Systematically test and refine programs using a range of test cases.
2-AP-18 Distribute tasks and maintain a project timeline when collaboratively developing computational artifacts.
2-AP-19 Document programs in order to make them easier to follow, test, and debug.
2-CS-01 Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
2-CS-02 Design projects that combine hardware and software components to collect and exchange data.
2-CS-03 Systematically identify and fix problems with computing devices and their components.
2-DA-07 Represent data using multiple encoding schemes.
2-DA-08 Collect data using computational tools and transform the data to make it more useful and reliable.
2-DA-09 Refine computational models based on the data they have generated.
2-IC-20 Compare tradeoffs associated with computing technologies that affect people's everyday activities and career options.
2-IC-21 Discuss issues of bias and accessibility in the design of existing technologies.
2-IC-22 Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.
2-IC-23 Describe tradeoffs between allowing information to be public and keeping information private and secure.
2-NI-04 Model the role of protocols in transmitting data across networks and the Internet.
2-NI-05 Explain how physical and digital security measures protect electronic information.
2-NI-06 Apply multiple methods of encryption to model the secure transmission of information.
3A-AP-13 Create prototypes that use algorithms to solve computational problems by leveraging prior student knowledge and personal interests.
3A-AP-14 Use lists to simplify solutions, generalizing computational problems instead of repeatedly using simple variables.
3A-AP-15 Justify the selection of specific control structures when tradeoffs involve implementation, readability, and program performance, and explain the benefits and drawbacks of choices made.
3A-AP-16 Design and iteratively develop computational artifacts for practical intent, personal expression, or to address a societal issue by using events to initiate instructions.
3A-AP-17 Decompose problems into smaller components through systematic analysis, using constructs such as procedures, modules, and/or objects.
3A-AP-18 Create artifacts by using procedures within a program, combinations of data and procedures, or independent but interrelated programs.
3A-AP-19 Systematically design and develop programs for broad audiences by incorporating feedback from users.
3A-AP-20 Evaluate licenses that limit or restrict use of computational artifacts when using resources such as libraries.
3A-AP-21 Evaluate and refine computational artifacts to make them more usable and accessible.
3A-AP-22 Design and develop computational artifacts working in team roles using collaborative tools.
3A-AP-23 Document design decisions using text, graphics, presentations, and/or demonstrations in the development of complex programs.
3A-CS-01 Explain how abstractions hide the underlying implementation details of computing systems embedded in everyday objects.
3A-CS-02 Compare levels of abstraction and interactions between application software, system software, and hardware layers.
3A-CS-03 Develop guidelines that convey systematic troubleshooting strategies that others can use to identify and fix errors.
3A-DA-09 Translate between different bit representations of real-world phenomena, such as characters, numbers, and images.
3A-DA-10 Evaluate the tradeoffs in how data elements are organized and where data is stored.
3A-DA-11 Create interactive data visualizations using software tools to help others better understand real-world phenomena.
3A-DA-12 Create computational models that represent the relationships among different elements of data collected from a phenomenon or process.
3A-IC-24 Evaluate the ways computing impacts personal, ethical, social, economic, and cultural practices.
3A-IC-25 Test and refine computational artifacts to reduce bias and equity deficits.
3A-IC-26 Demonstrate ways a given algorithm applies to problems across disciplines.
3A-IC-27 Use tools and methods for collaboration on a project to increase connectivity of people in different cultures and career fields.
3A-IC-28 Explain the beneficial and harmful effects that intellectual property laws can have on innovation.
3A-IC-29 Explain the privacy concerns related to the collection and generation of data through automated processes that may not be evident to users.
3A-IC-30 Evaluate the social and economic implications of privacy in the context of safety, law, or ethics.
3A-NI-04 Evaluate the scalability and reliability of networks, by describing the relationship between routers, switches, servers, topology, and addressing.
3A-NI-05 Give examples to illustrate how sensitive data can be affected by malware and other attacks.
3A-NI-06 Recommend security measures to address various scenarios based on factors such as efficiency, feasibility, and ethical impacts.
3A-NI-07 Compare various security measures, considering tradeoffs between the usability and security of a computing system.
3A-NI-08 Explain tradeoffs when selecting and implementing cybersecurity recommendations.
3B-AP-08 Describe how artificial intelligence drives many software and physical systems.
3B-AP-09 Implement an artificial intelligence algorithm to play a game against a human opponent or solve a problem.
3B-AP-10 Use and adapt classic algorithms to solve computational problems.
3B-AP-11 Evaluate algorithms in terms of their efficiency, correctness, and clarity.
3B-AP-12 Compare and contrast fundamental data structures and their uses.
3B-AP-13 Illustrate the flow of execution of a recursive algorithm.
3B-AP-14 Construct solutions to problems using student-created components, such as procedures, modules and/or objects.
3B-AP-15 Analyze a large-scale computational problem and identify generalizable patterns that can be applied to a solution.
3B-AP-16 Demonstrate code reuse by creating programming solutions using libraries and APIs.
3B-AP-17 Plan and develop programs for broad audiences using a software life cycle process.
3B-AP-18 Explain security issues that might lead to compromised computer programs.
3B-AP-19 Develop programs for multiple computing platforms.
3B-AP-20 Use version control systems, integrated development environments (IDEs), and collaborative tools and practices (code documentation) in a group software project.
3B-AP-21 Develop and use a series of test cases to verify that a program performs according to its design specifications.
3B-AP-22 Modify an existing program to add additional functionality and discuss intended and unintended implications (e.g., breaking other functionality).
3B-AP-23 Evaluate key qualities of a program through a process such as a code review.
3B-AP-24 Compare multiple programming languages and discuss how their features make them suitable for solving different types of problems.
3B-CS-01 Categorize the roles of operating system software.
3B-CS-02 Illustrate ways computing systems implement logic, input, and output through hardware components.
3B-DA-05 Use data analysis tools and techniques to identify patterns in data representing complex systems.
3B-DA-06 Select data collection tools and techniques to generate data sets that support a claim or communicate information.
3B-DA-07 Evaluate the ability of models and simulations to test and support the refinement of hypotheses.
3B-IC-25 Evaluate computational artifacts to maximize their beneficial effects and minimize harmful effects on society.
3B-IC-26 Evaluate the impact of equity, access, and influence on the distribution of computing resources in a global society.
3B-IC-27 Predict how computational innovations that have revolutionized aspects of our culture might evolve.
3B-IC-28 Debate laws and regulations that impact the development and use of software.
3B-NI-03 Describe the issues that impact network functionality (e.g., bandwidth, load, delay, topology).
3B-NI-04 Compare ways software developers protect devices and information from unauthorized access.
1A-AP-09 Model the way programs store and manipulate data by using numbers or other symbols to represent information.
1A-AP-10 Develop programs with sequences and simple loops, to express ideas or address a problem.
1A-AP-11 Decompose (break down) the steps needed to solve a problem into a precise sequence of instructions.
1A-AP-12 Develop plans that describe a program’s sequence of events, goals, and expected outcomes.
1A-AP-13 Give attribution when using the ideas and creations of others while developing programs.
1A-AP-14 Debug (identify and fix) errors in an algorithm or program that includes sequences and simple loops.
1A-AP-15 Using correct terminology, describe steps taken and choices made during the iterative process of program development.
1A-CS-01 Select and operate appropriate software to perform a variety of tasks, and recognize that users have different needs and preferences for the technology they use.
1A-CS-02 Use appropriate terminology in identifying and describing the function of common physical components of computing systems (hardware).
1A-CS-03 Describe basic hardware and software problems using accurate terminology.
1A-DA-05 Store, copy, search, retrieve, modify, and delete information using a computing device and define the information stored as data.
1A-DA-06 Collect and present the same data in various visual formats.
1A-DA-07 Identify and describe patterns in data visualizations, such as charts or graphs, to make predictions.
1A-IC-16 Compare how people live and work before and after the implementation or adoption of new computing technology.
1A-IC-17 Work respectfully and responsibly with others online.
1A-IC-18 Keep login information private, and log off of devices appropriately.
1A-NI-04 Explain what passwords are and why we use them, and use strong passwords to protect devices and information from unauthorized access.
1B-AP-08 Compare and refine multiple algorithms for the same task and determine which is the most appropriate.
1B-AP-09 Create programs that use variables to store and modify data.
1B-AP-10 Create programs that include sequences, events, loops, and conditionals.
1B-AP-11 Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.
1B-AP-12 Modify, remix, or incorporate portions of an existing program into one's own work, to develop something new or add more advanced features.
1B-AP-13 Use an iterative process to plan the development of a program by including others' perspectives and considering user preferences.
1B-AP-14 Observe intellectual property rights and give appropriate attribution when creating or remixing programs.
1B-AP-15 Test and debug (identify and fix errors) a program or algorithm to ensure it runs as intended.
1B-AP-16 Take on varying roles, with teacher guidance, when collaborating with peers during the design, implementation, and review stages of program development.
1B-AP-17 Describe choices made during program development using code comments, presentations, and demonstrations.
1B-CS-01 Describe how internal and external parts of computing devices function to form a system.
1B-CS-02 Model how computer hardware and software work together as a system to accomplish tasks.
1B-CS-03 Determine potential solutions to solve simple hardware and software problems using common troubleshooting strategies.
1B-DA-06 Organize and present collected data visually to highlight relationships and support a claim.
1B-DA-07 Use data to highlight or propose cause-and-effect relationships, predict outcomes, or communicate an idea.
1B-IC-18 Discuss computing technologies that have changed the world, and express how those technologies influence, and are influenced by, cultural practices.
1B-IC-19 Brainstorm ways to improve the accessibility and usability of technology products for the diverse needs and wants of users.
1B-IC-20 Seek diverse perspectives for the purpose of improving computational artifacts.
1B-IC-21 Use public domain or creative commons media, and refrain from copying or using material created by others without permission.
1B-NI-04 Model how information is broken down into smaller pieces, transmitted as packets through multiple devices over networks and the Internet, and reassembled at the destination.
1B-NI-05 Discuss real-world cybersecurity problems and how personal information can be protected.
2-AP-11 Create clearly named variables that represent different data types and perform operations on their values.
2-AP-12 Design and iteratively develop programs that combine control structures, including nested loops and compound conditionals.
2-AP-13 Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
2-AP-14 Create procedures with parameters to organize code and make it easier to reuse.
2-AP-15 Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
2-AP-16 Incorporate existing code, media, and libraries into original programs, and give attribution.
2-AP-17 Systematically test and refine programs using a range of test cases.
2-AP-18 Distribute tasks and maintain a project timeline when collaboratively developing computational artifacts.
2-AP-19 Document programs in order to make them easier to follow, test, and debug.
2-CS-01 Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
2-CS-02 Design projects that combine hardware and software components to collect and exchange data.
2-CS-03 Systematically identify and fix problems with computing devices and their components.
2-DA-07 Represent data using multiple encoding schemes.
2-DA-08 Collect data using computational tools and transform the data to make it more useful and reliable.
2-DA-09 Refine computational models based on the data they have generated.
2-IC-20 Compare tradeoffs associated with computing technologies that affect people's everyday activities and career options.
2-IC-21 Discuss issues of bias and accessibility in the design of existing technologies.
2-IC-22 Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.
2-IC-23 Describe tradeoffs between allowing information to be public and keeping information private and secure.
2-NI-04 Model the role of protocols in transmitting data across networks and the Internet.
2-NI-05 Explain how physical and digital security measures protect electronic information.
2-NI-06 Apply multiple methods of encryption to model the secure transmission of information.
3A-AP-14 Use lists to simplify solutions, generalizing computational problems instead of repeatedly using simple variables.
3A-AP-15 Justify the selection of specific control structures when tradeoffs involve implementation, readability, and program performance, and explain the benefits and drawbacks of choices made.
3A-AP-16 Design and iteratively develop computational artifacts for practical intent, personal expression, or to address a societal issue by using events to initiate instructions.
3A-AP-17 Decompose problems into smaller components through systematic analysis, using constructs such as procedures, modules, and/or objects.
3A-AP-18 Create artifacts by using procedures within a program, combinations of data and procedures, or independent but interrelated programs.
3A-AP-19 Systematically design and develop programs for broad audiences by incorporating feedback from users.
3A-AP-20 Evaluate licenses that limit or restrict use of computational artifacts when using resources such as libraries.
3A-AP-21 Evaluate and refine computational artifacts to make them more usable and accessible.
3A-AP-22 Design and develop computational artifacts working in team roles using collaborative tools.
3A-AP-23 Document design decisions using text, graphics, presentations, and/or demonstrations in the development of complex programs.
3A-CS-01 Explain how abstractions hide the underlying implementation details of computing systems embedded in everyday objects.
3A-CS-02 Compare levels of abstraction and interactions between application software, system software, and hardware layers.
3A-CS-03 Develop guidelines that convey systematic troubleshooting strategies that others can use to identify and fix errors.
3A-DA-09 Translate between different bit representations of real-world phenomena, such as characters, numbers, and images.
3A-DA-10 Evaluate the tradeoffs in how data elements are organized and where data is stored.
3A-DA-11 Create interactive data visualizations using software tools to help others better understand real-world phenomena.
3A-DA-12 Create computational models that represent the relationships among different elements of data collected from a phenomenon or process.
3A-IC-24 Evaluate the ways computing impacts personal, ethical, social, economic, and cultural practices.
3A-IC-25 Test and refine computational artifacts to reduce bias and equity deficits.
3A-IC-26 Demonstrate ways a given algorithm applies to problems across disciplines.
3A-IC-27 Use tools and methods for collaboration on a project to increase connectivity of people in different cultures and career fields.
3A-IC-28 Explain the beneficial and harmful effects that intellectual property laws can have on innovation.
3A-IC-29 Explain the privacy concerns related to the collection and generation of data through automated processes that may not be evident to users.
3A-IC-30 Evaluate the social and economic implications of privacy in the context of safety, law, or ethics.
3A-NI-04 Evaluate the scalability and reliability of networks, by describing the relationship between routers, switches, servers, topology, and addressing.
3A-NI-05 Give examples to illustrate how sensitive data can be affected by malware and other attacks.
3A-NI-06 Recommend security measures to address various scenarios based on factors such as efficiency, feasibility, and ethical impacts.
3A-NI-07 Compare various security measures, considering tradeoffs between the usability and security of a computing system.
3A-NI-08 Explain tradeoffs when selecting and implementing cybersecurity recommendations.
3B-AP-09 Implement an artificial intelligence algorithm to play a game against a human opponent or solve a problem.
3B-AP-10 Use and adapt classic algorithms to solve computational problems.
3B-AP-11 Evaluate algorithms in terms of their efficiency, correctness, and clarity.
3B-AP-12 Compare and contrast fundamental data structures and their uses.
3B-AP-13 Illustrate the flow of execution of a recursive algorithm.
3B-AP-14 Construct solutions to problems using student-created components, such as procedures, modules and/or objects.
3B-AP-15 Analyze a large-scale computational problem and identify generalizable patterns that can be applied to a solution.
3B-AP-16 Demonstrate code reuse by creating programming solutions using libraries and APIs.
3B-AP-17 Plan and develop programs for broad audiences using a software life cycle process.
3B-AP-18 Explain security issues that might lead to compromised computer programs.
3B-AP-19 Develop programs for multiple computing platforms.
3B-AP-20 Use version control systems, integrated development environments (IDEs), and collaborative tools and practices (code documentation) in a group software project.
3B-AP-21 Develop and use a series of test cases to verify that a program performs according to its design specifications.
3B-AP-22 Modify an existing program to add additional functionality and discuss intended and unintended implications (e.g., breaking other functionality).
3B-AP-23 Evaluate key qualities of a program through a process such as a code review.
3B-AP-24 Compare multiple programming languages and discuss how their features make them suitable for solving different types of problems.
3B-CS-01 Categorize the roles of operating system software.
3B-CS-02 Illustrate ways computing systems implement logic, input, and output through hardware components.
3B-DA-05 Use data analysis tools and techniques to identify patterns in data representing complex systems.
3B-DA-06 Select data collection tools and techniques to generate data sets that support a claim or communicate information.
3B-DA-07 Evaluate the ability of models and simulations to test and support the refinement of hypotheses.
3B-IC-25 Evaluate computational artifacts to maximize their beneficial effects and minimize harmful effects on society.
3B-IC-26 Evaluate the impact of equity, access, and influence on the distribution of computing resources in a global society.
3B-IC-27 Predict how computational innovations that have revolutionized aspects of our culture might evolve.
3B-IC-28 Debate laws and regulations that impact the development and use of software.
3B-NI-03 Describe the issues that impact network functionality (e.g., bandwidth, load, delay, topology).
3B-NI-04 Compare ways software developers protect devices and information from unauthorized access.