Grades

Standard

  • Use and adapt classic algorithms to solve computational problems.

  • Evaluate algorithms in terms of their efficiency, correctness, and clarity.

  • Compare and contrast fundamental data structures and their uses.

  • Illustrate the flow of execution of a recursive algorithm.

  • Construct solutions to problems using student-created components, such as procedures, modules and/or objects.

  • Analyze a large-scale computational problem and identify generalizable patterns that can be applied to a solution.

  • Demonstrate code reuse by creating programming solutions using libraries and APIs.

  • Plan and develop programs for broad audiences using a software life cycle process.

  • Explain security issues that might lead to compromised computer programs.

  • Develop programs for multiple computing platforms.

  • Use version control systems, integrated development environments (IDEs), and collaborative tools and practices (code documentation) in a group software project.

  • Develop and use a series of test cases to verify that a program performs according to its design specifications.

  • Modify an existing program to add additional functionality and discuss intended and unintended implications (e.g., breaking other functionality).

  • Evaluate key qualities of a program through a process such as a code review.

  • Compare multiple programming languages and discuss how their features make them suitable for solving different types of problems.

  • Evaluate computational artifacts to maximize their beneficial effects and minimize harmful effects on society.

  • Evaluate the impact of equity, access, and influence on the distribution of computing resources in a global society.

  • Predict how computational innovations that have revolutionized aspects of our culture might evolve.

  • Debate laws and regulations that impact the development and use of software.

  • Evaluate licenses that limit or restrict use of computational artifacts when using resources such as libraries.

  • Evaluate and refine computational artifacts to make them more usable and accessible.

  • Design and develop computational artifacts working in team roles using collaborative tools.

  • Document design decisions using text, graphics, presentations, and/or demonstrations in the development of complex programs.

  • Evaluate the ways computing impacts personal, ethical, social, economic, and cultural practices.

  • Test and refine computational artifacts to reduce bias and equity deficits.

  • Demonstrate ways a given algorithm applies to problems across disciplines.

  • Use tools and methods for collaboration on a project to increase connectivity of people in different cultures and career fields.

  • Explain the beneficial and harmful effects that intellectual property laws can have on innovation.

  • Explain the privacy concerns related to the collection and generation of data through automated processes that may not be evident [...]

  • Evaluate the social and economic implications of privacy in the context of safety, law, or ethics.

  • Categorize the roles of operating system software.

  • Illustrate ways computing systems implement logic, input, and output through hardware components.

  • Describe the issues that impact network functionality (e.g., bandwidth, load, delay, topology).

  • Compare ways software developers protect devices and information from unauthorized access.

  • Use data analysis tools and techniques to identify patterns in data representing complex systems.

  • Select data collection tools and techniques to generate data sets that support a claim or communicate information.

  • Evaluate the ability of models and simulations to test and support the refinement of hypotheses.

  • Describe how artificial intelligence drives many software and physical systems.

  • Implement an artificial intelligence algorithm to play a game against a human opponent or solve a problem.

  • Describe tradeoffs between allowing information to be public and keeping information private and secure.

  • Explain how abstractions hide the underlying implementation details of computing systems embedded in everyday objects.

  • Compare levels of abstraction and interactions between application software, system software, and hardware layers.

  • Develop guidelines that convey systematic troubleshooting strategies that others can use to identify and fix errors.

  • Evaluate the scalability and reliability of networks, by describing the relationship between routers, switches, servers, topology, and addressing.

  • Give examples to illustrate how sensitive data can be affected by malware and other attacks.

  • Recommend security measures to address various scenarios based on factors such as efficiency, feasibility, and ethical impacts.

  • Compare various security measures, considering tradeoffs between the usability and security of a computing system.

  • Explain tradeoffs when selecting and implementing cybersecurity recommendations.

  • Translate between different bit representations of real-world phenomena, such as characters, numbers, and images.

  • Evaluate the tradeoffs in how data elements are organized and where data is stored.

Grades

Standard

  • Use and adapt classic algorithms to solve computational problems.

  • Evaluate algorithms in terms of their efficiency, correctness, and clarity.

  • Compare and contrast fundamental data structures and their uses.

  • Illustrate the flow of execution of a recursive algorithm.

  • Construct solutions to problems using student-created components, such as procedures, modules and/or objects.

  • Analyze a large-scale computational problem and identify generalizable patterns that can be applied to a solution.

  • Demonstrate code reuse by creating programming solutions using libraries and APIs.

  • Plan and develop programs for broad audiences using a software life cycle process.

  • Explain security issues that might lead to compromised computer programs.

  • Develop programs for multiple computing platforms.

  • Use version control systems, integrated development environments (IDEs), and collaborative tools and practices (code documentation) in a group software project.

  • Develop and use a series of test cases to verify that a program performs according to its design specifications.

  • Modify an existing program to add additional functionality and discuss intended and unintended implications (e.g., breaking other functionality).

  • Evaluate key qualities of a program through a process such as a code review.

  • Compare multiple programming languages and discuss how their features make them suitable for solving different types of problems.

  • Evaluate computational artifacts to maximize their beneficial effects and minimize harmful effects on society.

  • Evaluate the impact of equity, access, and influence on the distribution of computing resources in a global society.

  • Predict how computational innovations that have revolutionized aspects of our culture might evolve.

  • Debate laws and regulations that impact the development and use of software.

  • Evaluate licenses that limit or restrict use of computational artifacts when using resources such as libraries.

  • Evaluate and refine computational artifacts to make them more usable and accessible.

  • Design and develop computational artifacts working in team roles using collaborative tools.

  • Document design decisions using text, graphics, presentations, and/or demonstrations in the development of complex programs.

  • Evaluate the ways computing impacts personal, ethical, social, economic, and cultural practices.

  • Test and refine computational artifacts to reduce bias and equity deficits.

  • Demonstrate ways a given algorithm applies to problems across disciplines.

  • Use tools and methods for collaboration on a project to increase connectivity of people in different cultures and career fields.

  • Explain the beneficial and harmful effects that intellectual property laws can have on innovation.

  • Explain the privacy concerns related to the collection and generation of data through automated processes that may not be evident [...]

  • Evaluate the social and economic implications of privacy in the context of safety, law, or ethics.

  • Categorize the roles of operating system software.

  • Illustrate ways computing systems implement logic, input, and output through hardware components.

  • Describe the issues that impact network functionality (e.g., bandwidth, load, delay, topology).

  • Compare ways software developers protect devices and information from unauthorized access.

  • Use data analysis tools and techniques to identify patterns in data representing complex systems.

  • Select data collection tools and techniques to generate data sets that support a claim or communicate information.

  • Evaluate the ability of models and simulations to test and support the refinement of hypotheses.

  • Describe how artificial intelligence drives many software and physical systems.

  • Implement an artificial intelligence algorithm to play a game against a human opponent or solve a problem.

  • Describe tradeoffs between allowing information to be public and keeping information private and secure.

  • Explain how abstractions hide the underlying implementation details of computing systems embedded in everyday objects.

  • Compare levels of abstraction and interactions between application software, system software, and hardware layers.

  • Develop guidelines that convey systematic troubleshooting strategies that others can use to identify and fix errors.

  • Evaluate the scalability and reliability of networks, by describing the relationship between routers, switches, servers, topology, and addressing.

  • Give examples to illustrate how sensitive data can be affected by malware and other attacks.

  • Recommend security measures to address various scenarios based on factors such as efficiency, feasibility, and ethical impacts.

  • Compare various security measures, considering tradeoffs between the usability and security of a computing system.

  • Explain tradeoffs when selecting and implementing cybersecurity recommendations.

  • Translate between different bit representations of real-world phenomena, such as characters, numbers, and images.

  • Evaluate the tradeoffs in how data elements are organized and where data is stored.