Skip to main content
California Department of Education Logo

Computer Science Standards




Results


Showing 21 - 30 of 35 Standards

Standard Identifier: 9-12.AP.20

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

Standard:
Iteratively evaluate and refine a computational artifact to enhance its performance, reliability, usability, and accessibility.

Descriptive Statement:
Evaluation and refinement of computational artifacts involves measuring, testing, debugging, and responding to the changing needs and expectations of users. Aspects that can be evaluated include correctness, performance, reliability, usability, and accessibility. For example, after witnessing common errors with user input in a computational artifact, students could refine the artifact to validate user input and provide an error message if invalid data is provided. Alternatively, students could observe a robot in a variety of lighting conditions to determine whether the code controlling a light sensor should be modified to make it less sensitive. Additionally, students could also incorporate feedback from a variety of end users to help guide the size and placement of menus and buttons in a user interface.

Standard Identifier: 9-12.AP.21

Grade Range: 9–12
Concept: Algorithms & Programming
Subconcept: Program Development
Practice(s): Collaborating Around Computing (2.4)

Standard:
Design and develop computational artifacts working in team roles using collaborative tools.

Descriptive Statement:
Collaborative tools can be as complex as a source code version control system or as simple as a collaborative word processor. Team roles in pair programming are driver and navigator but students can take on more specialized roles in larger teams. Teachers or students should choose resources that aid collaborative program development as programs grow more complex. For example, students might work as a team to develop a mobile application that addresses a problem relevant to the school or community, using appropriate tools to support actions such as: establish and manage the project timeline; design, share, and revise graphical user interface elements; implement program components, track planned, in-progress, and completed components, and design and implement user testing.

Standard Identifier: 9-12.AP.22

Grade Range: 9–12
Concept: Algorithms & Programming
Subconcept: Program Development
Practice(s): Communicating About Computing (7.2)

Standard:
Document decisions made during the design process using text, graphics, presentations, and/or demonstrations in the development of complex programs.

Descriptive Statement:
Complex programs are often iteratively designed as systems of interacting modules, each with a specific role, coordinating for a common overall purpose. Comments are included in code both to document the purpose of modules as well as the implementation details within a module. Together these support documentation of the design process. Students use resources such as libraries and tools to edit and manage parts of the program and corresponding documentation. For example, during development of a computational artifact students could comment their code (with date, modification, and rationale), sketch a flowchart to summarize control flow in a code journal, and share ideas and updates on a white board. Students may document their logic by explaining the development process and presenting to the class. The presentation could include photos of their white board, a video or screencast explaining the development process, or recorded audio description.

Standard Identifier: 9-12.IC.28

Grade Range: 9–12
Concept: Impacts of Computing
Subconcept: Safety, Law, & Ethics
Practice(s): Communicating About Computing (7.3)

Standard:
Explain the beneficial and harmful effects that intellectual property laws can have on innovation.

Descriptive Statement:
Laws and ethics govern aspects of computing such as privacy, data, property, information, and identity. Students explain the beneficial and harmful effects of intellectual property laws as they relate to potential innovations and governance. For example, students could explain how patents protect inventions but may limit innovation. Alternatively, students could explain how intellectual property laws requiring that artists be paid for use of their media might limit the choice of songs developers can use in their computational artifacts.

Standard Identifier: 9-12.IC.29

Grade Range: 9–12
Concept: Impacts of Computing
Subconcept: Safety, Law, & Ethics
Practice(s): Communicating About Computing (7.2)

Standard:
Explain the privacy concerns related to the collection and generation of data through automated processes.

Descriptive Statement:
Data can be collected and aggregated across millions of people, even when they are not actively engaging with or physically near the data collection devices. Students recognize automated and non-evident collection of information and the privacy concerns they raise for individuals. For example, students could explain the impact on an individual when a social media site's security settings allows for mining of account information even when the user is not online. Alternatively, students could discuss the impact on individuals of using surveillance video in a store to track customers. Additionally, students could discuss how road traffic can be monitored to change signals in real time to improve road efficiency without drivers being aware and discuss policies for retaining data that identifies drivers' cars and their behaviors.

Standard Identifier: 9-12.IC.30

Grade Range: 9–12
Concept: Impacts of Computing
Subconcept: Safety, Law, & Ethics
Practice(s): Communicating About Computing (7.2)

Standard:
Evaluate the social and economic implications of privacy in the context of safety, law, or ethics.

Descriptive Statement:
Laws govern many aspects of computing, such as privacy, data, property, information, and identity. International differences in laws and ethics have implications for computing. Students make and justify claims about potential and/or actual privacy implications of policies, laws, or ethics and consider the associated tradeoffs, focusing on society and the economy. For example, students could explore the case of companies tracking online shopping behaviors in order to decide which products to target to consumers. Students could evaluate the ethical and legal dilemmas of collecting such data without consumer knowledge in order to profit companies. Alternatively, students could evaluate the implications of net neutrality laws on society's access to information and on the impacts to businesses of varying sizes.

Standard Identifier: 9-12S.AP.19

Grade Range: 9–12 Specialty
Concept: Algorithms & Programming
Subconcept: Program Development
Practice(s): Collaborating Around Computing, Creating Computational Artifacts (2.2, 2.3, 5.2)

Standard:
Plan and develop programs for broad audiences using a specific software life cycle process.

Descriptive Statement:
Software development processes are used to help manage the design, development, and product/project management of a software solution. Various types of processes have been developed over time to meet changing needs in the software landscape. The systems development life cycle (SDLC), also referred to as the application development life cycle, is a term used in systems engineering, information systems, and software engineering to describe a process for planning, creating, testing, and deploying an information system. Other examples of common processes could include agile, spiral, or waterfall. Students develop a program following a specific software life cycle process, with proper scaffolding from the teacher. For example, students could work in teams on a common project using the agile development process, which is based on breaking product development work into small increments. Alternatively, students could be guided in implementing sprints to focus work on daily standup meetings or scrums to support efficient communication.

Standard Identifier: 9-12S.AP.20

Grade Range: 9–12 Specialty
Concept: Algorithms & Programming
Subconcept: Program Development
Practice(s): Creating Computational Artifacts (5.2)

Standard:
Develop programs for multiple computing platforms.

Descriptive Statement:
Humans use computers in various forms in their lives and work. Depending on the situation, software solutions are more appropriate or valuable when available on different computational platforms or devices. Students develop programs for more than one computing platform (e.g. desktop, web, or mobile). For example, students could develop a mobile app for a location-aware software product and a different program that is installed on a computer. Alternatively, students could create a browser-based product and make it accessible across multiple platforms or computers (e.g., email).

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.

Showing 21 - 30 of 35 Standards


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