(1) Computer science algorithms and programming standards for ninth through twelfth grades are: 

(a) create prototypes that use algorithms to solve computational problems by leveraging prior student knowledge and personal interests;

(b) describe how artificial intelligence drives many software and physical systems;

(c) implement an artificial intelligence algorithm to play a game against a human opponent or solve a problem;

(d)  use and adapt classic algorithms to solve computational problems;

(e) evaluate algorithms in terms of their efficiency, correctness, and clarity;

(f) use lists to simplify solutions, generalizing computational problems instead of repeatedly using simple variables;

(g) compare and contrast fundamental data structures and their uses;

(h) justify the selection of specific control structures when tradeoffs involve implementation, readability, and program performance, and explain the benefits and drawbacks of choices made;

(i) design and iteratively develop computational artifacts for practical intent, personal expression, or to address a societal issue by using events to initiate instructions;

(j) decompose problems into smaller components through systematic analysis, using constructs such as procedures, modules, or objects;

(k) create artifacts by using procedures within a program, combinations of data and procedures, or independent but interrelated programs;

(l) construct solutions to problems using student-created procedures, modules, or objects;

(m) analyze a large-scale computational problem and identify generalizable patterns that can be applied to a solution;

(n) demonstrate code reuse by creating programming solutions using libraries and application programming interfaces;

(o) systematically design and develop programs for broad audiences by incorporating feedback from users;

(p) evaluate and refine computational artifacts to make them more usable and accessible;

(q) design and develop computational artifacts working in team roles using collaborative tools;

(r) document design decisions using text, graphics, presentations, or demonstrations in the development of complex programs;

(s) plan and develop programs for broad audiences using a software life cycle process;

(t) explain security issues that might lead to compromised computer programs;

(u) develop programs for multiple computing platforms;

(v) use version control systems, integrated development environments, and collaborative tools and practices in a group software project;

(w) develop and use a series of test cases to verify that a program performs according to its design specifications;

(x) modify an existing program to add additional functionality and discuss intended and unintended implications;

(y) evaluate key qualities of a program through a process such as a code review; and

(z) compare multiple programming languages and discuss how their features make them suitable for solving different types of problems.

(2) Computer science computing systems standards for ninth through twelfth grades are:

(a) explain how abstractions hide the underlying implementation details of computing systems embedded in everyday objects;

(b) compare levels of abstraction and interactions between application software, system software, and hardware layers;

(c) categorize the roles of operating system software;

(d) develop guidelines that convey systematic troubleshooting strategies that others can use to identify and fix errors; and

(e) illustrate ways computing systems implement logic, input, and output through hardware components.

(3) Computer science data and analysis standards for ninth through twelfth grades are:

(a) create interactive data visualizations using software tools to help others better understand authentic phenomena;

(b) use data analysis tools and techniques to identify patterns in data representing complex systems;

(c) select data collection tools and techniques to generate data sets that support a claim or communicate information;

(d) translate between different bit representations of authentic phenomena, including characters, numbers, and images;

(e) evaluate the tradeoffs in how data elements are organized and where data is stored;

(f) create computational models that represent the relationships among different elements of data collected from a phenomenon or process; and

(g) evaluate the ability of models and simulations to test and support the refinement of hypotheses.

(4) Computer science impacts of computing standards for ninth through twelfth grades are:

(a) evaluate the ways computing technologies, globally and locally impact personal, ethical, social, economic, and cultural practices;

(b) evaluate the ways computing technologies impact American Indian communities in Montana;

(c) test and refine computational artifacts to reduce bias and equity deficits;

(d) demonstrate ways a given algorithm applies to problems across disciplines;

(e) evaluate computational artifacts to maximize their beneficial effects and minimize harmful effects on society;

(f) evaluate the impact of equity, access, and influence on the distribution of computing resources in a global society, including the impact on American Indians living in urban, rural, and reservation communities;

(g) predict how computational innovations that have revolutionized aspects of our culture might evolve;

(h) use tools and methods to connect and work with others on a project including people in different cultures and career fields;

(i) explain the beneficial and harmful effects that intellectual property laws can have on innovation;

(j) explain the privacy concerns related to the collection and generation of data through automated processes that may not be evident to users;

(k) evaluate the social and economic implications of privacy in the context of safety, law, or ethics; and

(l) debate laws and regulations that impact the development and use of software.

(5) Computer science networks and the internet standards for ninth through twelfth grades are:

(a) recommend security measures to address various scenarios based on factors including efficiency, feasibility, and ethical impacts;

(b) explain tradeoffs when selecting and implementing cybersecurity recommendations;

(c) compare ways software developers protect devices and information from unauthorized access;

(d) evaluate the scalability and reliability of networks by describing the relationship between routers, addressing, switches, servers, and topology;

(e) give examples to illustrate how sensitive data can be affected by malware and other attacks;

(f) compare various security measures, considering tradeoffs between the usability and security of a computing system; and

(g) discuss the issues that impact functionality.


History: Mont. Const. Art. X, sec. 9, 20-2-121, MCA; IMP, Mont. Const. Art. X, sec. 9, 20-2-121, 20-3-106, 20-7-101, MCA; NEW, 2020 MAR p. 2138, Eff. 7/1/21.