Administrative Rules of Montana › Department 10 - EDUCATION › Chapter 10.53 - CONTENT STANDARDS › Subchapter 10.53.14 - Reserved › Rule 10.53.1409 - COMPUTER SCIENCE CONTENT STANDARDS FOR NINTH THROUGH TWELFTH GRADE

Current through Register Vol. 13, July 5, 2024
(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.