Standards in this Framework
|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.
|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.
|Categorize the roles of operating system software.
|Illustrate ways computing systems implement logic, input, and output through hardware components.
|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.
|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.
|Describe the issues that impact network functionality (e.g., bandwidth, load, delay, topology).
|Compare ways software developers protect devices and information from unauthorized access.