Computer Science Standards
Results
Showing 1 - 9 of 9 Standards
Standard Identifier: K-2.AP.16
Grade Range:
K–2
Concept:
Algorithms & Programming
Subconcept:
Program Development
Practice(s):
Testing and Refining Computational Artifacts (6.2)
Standard:
Debug errors in an algorithm or program that includes sequences and simple loops.
Descriptive Statement:
Algorithms or programs may not always work correctly. Students use various strategies, such as changing the sequence of the steps, following the algorithm in a step-by-step manner, or trial and error to fix problems in algorithms and programs. For example, when given images placed in a random order, students could give step-by-step commands to direct a robot, or a student playing a robot, to navigate to the images in the correct sequence. Examples of images include storyboard cards from a familiar story (CA CCSS for ELA/Literacy RL.K.2, RL.1.2, RL.2.2) and locations of the sun at different times of the day (CA NGSS: 1-ESS1-1). Alternatively, students could "program" the teacher or another classmate by giving precise instructions to make a peanut butter and jelly sandwich or navigate around the classroom. When the teacher or classmate doesn't respond as intended, students correct their commands. Additionally, students could receive a partially completed soundboard program that has a variety of animals programmed to play a corresponding sound when the user touches them. Students correct any sounds that don't match the animal (e.g., if the cat moos, students change the moo sound to meow).
Debug errors in an algorithm or program that includes sequences and simple loops.
Descriptive Statement:
Algorithms or programs may not always work correctly. Students use various strategies, such as changing the sequence of the steps, following the algorithm in a step-by-step manner, or trial and error to fix problems in algorithms and programs. For example, when given images placed in a random order, students could give step-by-step commands to direct a robot, or a student playing a robot, to navigate to the images in the correct sequence. Examples of images include storyboard cards from a familiar story (CA CCSS for ELA/Literacy RL.K.2, RL.1.2, RL.2.2) and locations of the sun at different times of the day (CA NGSS: 1-ESS1-1). Alternatively, students could "program" the teacher or another classmate by giving precise instructions to make a peanut butter and jelly sandwich or navigate around the classroom. When the teacher or classmate doesn't respond as intended, students correct their commands. Additionally, students could receive a partially completed soundboard program that has a variety of animals programmed to play a corresponding sound when the user touches them. Students correct any sounds that don't match the animal (e.g., if the cat moos, students change the moo sound to meow).
Standard Identifier: K-2.IC.20
Grade Range:
K–2
Concept:
Impacts of Computing
Subconcept:
Safety, Law, & Ethics
Practice(s):
Recognizing and Defining Computational Problems (3.1)
Standard:
Describe approaches and rationales for keeping login information private, and for logging off of devices appropriately.
Descriptive Statement:
People use computing technology in ways that can help or hurt themselves and/or others. Harmful behaviors, such as sharing passwords or other private information and leaving public devices logged in should be recognized and avoided. Students keep login information private, log off of devices appropriately, and discuss the importance of these practices. For example, while learning about individual responsibility and citizenship, students could create a "privacy folder" to store login information, and keep this folder in a secure location that is not easily seen and accessed by classmates. Students could discuss the relative benefits and impacts of choosing to store passwords in a folder online versus on paper. They could also describe how using the same login and password across many systems and apps could lead to significant security issues and requires even more vigilance in maintaining security. (HSS K.1) Alternatively, students can write an informational piece regarding the importance of keeping login information private and logging off of public devices. (CA CCSS for ELA/Literacy W.K.2, W.1.2, W.2.2)
Describe approaches and rationales for keeping login information private, and for logging off of devices appropriately.
Descriptive Statement:
People use computing technology in ways that can help or hurt themselves and/or others. Harmful behaviors, such as sharing passwords or other private information and leaving public devices logged in should be recognized and avoided. Students keep login information private, log off of devices appropriately, and discuss the importance of these practices. For example, while learning about individual responsibility and citizenship, students could create a "privacy folder" to store login information, and keep this folder in a secure location that is not easily seen and accessed by classmates. Students could discuss the relative benefits and impacts of choosing to store passwords in a folder online versus on paper. They could also describe how using the same login and password across many systems and apps could lead to significant security issues and requires even more vigilance in maintaining security. (HSS K.1) Alternatively, students can write an informational piece regarding the importance of keeping login information private and logging off of public devices. (CA CCSS for ELA/Literacy W.K.2, W.1.2, W.2.2)
Standard Identifier: 3-5.AP.17
Grade Range:
3–5
Concept:
Algorithms & Programming
Subconcept:
Program Development
Practice(s):
Testing and Refining Computational Artifacts (6.2)
Standard:
Test and debug a program or algorithm to ensure it accomplishes the intended task.
Descriptive Statement:
Programs do not always run properly. Students need to understand how to test and make necessary corrections to their programs to ensure they run properly. Students successfully identify and fix errors in (debug) their programs and programs created by others. Debugging strategies at this level may include testing to determine the first place the solution is in error and fixing accordingly, leaving "breadcrumbs" in a program, and soliciting assistance from peers and online resources. For example, when students are developing a program to control the movement of a robot in a confined space, students test various inputs that control movement of the robot to make sure it behaves as intended (e.g., if an input would cause the robot to move past a wall of the confined space, it should not move at all). (CA NGSS: 3-5-ETS1-3) Additionally, students could test and debug an algorithm by tracing the inputs and outputs on a whiteboard. When noticing "bugs" (errors), students could identify what was supposed to happen and step through the algorithm to locate and then correct the error.
Test and debug a program or algorithm to ensure it accomplishes the intended task.
Descriptive Statement:
Programs do not always run properly. Students need to understand how to test and make necessary corrections to their programs to ensure they run properly. Students successfully identify and fix errors in (debug) their programs and programs created by others. Debugging strategies at this level may include testing to determine the first place the solution is in error and fixing accordingly, leaving "breadcrumbs" in a program, and soliciting assistance from peers and online resources. For example, when students are developing a program to control the movement of a robot in a confined space, students test various inputs that control movement of the robot to make sure it behaves as intended (e.g., if an input would cause the robot to move past a wall of the confined space, it should not move at all). (CA NGSS: 3-5-ETS1-3) Additionally, students could test and debug an algorithm by tracing the inputs and outputs on a whiteboard. When noticing "bugs" (errors), students could identify what was supposed to happen and step through the algorithm to locate and then correct the error.
Standard Identifier: 6-8.AP.17
Grade Range:
6–8
Concept:
Algorithms & Programming
Subconcept:
Program Development
Practice(s):
Testing and Refining Computational Artifacts (6.1)
Standard:
Systematically test and refine programs using a range of test cases.
Descriptive Statement:
Use cases and test cases are created to evaluate whether programs function as intended. At this level, students develop use cases and test cases with teacher guidance. Testing should become a deliberate process that is more iterative, systematic, and proactive than at lower levels. For example, students test programs by considering potential errors, such as what will happen if a user enters invalid input (e.g., negative numbers and 0 instead of positive numbers). Alternatively, in an interactive program, students could test that the character cannot move off of the screen in any direction, cannot move through walls, and can interact with other characters. They then adjust character behavior as needed.
Systematically test and refine programs using a range of test cases.
Descriptive Statement:
Use cases and test cases are created to evaluate whether programs function as intended. At this level, students develop use cases and test cases with teacher guidance. Testing should become a deliberate process that is more iterative, systematic, and proactive than at lower levels. For example, students test programs by considering potential errors, such as what will happen if a user enters invalid input (e.g., negative numbers and 0 instead of positive numbers). Alternatively, in an interactive program, students could test that the character cannot move off of the screen in any direction, cannot move through walls, and can interact with other characters. They then adjust character behavior as needed.
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.
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-12S.AP.15
Grade Range:
9–12 Specialty
Concept:
Algorithms & Programming
Subconcept:
Control
Practice(s):
Recognizing and Defining Computational Problems, Communicating About Computing (3.2, 7.2)
Standard:
Demonstrate the flow of execution of a recursive algorithm.
Descriptive Statement:
Recursion is a powerful problem-solving approach where the problem solution is built on solutions of smaller instances of the same problem. A base case, which returns a result without referencing itself, must be defined, otherwise infinite recursion will occur. Students represent a sequence of calls to a recursive algorithm and show how the process resolves to a solution. For example, students could draw a diagram to illustrate flow of execution by keeping track of parameter and returned values for each recursive call. Alternatively, students could create a video showing the passing of arguments as the recursive algorithm runs.
Demonstrate the flow of execution of a recursive algorithm.
Descriptive Statement:
Recursion is a powerful problem-solving approach where the problem solution is built on solutions of smaller instances of the same problem. A base case, which returns a result without referencing itself, must be defined, otherwise infinite recursion will occur. Students represent a sequence of calls to a recursive algorithm and show how the process resolves to a solution. For example, students could draw a diagram to illustrate flow of execution by keeping track of parameter and returned values for each recursive call. Alternatively, students could create a video showing the passing of arguments as the recursive algorithm runs.
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).
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.
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.
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.
Questions: Curriculum Frameworks and Instructional Resources Division |
CFIRD@cde.ca.gov | 916-319-0881