SECTION 210:15-3-209. Computer Science standards for high school


Latest version.
  • (a)   Standards for Level 1 (to be completed by the end of 10th grade).
    (1)   Computing Systems.
    (A)   Devices. Explain how abstractions hide the underlying implementation details of computing systems embedded in everyday objects.
    (B)   Hardware and Software. Explain the interactions between application software, system software, and hardware.
    (C)   Troubleshooting. Develop and apply criteria for systematic discovery of errors and systematic strategies for correction of errors in computing systems.
    (2)   Networks and the Internet.
    (A)   Network Communication and Organization. Evaluate the scalability and reliability of networks by identifying and illustrating the basic components of computer networks (e.g., routers, switches, servers, etc.) and network protocols (e.g., IP, DNS, etc.).
    (B)   Cybersecurity.
    (i)   Compare physical and cybersecurity measures by evaluating trade-offs between the usability and security of a computing system.
    (ii)   Illustrate how sensitive data can be affected by attacks.
    (iii)   Recommend security measures to address various scenarios based on information security principles.
    (iv)   Explain trade-offs when selecting and implementing cybersecurity recommendations from multiple perspectives such as the user, enterprise, and government.
    (3)   Data Analysis.
    (A)   Storage.
    (i)   Translate and compare different bit representations of data types, such as characters, numbers, and images.
    (ii)   Evaluate the trade-offs in how data is organized and stored digitally.
    (B)   Collection, Visualization, and Transformation. Use tools and techniques to locate, collect, and create visualizations of small- and large-scale data sets (e.g., paper surveys and online data sets).
    (C)   Inference and Models. Show the relationships between collected data elements using computational models.
    (4)   Algorithms and Programming.
    (A)   Algorithms. Create a prototype that uses algorithms (e.g., searching, sorting, finding shortest distance) to provide a possible solution for a real-world problem.
    (B)   Variables. Demonstrate the use of lists (e.g., arrays) to simplify solutions, generalizing computational problems instead of repeatedly using primitive variables.
    (C)   Control. Justify the selection of specific control structures (e.g., sequence, conditionals, repetition, procedures) considering program efficiencies such as readability, performance, and memory usage.
    (D)   Modularity.
    (i)   Break down a solution into procedures using systematic analysis and design.
    (ii)   Create computational artifacts by systematically organizing, manipulating, and/or processing data.
    (E)   Program Development.
    (i)   Create software by analyzing a problem and/or process, developing and documenting a solution, testing outcomes, and adapting the program for a variety of users.
    (ii)   Define and classify a variety of software licensing schemes (e.g., open source, freeware, commercial) and discuss the advantages and disadvantages of each scheme in software development.
    (iii)   While working in a team, develop, test, and refine event-based programs that solve practical problems or allow self-expression.
    (iv)   Using visual aids and documentation, illustrate the design elements and data flow (e.g., flowcharts, pseudocode) of the development of a complex program.
    (v)   Evaluate and refine computational artifacts to make them more user-friendly, efficient, and/or accessible.
    (5)   Impacts of Computing.
    (A)   Culture.
    (i)   Evaluate the ways computing impacts personal, ethical, social, economic, and cultural practices.
    (ii)   Test and refine computational artifacts to reduce bias and equity deficits.
    (iii)   Demonstrate how a given algorithm applies to problems across disciplines.
    (B)   Social Interactions. Demonstrate how computing increases connectivity among people of various cultures.
    (C)   Safety, Law, and Ethics.
    (i)   Explain the beneficial and harmful effects that intellectual property laws can have on innovation.
    (ii)   Explain the privacy concerns related to the large-scale collection and analysis of information about individuals (e.g., how businesses, social media, and the government collect and use data) that may not be evident to users.
    (iii)   Evaluate the social and economic consequences of how law and ethics interact with digital aspects of privacy, data, property, information, and identity.
    (b)   Standards for Level 2 (to be completed by the end of 12th grade).
    (1)   Computing Systems.
    (A)   Hardware and Software. Identify and categorize roles of an operating system.
    (B)   Troubleshooting. Identify how hardware components facilitate logic, input, output, and storage in computing systems.
    (2)   Networks and the Internet.
    (A)   Network Communication and Organization. Describe the issues that impact network functionality (e.g., bandwidth, load, latency, topology).
    (B)   Cybersecurity. Compare and refine ways in which software developers protect devices and information from unauthorized access.
    (3)   Data Analysis.
    (A)   Collection, Visualization, and Transformation.
    (i)   Use data analysis tools and techniques to identify patterns from complex real-world data.
    (ii)   Generate data sets that use a variety of data collection tools and analysis techniques to support a claim and/or communicate information.
    (B)   Inference and Models. Use models and simulations to help formulate, refine, and test scientific hypotheses.
    (4)   Algorithms and Programming.
    (A)   Algorithms.
    (i)   Describe how artificial intelligence algorithms drive many software and physical systems (e.g., autonomous robots, computer vision, pattern recognition, text analysis).
    (ii)   Develop an artificial intelligence algorithm to play a game against a human opponent or solve a real-world problem.
    (iii)   Critically examine and trace classic algorithms (e.g., selection sort, insertion sort, binary search, linear search).
    (iv)   Evaluate algorithms (e.g., sorting, searching) in terms of their efficiency and clarify.
    (B)   Variables. Compare and contrast simple data structures and their uses (e.g., lists, stacks, queues).
    (C)   Control. Trace the execution of repetition (e.g., loops, recursion), illustrating output and changes in values of named variables.
    (D)   Modularity.
    (i)   Construct solutions to problems using student-created components (e.g., procedures, modules, objects).
    (ii)   Design or redesign a solution to a large-scale computational problem by identifying generalizable patterns.
    (iii)   Create programming solutions by reusing existing code (e.g., libraries, Application Programming Interface [APIs], code repositories).
    (E)   Program Development.
    (i)   Create software that will provide solutions to a variety of users, using the software life cycle process.
    (ii)   Design software in a project team environment using integrated development environments (IDEs), versioning systems, and collaboration systems.
    (iii)   Develop programs for multiple computing platforms.
    (iv)   Systematically check code for correctness, usability, readability, efficiency, portability, and scalability through peer review.
    (v)   Develop and use a series of test cases to verify that a program performs according to its design specifications.
    (vi)   Explain security issues that might lead to compromised computer programs.
    (vii)   Modify an existing program to add additional functionality and discuss intended and unintended implications (e.g., breaking other functionality).
    (5)   Impacts of Computing.
    (A)   Culture.
    (i)   Evaluate the beneficial and harmful effects that computational artifacts and innovations have on society.
    (ii)   Evaluate the impact of equity, access, and influence on the distribution of computing resources in a global society.
    (iii)   Design and implement a study that evaluates or predicts how computation has revolutionized an aspect of our culture and how it might evolve (e.g., education, healthcare, art/entertainment, energy).
    (B)   Safety, Law, and Ethics. Debate laws and regulations that impact the development and use of software.
[Source: Added at 36 Ok Reg 1528, eff 9-13-19]