IA1 Learning Objective 1: The student can use computing tools and techniques to create artifacts. [P2]
-- 1a. Creation of a digital artifact with a practical, personal, or societal intent. -- 1b. Selection of appropriate techniques to develop digital artifacts. -- 1c. Use of appropriate algorithmic and information-management principles in translating one’s intention into a digital artifact.
IA2 Learning Objective 2: The student can analyze computational artifacts. [P4]
-- 2a. Explanation of the suitability of a digital artifact as a solution to a problem. -- 2b. Location of weaknesses and errors in a digital artifact. -- 2c. Explanation of how a digital artifact functions. -- 2d. Justification of the appropriateness of a digital artifact.
IB3 Learning Objective 3: The student can use computing tools and techniques for creative expression. [P2]
-- 3a. Use of appropriate computing tools and techniques for creative expression. -- 3b. Use of new forms of expression enabled by computing. -- 3c. Selection of appropriate computing techniques for creative exploration.
IC4 Learning Objective 4: The student can use programming as a creative tool. [P2]
-- 4a. Creation of a program with a practical, personal, or societal intent. -- 4b. Creation of a program that satisfies personal curiosity or expresses creativity. -- 4c. Creation of a program that solves a problem, creates new knowledge, or helps people, organizations, or society.
Learning Objective 5: The student can describe the combination of abstractions used to represent data. [P3]
-- 5a. Explanation of how data is represented for computational use. -- 5b. Explanation of how number bases, including binary and decimal, are used for reasoning about digital data. -- 5c. Identification of the abstractions used in reasoning about digital data.
Learning Objective 6: The student can explain how binary sequences are used to represent digital data. [P5]
-- 6a. Explanation of how a finite representation is used to model the infinite mathematical concept of a number. -- 6b. Explanation of how the interpretation of a binary sequence depends on how it is used (e.g., instruction, number, text, sound, or image).
Learning Objective 7: The student can develop an abstraction. [P2]
-- 7a. Creation of an abstraction for a hardware, software, or conceptual purpose. -- 7b. Use of appropriate abstractions in the creation of an artifact. -- 7c. Selection of appropriate algorithmic and information-management abstractions.
Learning Objective 8: The student can use multiple levels of abstraction in computation. [P3]
-- 8a. Explanation of how binary data is processed by physical layers of computing hardware, including gates, chips, and components. -- 8b. Explanation of how different levels of programming languages are used in developing software. -- 8c. Identification of hardware, software, and conceptual abstractions in the design, development, and analysis of applications and systems.
Learning Objective 9: The student can use models and simulations to raise and answer questions. [P3]
-- 9a. Use of models and simulations to generate new understanding and knowledge. -- 9b. Use of different levels of abstraction to represent phenomena. -- 9c. Use of models and simulations to formulate, refine, and test hypotheses. -- 9d. Use of simulations to facilitate testing of models.
Learning Objective 10: The student can use computers to process information to gain insight and knowledge. [P1]
-- 10a. Use of computers to find patterns in, and test hypotheses about, digitally represented information. -- 10b. Drawing of insight and knowledge from translating and transforming digitally represented information. -- 10c. Explanation of connections between information and knowledge.
Learning Objective 11: The student can communicate how computer programs are used to process information to gain insight and knowledge. [P5]
-- 11a. Explanation of how computer programs are used to process information to gain insight and knowledge. -- 11b. Use of accurate and precise language, notation, or visualization to describe patterns or hypotheses arising from digitally represented information. -- 11c. Summary of insight and knowledge resulting from translating and transforming digitally represented information.
Learning Objective 12: The student can use computing to facilitate exploration and the discovery of connections in information. [P1]
-- 12a. Identification of scalability considerations when using datasets. -- 12b. Explanation of connections between data and metadata. -- 12c. Use of computing tools to discover connections in information. -- 12d. Use of computing tools to extract information and knowledge.
Learning Objective 13: The student can use large datasets to explore and discover information and knowledge. [P3]
-- 13a. Use of large datasets to extract information and knowledge. -- 13b. Explanation of how large datasets can facilitate exploration and discovery.
Learning Objective 14: The student can analyze the considerations involved in the computational manipulation of information. [P4]
-- 14a. Evaluation of trade-offs involved in the many possible ways to represent digital and non-digital information as digital data. -- 14b. Explanation of how data is stored in many formats depending on its characteristics—such as size and intended use—so that it can be manipulated computationally.
Learning Objective 15: The student can develop an algorithm. [P2]
15a. Selection of appropriate techniques -- such as sequencing, selection, iteration, and recursion -- to develop an algorithm. 15b. Selection of appropriate combinations of algorithms to make new algorithms. 15c. Creation of an algorithm to solve a problem. 15d. Creation of an algorithm with a practical, personal, or societal intent.
Learning Objective 16: The student can express an algorithm in a language. [P5]
-- 16a. Use of natural language, pseudo-code, or a visual or textual programming language to express an algorithm. -- 16b. Explanation of how an algorithm is represented in natural language, pseudo-code, or a visual or textual programming language. -- 16c. Explanation of how the language used to express an algorithm can affect characteristics such as clarity or readability. -- 16d. Summary of the purpose of an algorithm.
Learning Objective 17: The student can appropriately connect problems and potential algorithmic solutions. [P1]
-- 17a. Identification of problems that can be solved in a reasonable time. -- 17b. Explanation of why heuristic approaches are necessary to solve some problems in a reasonable time. -- 17c. Explanation of how some problems cannot be solved using any algorithm.
Learning Objective 18: The student can evaluate algorithms analytically and empirically. [P4]
-- 18a. Evaluation of an algorithm's efficiency, correctness, or clarity. -- 18b. Location and correction of errors in an algorithm. -- 18c. Explanation of how an algorithm functions. -- 18d. Explanation of how different correct algorithms for the same problem can have different efficiencies.
Learning Objective 19: The student can explain how programs implement algorithms. [P3]
-- 19a. Description of how instructions are processed. -- 19b. Explanation of how program execution automates processes. -- 19c. Explanation of how a single program can be run multiple times and on many machines. -- 19d. Explanation of how executable programs increase the scale of problems that can be addressed.
Learning Objective 20: The student can use abstraction to manage complexity in programs. [P3]
-- 20a. Use of functions as re-usable programming abstractions. -- 20b. Explanation of how parameterization can be used to generalize a specific solution. -- 20c. Use of data abstraction as a means of separating behavior from implementation. -- 20d. Use of Application Program Interfaces (APIs) and libraries to simplify complex programming tasks.
Learning Objective 21: The student can evaluate a program for correctness. [P4]
-- 21a. Evaluation of program style. -- 21b. Location and correction of errors in a program. -- 21c. Justification of program correctness. -- 21d. Explanation of how a program functions.
Learning Objective 22: The student can develop a correct program. [P2]
-- 22a. Use of an iterative process to develop a correct program. -- 22b. Development of program documentation. -- 22c. Location and elimination of errors in a program written by the student. -- 22d. Identification of programmer and user concerns in program development.
Learning Objective 23: The student can employ appropriate mathematical and logical concepts in programming. [P1]
-- 23a. Use of appropriate mathematical and logical concepts in programming. -- 23b. Explanation of connections between programs and underlying mathematical and logical concepts.
Learning Objective 24: The student can explain the abstractions in the Internet and how the Internet functions. [P3]
-- 24a. Explanation of how the Internet connects devices and networks all over the world. -- 24b. Explanation of how the Internet and the systems built on it facilitate collaboration. -- 24c. Description of evolving standards that the Internet is built on, including those for addresses and names. -- 24d. Identification of abstractions in the Internet and how the Internet functions.
Learning Objective 25: The student can explain characteristics of the Internet and the systems built on it. [P5]
-- 25a. Identification of the use of hierarchy and redundancy in the Internet. -- 25b. Description of interfaces and protocols that enable widespread use of the Internet and systems built on it. -- 25c. Summary of characteristics of the Internet and the systems built on it.
Learning Objective 26: The student can analyze how characteristics of the Internet and systems built on it influence their use. [P4]
-- 26a. Explanation of how hierarchy and redundancy help systems scale. -- 26b. Explanation of how interfaces and protocols enable widespread use. -- 26c. Explanation of how size and speed of systems affect their use.
Learning Objective 27: The student can connect the concern of cybersecurity with the Internet and systems built on it. [P1]
-- 27a. Identification of tradeoffs associated with the trust model of the Internet. -- 27b. Description of software, hardware, and human components involved in implementing cybersecurity. -- 27c. Explanation of how cryptography is essential to many models of cybersecurity.
Learning Objective 28: The student can analyze how computing affects communication, interaction, and cognition. [P4]
-- 28a. Explanation of how computing enhances communication, fostering new ways to communicate and collaborate. -- 28b. Explanation of how widespread access to information facilitates identification of problems, development of solutions, and dissemination of results. -- 28c. Evaluation of how computing enhances human capabilities (e.g., through the use of cyber-physical systems and assistive technologies). -- 28d. Evaluation of impacts that the Internet and the web have had on society.
Learning Objective 29: The student can connect computing with innovations in other fields. [P1]
-- 29a. Identification of the impacts of computing on innovation in other fields. -- 29b. Description of how computational approaches and data analysis enable innovation. -- 29c. Explanation of how computing enables innovation by providing access to and sharing of information.
Learning Objective 30: The student can analyze the beneficial and harmful effects of computing. [P4]
-- 30a. Evaluation of legal and ethical concerns raised by computing-enabled innovations. -- 30b. Evaluation of privacy and security concerns that arise in the development and use of computational systems and artifacts. -- 30c. Evaluation of how technology enables collection, use, and exploitation of information about, by, and for individuals, groups, and institutions. -- 30d. Evaluation of questions about intellectual property raised by widespread access to digitized information.
Learning Objective 31: The student can connect computing within economic, social, and cultural contexts. [P1]
-- 31a. Identification of how computing innovations both influence and are influenced by the economic, social, and cultural contexts in which they are designed and used. -- 31b. Explanation of connections between the global distribution of computing resources and issues of equity, access, and power.