Skip to main content
California Department of Education Logo

Computer Science Standards




Results


Showing 31 - 37 of 37 Standards

Standard Identifier: 9-12S.AP.16

Grade Range: 9–12 Specialty
Concept: Algorithms & Programming
Subconcept: Modularity
Practice(s): Recognizing and Defining Computational Problems, Developing and Using Abstractions (3.2, 4.2)

Standard:
Analyze a large-scale computational problem and identify generalizable patterns or problem components that can be applied to a solution.

Descriptive Statement:
As students encounter complex, real-world problems that span multiple disciplines or social systems, they need to be able to decompose problems and apply already developed code as part of their solutions. Students decompose complex problems into manageable subproblems that could potentially be solved with programs or procedures that can be reused or already exist. For example, in analyzing an Internet radio app, students could identify that users need to create an account and enter a password. They could identify a common application programming interface (API) for checking and displaying password strength. Additionally, students could recognize that the songs would need to be sorted by the time last played in order to display the most recently played songs and identify a common API for sorting dates from most to least recent. Alternatively, in analyzing the problem of tracking medical treatment in a hospital, students could recognize that patient records need to be stored in a database and identify a database solution to support quick access and modification of patient records. Additionally, they could recognize that records in the database need to be stored securely and could identify an encryption API to support the desired level of privacy.

Standard Identifier: 9-12S.AP.18

Grade Range: 9–12 Specialty
Concept: Algorithms & Programming
Subconcept: Modularity
Practice(s): Developing and Using Abstractions, Creating Computational Artifacts, Testing and Refining Computational Artifacts (4.2, 5.3, 6.2)

Standard:
Demonstrate code reuse by creating programming solutions using libraries and APIs.

Descriptive Statement:
Code reuse is critical both for managing complexity in modern programs, but also in increasing programming efficiency and reliability by having programmers reuse code that has been highly vetted and tested. Software libraries allow developers to integrate common and often complex functionality without having to reimplement that functionality from scratch. Students identify, evaluate, and select appropriate application programming interfaces (APIs) from software libraries to use with a given language and operating system. They appropriately use resources such as technical documentation, online forums, and developer communities to learn about libraries and troubleshoot problems with APIs that they have chosen. For example, students could import charting and graphing modules to display data sets, adopt an online service that provides cloud storage and retrieval for a database used in a multiplayer game, or import location services into an app that identifies points of interest on a map. Libraries of APIs can be student-created or publicly available (e.g., common graphics libraries or map/navigation APIs).

Standard Identifier: 9-12S.AP.21

Grade Range: 9–12 Specialty
Concept: Algorithms & Programming
Subconcept: Program Development
Practice(s): Testing and Refining Computational Artifacts (6.2)

Standard:
Identify and fix security issues that might compromise computer programs.

Descriptive Statement:
Some common forms of security issues arise from specific programming languages, platforms, or program implementation choices. Students read a given a piece of code that contains a common security vulnerability, explain the code's intended function or purpose, provide and explain examples of how a specific input could exploit that vulnerability (e.g., the program accessing data or performing in unintended ways), and implement a change in the code to mitigate this vulnerability. For example, students could review code that takes a date as input, recognize that the code doesn't check for appropriate last days of the month, and modify the code to do that. Alternatively, students could review code that supports entry of patient data (e.g., height and weight) and doesn't prompt users to double check unreasonable values (e.g., height at 6 feet and weight at 20 pounds).

Standard Identifier: 9-12S.AP.22

Grade Range: 9–12 Specialty
Concept: Algorithms & Programming
Subconcept: Program Development
Practice(s): Testing and Refining Computational Artifacts (6.1)

Standard:
Develop and use a series of test cases to verify that a program performs according to its design specifications.

Descriptive Statement:
Testing software is a critically important process. The ability of students to identify a set of important test cases communicates their understanding of the design specifications and potential issues due to implementation choices. Students select and apply their own test cases to cover both general behavior and the edge cases which show behavior at boundary conditions. For example, for a program that is supposed to accept test scores in the range of [0,100], students could develop appropriate tests (e.g, a negative value, 0, 100, and a value above 100). Alternatively, students developing an app to allow users to create and store calendar appointments could develop and use a series of test cases for various scenarios including checking for correct dates, flagging for user confirmation when a calendar event is very long, checking for correct email address format for invitees, and checking for appropriate screen display as users go through the process of adding, editing, and deleting events.

Standard Identifier: 9-12S.AP.24

Grade Range: 9–12 Specialty
Concept: Algorithms & Programming
Subconcept: Program Development
Practice(s): Testing and Refining Computational Artifacts (6.3)

Standard:
Evaluate key qualities of a program through a process such as a code review.

Descriptive Statement:
Code reviews are a common software industry practice and valuable for developing technical communication skills. Key qualities of code include correctness, usability, readability, efficiency, and scalability. Students walk through code they created and explain how it works. Additionally, they follow along when someone else is explaining their code and ask appropriate questions. For example, students could present their code to a group or visually inspect code in pairs. Alternatively, in response to another student's presentation, students could provide feedback including comments on correctness of the code, comments on how code interacts with code that calls it, and design and documentation features.

Standard Identifier: 9-12S.IC.27

Grade Range: 9–12 Specialty
Concept: Impacts of Computing
Subconcept: Culture
Practice(s): Fostering an Inclusive Computing Culture, Testing and Refining Computational Artifacts (1.2, 6.1)

Standard:
Evaluate computational artifacts with regard to improving their beneficial effects and reducing harmful effects on society.

Descriptive Statement:
People design computational artifacts to help make the lives of humans better. Students evaluate an artifact and comment on aspects of it which positively or negatively impact users and give ideas for reducing the possible negative impacts. For example, students could discuss how algorithms that screen job candidates' resumes can cut costs for companies (a beneficial effect) but introduce or amplify bias in the hiring process (a harmful effect). Alternatively, students could discuss how turn-by-turn navigation tools can help drivers avoid traffic and find alternate routes (a beneficial effect), but sometimes channel large amounts of traffic down small neighborhood streets (a harmful effect). Additionally, students could discuss how social media algorithms can help direct users' attention to interesting content (a beneficial effect), while simultaneously limiting users' exposure to information that contradicts pre-existing beliefs (a harmful effect).

Standard Identifier: 9-12S.NI.6

Grade Range: 9–12 Specialty
Concept: Networks & the Internet
Subconcept: Cybersecurity
Practice(s): Recognizing and Defining Computational Problems, Developing and Using Abstractions (3.3, 4.2)

Standard:
Analyze cryptographic techniques to model the secure transmission of information.

Descriptive Statement:
Cryptography is essential to many models of cybersecurity. Open standards help to ensure cryptographic security. Certificate Authorities (CAs) issue digital certificates that validate the ownership of encrypted keys used in secured communications across the Internet. Students encode and decode messages using encryption and decryption methods, and they should understand the different levels of complexity to hide or secure information. For example, students could analyze the relative designs of private key vs. public key encryption techniques and apply the best choice for a particular scenario. Alternatively, students could analyze the design of the Diffie-Helman algorithm to RSA (Rivest–Shamir–Adleman) and apply the best choice for a particular scenario. They could provide a cost-benefit analysis of runtime and ease of cracking for various encryption techniques which are commonly used to secure transmission of data over the Internet.

Showing 31 - 37 of 37 Standards


Questions: Curriculum Frameworks and Instructional Resources Division | CFIRD@cde.ca.gov | 916-319-0881