Current through Vol. 42, No. 8, January 2, 2025
Section 210:15-3-209 - Computer Science standards for high school(a)Standards for Level 1 (to be completed by the end of 10th grade).(1)Computing Systems.(A)Devices. Model how abstractions hide the underlying implementation details of computing systems embedded in everyday objects. (Developing and Using Abstractions)(B)Hardware and Software. Analyze the interactions between application software, system software, and hardware. (Developing and Using Abstractions)(C)Troubleshooting. Develop and apply criteria for systematic discovery of errors and systematic strategies for correction of errors in computing systems. (Testing and Refining Computational Artifacts)(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.). (Developing and Using Abstractions)(B)Cybersecurity.(i) Compare physical and cybersecurity measures by evaluating trade-offs between the usability and security of a computing system and the risks of an attack. (Developing and Using Abstractions)(ii) Recommend security measures to address various scenarios based on information security principles. (Recognizing and Defining Computational Problems)(iii) Explain trade-offs when selecting and implementing cybersecurity recommendations from multiple perspectives such as the user, enterprise, and government. (Communicating About Computing)(3)Data Analysis.(A)Storage.(i) Convert and compare different bit representations of data types, such as characters, numbers, and images. (Developing and Using Abstractions)(ii) Evaluate the trade-offs in how data is organized and stored digitally. (Recognizing and Defining Computational Problems)(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). (Developing and Using Abstractions)(C)Inference and Models. Illustrate and explain the relationships between collected data elements using computational models. (Developing and Using Abstractions)(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. (Creating Computational Artifacts)(B)Variables. Demonstrate the use of lists (e.g., arrays) to simplify solutions, generalizing computational problems instead of repeatedly using simple variables. (Developing and Using Abstractions)(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. (Recognizing and Defining Computational Problems)(D)Modularity.(i) Decompose problems into procedures using systematic analysis and design. (Recognizing and Defining Computational Problems)(ii) Create computational artifacts by systematically organizing, manipulating, and/or processing data. (Recognizing and Defining Computational Problems)(E)Program Development.(i) Create software that will provide solutions to a variety of users using a software development process. (Communicating About Computing)(ii) Evaluate a variety of software licensing schemes (e.g., open source, freeware, commercial) and discuss the advantages and disadvantages of each scheme in software development. (Communicating About and Collaborating Around Computing)(iii) While working in a team, develop, test, and refine event-based programs that solve practical problems or allow self-expression. (Testing and Refining Computational Artifacts)(iv) Using visual aids and documentation, illustrate the design elements and data flow (e.g., flowcharts, pseudocode) of the development of a complex program. (Communicating About Computing)(v) Evaluate and refine computational artifacts to make them more user-friendly, efficient, and/or accessible. (Testing and Refining Computational Artifacts)(5)Impacts of Computing.(A)Culture.(i) Evaluate the ways computing impacts personal, ethical, social, economic, and cultural practices. (Communicating About Computing)(ii) Test and refine computational artifacts to ensure access to a variety of user audiences. (Developing a Productive Computing Environment)(iii) Demonstrate ways a given algorithm can help solve computational problems across disciplines. (Recognizing and Defining Computational Problems)(B)Social Interactions. Demonstrate and debate how computing increases and decreases connectivity and communication among people of various cultures. (Collaborating Around Computing)(C)Internet Safety, Law, and Ethics.(i) Describe the beneficial and harmful effects that intellectual property laws can have on innovation. (Communicating About Computing)(ii) Describe and discuss the privacy concerns related to the large-scale collection and analysis of information about individuals (e.g., how websites collect and use data) that may not be evident to users. (Communicating About Computing)(iii) Evaluate the social and economic consequences of how law and ethics interact with digital aspects of privacy, data, property, information, and identity. (Communicating About Computing)(b)Standards for Level 2 (to be completed by the end of 12th grade).(1)Computing Systems.(A)Hardware and Software. Identify and categorize the roles of a variety of operating system software. (Communicating About Computing)(B)Troubleshooting. Illustrate how understanding the ways hardware components facilitate logic, input, output, and storage in computing systems will support troubleshooting. (Communicating About Computing)(2)Networks and the Internet.(A)Network Communication and Organization. Describe the issues that impact network functionality (e.g., bandwidth, load, latency, topology). (Communicating About Computing)(B)Cybersecurity. Compare and refine ways in which software developers protect devices and information from unauthorized access. (Communicating About Computing)(3)Data Analysis.(A)Collection, Visualization, and Transformation.(i) Use data analysis tools and techniques to identify patterns from complex real-world data. (Developing and Using Abstractions)(ii) Generate data sets that use a variety of data collection tools and analysis techniques to support a claim and/or communicate information. (Developing and Using Abstractions)(B)Inference and Models. Use models and simulations to help plan, conduct, and refine investigations. (Developing and Using Abstractions)(4)Algorithms and Programming.(A)Algorithms.(i) Model and use appropriate terminology to describe how artificial intelligence algorithms drive many software and physical systems (e.g., autonomous robots, pattern recognition, text analysis). (Communicating About Computing)(ii) Develop an artificial intelligence algorithm to play a game against a human opponent or solve a real-world problem. (Creating Computational Artifacts)(iii) Critically examine and trace classic algorithms (e.g., selection sort, insertion sort, binary search, linear search). (Developing and Using Abstractions)(iv) Evaluate algorithms (e.g., sorting, searching) in terms of their efficiency and clarify. (Developing and Using Abstractions)(B)Variables. Compare and contrast simple data structures and their uses (e.g., lists, stacks, queues).(C)Control. Model the execution of repetition (e.g., loops, recursion) of an algorithm illustrating output and changes in values of named variables. (Recognizing and Defining Computational Problems)(D)Modularity.(i) Construct solutions to problems using student-created components (e.g., procedures, modules, objects). (Creating Computational Artifacts)(ii) Design or redesign a solution to a large-scale computational problem by identifying generalizable patterns. (Developing and Using Abstractions)(iii) Create programming solutions by reusing existing code (e.g., libraries, Application Programming Interface [APIs], code repositories). (Creating Computational Artifacts)(E)Program Development.(i) Create software that will provide solutions to a variety of users, using the software life cycle process. (Creating Computational Artifacts)(ii) Design software in a project team environment using integrated development environments (IDEs), versioning systems, and collaboration systems. (Communicating About and Collaborating Around Computing)(iii) Develop programs for multiple computing platforms. (Creating Computational Artifacts) (iv) Systematically examine code for correctness, usability, readability, efficiency, portability, and scalability through peer review. (Testing and Refining Computational Artifacts)(v) Develop and use a series of test cases to verify that a program performs according to its design specifications. (Testing and Refining Computational Artifacts)(vi) Explain security issues that might lead to compromised computer programs. (Communicating About Computing)(vii) Modify an existing program to add additional functionality and discuss intended and unintended implications (e.g., breaking other functionality). (Creating Computational Artifacts)(5)Impacts of Computing.(A)Culture.(i) Evaluate the beneficial and harmful effects that computational artifacts and innovations have on society. (Communicating About Computing)(ii) Evaluate the impact of location and user audience on the distribution of computing resources in society. (Developing a Productive Computing Environment)(iii) Design and implement a study that evaluates or predicts how creating, testing, and refining computational artifacts has revolutionized an aspect of our culture and how it might evolve (e.g., education, healthcare, art/entertainment, energy). (Communicating About Computing)(B)Internet Safety, Law, and Ethics. Debate laws and regulations that impact the development and use of software. (Communicating About Computing, Recognizing and Defining Computational Problems)Okla. Admin. Code § 210:15-3-209
Adopted by Oklahoma Register, Volume 36, Issue 24, September 3, 2019, eff. 9/13/2019Amended by Oklahoma Register, Volume 40, Issue 24, September 1, 2023, eff. 9/11/2023