California Computer Science Standards
Explore standards by grade band and concept. Search a standard code or keyword to find the expectations you need.
School Data Leadership Association
Search checks codes, standard text, learning examples, teaching tasks, resources, grade bands, and concepts. Use multiple words to narrow your results.
127 standards · 5 grade bands
No standards match your search. Try fewer words or clear the filters.
Kindergarten–Grade 220 standards
Computing Systems (CS)
Select and operate computing devices that perform a variety of tasks accurately and quickly based on user needs and preferences.
A student chooses a tablet to photograph a classroom plant and a keyboard to type its label, then uses each successfully. The student explains, “The camera helps me show what it looks like, and the keyboard helps me write its name.”
Explain the functions of common hardware and software components of computing systems.
Pointing to a classroom computer, a student explains, “The keyboard puts letters in, the screen shows my work, and the drawing program lets me make a picture.” The student distinguishes a part they can touch from a program they use.
Name the parts and their jobs
Teach it
Pause a short hardware/software video excerpt to identify the classroom screen, input device, and drawing app. Have students use the app to draw and save one shape.
Assess it
Collect a labeled picture or brief recorded explanation of the device and app.
Look for: Names two physical components and their jobs; distinguishes the app from a physical part; connects an action to its visible result.
Try next: Ask how the task would change if the input device were a touchscreen instead of a mouse.
Resource: Code.org · Hardware & Software
Video; teacher-led excerpts for younger learners.
Describe basic hardware and software problems using accurate terminology.
When a drawing will not print, a student reports, “My picture is on the screen, but the printer did not print it,” instead of simply saying that everything is broken. The student names the device or program and describes what happened.
Networks and the Internet (NI)
Model and describe how people connect to other people, places, information and ideas through a network.
Using people, string, and picture cards, a student models sending a class picture to another classroom through connected devices. The student explains that the network lets people in different places share information.
Explain why people use passwords.
A student explains, “A password helps keep someone else from opening my account and changing my work.” In a pretend sign-in activity, the student keeps the password private instead of sharing it with classmates.
Create patterns to communicate a message.
A student invents a repeating clap-and-tap pattern that means “come to the circle,” teaches its meaning to a partner, and uses it to send the message. The partner correctly interprets the pattern.
Send a patterned message
Teach it
Agree that two claps mean “start” and clap-tap-clap means “stop.” Partners invent a new pattern, record its meaning with pictures, and send it to one another.
Assess it
Keep the picture key and observe a partner decoding two messages.
Look for: Creates distinguishable patterns; uses the agreed key consistently; explains how the pattern carries a message.
Try next: Change the key and ask why the same sound pattern now has a different meaning.
Resource: SDLA classroom task
Use classroom materials; no external account or curriculum purchase is required.
Data and Analysis (DA)
Store, copy, search, retrieve, modify, and delete information using a computing device, and define the information stored as data.
Using practice files, a student saves a drawing, makes a copy, finds and reopens it, changes the copy, and deletes the unwanted practice copy. The student explains, “The picture and its name are data the computer stores.”
Collect and present data in various visual formats.
A student surveys classmates about a favorite fruit, records each answer, and presents the same counts as a picture graph and a simple bar graph. Both displays accurately match the collected answers.
Turn class choices into data
Teach it
Survey a small group about a preferred classroom activity. Record each answer with a tally, then represent the counts with a picture graph and a bar graph.
Assess it
Keep the tally sheet and both labeled displays; ask students to match a count across them.
Look for: Records each response once; preserves the same counts in both formats; labels the categories so another student can read them.
Try next: Add one response and ask the student to update both displays.
Resource: SDLA classroom task
Use classroom materials; no external account or curriculum purchase is required.
Identify and describe patterns in data visualizations, such as charts or graphs, to make predictions.
Looking at a class weather graph, a student says, “We had more sunny days than rainy days. I predict another sunny day, but it could still rain.” The student points to the graph as the reason for the prediction.
Use a graph to make a prediction
Teach it
Display a simple class weather graph from the previous week. Model pointing to a pattern before making a prediction, then invite each student to predict another day's weather.
Assess it
Collect a drawing or spoken prediction and a teacher note identifying the graph evidence used.
Look for: Reads a relevant comparison correctly; links the prediction to that pattern; recognizes that a prediction can be wrong.
Try next: Show a different week's graph and ask whether the prediction should change.
Resource: SDLA classroom task
Use classroom materials; no external account or curriculum purchase is required.
Algorithms and Programming (AP)
Model daily processes by creating and following algorithms to complete tasks.
A student arranges picture cards showing how to wash hands and follows the steps in order. A partner can complete the routine using the student's instructions without needing a missing step explained.
Program a daily routine
Teach it
Use Kidbots to introduce exact instructions, then have students order picture cards for putting away classroom supplies. A partner follows the algorithm literally.
Assess it
Keep the card sequence and an observation of the partner following it.
Look for: Includes the needed actions; orders them so the routine succeeds; notices an omitted or unclear instruction.
Try next: Ask students to change the routine when one storage location moves.
Resource: CS Unplugged · Kidbots
Unplugged lessons; use floor squares and direction cards.
Model the way programs store data.
A student uses a labeled cup called “score” to hold a number card. When a pretend program earns a point, the student replaces 2 with 3 and explains, “The program remembers the score so it can use it later.”
Create programs with sequences of commands and simple loops, to express ideas or address a problem.
In a block-based program, a student makes a character move, speak, and then repeat a dance three times. The commands run in the intended order, and the student points to the loop that repeats the dance.
Make a repeating basketball animation
Teach it
Use the activity to build a short sequence with a repeat block. Ask students to choose how many bounces happen before the character says something.
Assess it
Save the project and have the student point to the sequence and loop while it runs.
Look for: Commands run in the intended order; the loop repeats the intended action; the student explains what the repeat count changes.
Try next: Ask for one additional bounce without copying the whole sequence.
Resource: ScratchJr · Dribble a Basketball
Activity; ScratchJr app and a compatible device required.
Decompose the steps needed to solve a problem into a sequence of instructions.
To guide a classroom robot to a book, a student breaks the journey into move and turn instructions. The student puts those instructions in order and checks that following them reaches the book.
Develop plans that describe a program’s sequence of events, goals, and expected outcomes.
Before coding an animated greeting, a student draws a three-frame plan: the character enters, says hello, and waves. The student explains the goal and predicts what a viewer will see when the program starts.
Plan a trip across the screen
Teach it
Before opening the activity, have students draw a beginning, middle, and end for a character's trip. Ask what should happen when the program starts.
Assess it
Keep the three-frame plan and the student's prediction; compare them with the first run.
Look for: States a goal; orders planned events; predicts an outcome that the planned commands can produce.
Try next: Move the destination and ask the student to revise the plan before changing the code.
Resource: ScratchJr · Drive Across the City
Activity; ScratchJr app and a compatible device required.
Give attribution when using the ideas and creations of others while developing programs.
A student uses a classmate's suggested character in a simple animation and adds a spoken or written credit: “Maya gave me the idea for the turtle.” The student identifies which contribution came from someone else.
Debug errors in an algorithm or program that includes sequences and simple loops.
When a character turns the wrong way and repeats a move too many times, a student locates the incorrect turn and repeat count. The student changes them and reruns the program to show that it reaches the intended destination.
Find and fix the wrong bounce
Teach it
Prepare a short bounce program with an incorrect movement block and repeat count. Let students predict, run, and locate each mismatch before editing.
Assess it
Keep before-and-after blocks or screenshots and a short explanation of the fix.
Look for: Identifies where actual behavior differs from the goal; changes the relevant block or count; reruns to verify both fixes.
Try next: Give a second short program with a different error and observe the same debugging process.
Resource: ScratchJr · Dribble a Basketball
Activity; ScratchJr app and a compatible device required.
Describe the steps taken and choices made during the iterative process of program development.
A student describes a first attempt, a test, and a change: “My character went past the house. I changed the repeat block from five to three. I tried it again, and now it stops at the house.”
Explain how the program improved
Teach it
Use a short teacher-created animation and the reverse-engineering resource to discuss what its blocks might be. Students build their own version, test it, and make a purposeful revision.
Assess it
Collect a first version, revised version, and spoken “I tried / I noticed / I changed” explanation.
Look for: Describes the original intention; identifies evidence from a test; explains why the revision improved the result.
Try next: Ask what the student would try next if the revised character still overshot its destination.
Resource: ScratchJr · Reverse Engineering assessment (PDF)
Assessment resource; use teacher-created short programs and printed blocks.
Impacts of Computing (IC)
Compare how people lived and worked before and after the adoption of new computing technologies.
Using before-and-after pictures, a student compares mailing a letter with sending a digital message. The student describes something that stayed the same—sharing news—and something that changed, such as how quickly the message arrives.
Work respectfully and responsibly with others when communicating electronically.
In a teacher-managed digital discussion, a student takes turns, writes or dictates a kind response about a classmate's work, and asks before sharing the classmate's picture. The response is relevant and respectful.
Practice a respectful digital reply
Teach it
Use the updated lesson as a discussion starter. In a teacher-managed space or on a projected mock discussion, students respond to a peer's creation and ask before sharing it.
Assess it
Observe one authentic or role-played exchange; retain the response without unnecessary personal information.
Look for: Responds kindly and on topic; respects another person's work; asks before sharing someone else's contribution.
Try next: Present an unkind draft reply and ask the student to revise it.
Resource: Common Sense Education · Pause & Think Online (Updated)
Grade 1 lesson; teacher sign-in may be needed for lesson materials.
Describe approaches and rationales for keeping login information private, and for logging off of devices appropriately.
A student demonstrates signing out of a shared practice account and explains, “I keep my login private and sign out so the next person cannot use my account.” The student identifies a trusted adult to ask for login help.
Grades 3–523 standards
Computing Systems (CS)
Describe how computing devices connect to other components to form a system.
A student draws a labeled system with a computer, keyboard, headphones, and printer, marking wired or wireless connections. The student explains what each connection lets the components do together.
Demonstrate how computer hardware and software work together as a system to accomplish tasks.
A student records a short narration and plays it back, explaining that the microphone captures sound, the recording software saves and edits it, and the speakers produce the playback. The demonstration shows how the parts work together.
Trace input, code, and output
Teach it
Use the emotion-badge project. Students program a button to display a chosen icon and trace the button press through the program to the LED output.
Assess it
Collect the working demonstration and a labeled input–software–output diagram.
Look for: Identifies physical input and output components; explains the program's role; demonstrates that the parts accomplish the intended task together.
Try next: Change the programmed icon and ask which hardware components remain the same.
Resource: micro:bit · First lessons with MakeCode
Unit; use MakeCode. Physical demonstrations require a micro:bit.
Determine potential solutions to solve simple hardware and software problems using common troubleshooting strategies.
When a practice recording has no sound, a student proposes checking volume, the selected output device, and the headphone connection. The student tries a reasonable check, describes the result, and identifies a next step or when to ask for help.
Networks and the Internet (NI)
Model how information is broken down into smaller pieces, transmitted as packets through multiple devices over networks and the Internet, and reassembled at the destination.
A student divides a message into numbered paper packets, sends them through classmates representing network devices along different routes, and reassembles them at the destination. The student explains why the receiver needs information about packet order.
Deliver a message in packets
Teach it
Use the chapter as teacher background for a paper simulation. Split a message into numbered packets and send them through several student “devices” along two routes before reassembly.
Assess it
Keep the packets and a student's diagram of the route and reconstruction.
Look for: Shows the message divided into pieces; passes them through multiple devices; uses numbering to restore the original order.
Try next: Deliver packets out of order and ask the student to reconstruct the same message.
Resource: CS Field Guide · Network Communication Protocols
High-school reference; teachers simplify the model for younger grades.
Describe physical and digital security measures for protecting personal information.
For a fictional student account, a student recommends both a physical measure, such as putting the device away securely, and a digital measure, such as a private password and screen lock. The student explains what each measure helps protect.
Create patterns to protect information from unauthorized access.
A student creates a substitution pattern, uses it to encode a short message, and gives the decoding key only to the intended partner. The partner recovers the message, and the student explains why someone without the key would find it harder to read.
Data and Analysis (DA)
Explain that the amount of space required to store data differs based on the type of data and/or level of detail.
A student compares the file sizes of two versions of the same picture saved in the same format at different resolutions. The student explains that more image detail generally requires more storage and notes that file format can also affect size.
Compare the detail in two images
Teach it
Explore the image-representation unit, then encode the same simple design on two different grid sizes with the same number of bits per pixel. Compare required pixel counts.
Assess it
Collect both grids and a short storage comparison.
Look for: Connects more pixels with more stored values; compares like-for-like encodings; explains how detail and storage relate.
Try next: Keep the grid size fixed but add more possible colors; ask what extra information each pixel needs.
Resource: CS Unplugged · Image Representation
Unplugged unit; use grid paper and a shared encoding key.
Organize and present collected data visually to highlight relationships and support a claim.
A student organizes a class transportation survey into a labeled bar graph and writes, “More students in our class walk than ride a bike,” citing the two counts. The graph's labels and scale support the claim accurately.
Make a graph that supports a claim
Teach it
After the unit's data collection work, organize several classroom temperature readings by location. Students choose a clear graph and make one comparison supported by the readings.
Assess it
Keep the data table, labeled graph, and a one-sentence claim citing values.
Look for: Displays the recorded values accurately; uses a suitable scale and labels; supports the claim with a specific comparison.
Try next: Add a new location and ask whether the original claim still holds.
Resource: micro:bit · Data handling
Unit for ages 9–10; sensor tasks require micro:bits. Use class data for follow-up analysis.
Use data to highlight and/or propose relationships, predict outcomes, or communicate ideas.
Using several weeks of classroom library checkout data, a student predicts which book category may need more copies and cites the pattern in the counts. The student recognizes that future choices could differ from past choices.
Predict from collected readings
Teach it
Use a small set of readings collected at the same times over several days. Students look for a recurring pattern and predict a later reading or range.
Assess it
Collect the prediction, cited observations, and an explanation of uncertainty.
Look for: Identifies a real pattern; makes a prediction consistent with it; explains that limited data cannot guarantee the outcome.
Try next: Introduce a cloudy day or another changed condition and ask how confidence should change.
Resource: micro:bit · Data handling
Unit for ages 9–10; sensor tasks require micro:bits. Use class data for follow-up analysis.
Algorithms and Programming (AP)
Compare and refine multiple algorithms for the same task and determine which is the most appropriate.
A student compares two sets of directions for navigating the same maze, tests both, and removes unnecessary moves. The student selects the revised route and explains why it is suitable, using accuracy and number of steps as evidence.
Choose a better search strategy
Teach it
Have students find a hidden value in ordered cards using a sequential search and a divide-the-range strategy. Compare the steps for several targets and revise unclear instructions.
Assess it
Keep both algorithms and a small comparison-count table.
Look for: Both procedures find the target; revisions improve clarity or reduce work; the student justifies a choice using results.
Try next: Shuffle the cards and ask which strategy still works without preparation.
Resource: CS Unplugged · Searching algorithms
Unplugged unit; use ordered number cards and count comparisons.
Create programs that use variables to store and modify data.
A student creates a quiz with a score variable that starts at zero and increases after a correct answer. The student demonstrates the changing value and explains why the program needs to store it.
Create a changing activity count
Teach it
Use a movement-counter task from the unit. Students initialize a named counter, increase it for a detected action, and display the updated value.
Assess it
Collect the program and a demonstration with a known number of actions.
Look for: Sets an initial value; updates rather than replaces the count incorrectly; shows the stored value changing predictably.
Try next: Add a reset action and ask students to explain why the variable returns to zero.
Resource: micro:bit · Getting active
Unit for ages 10–11; use teacher scaffolding in grade 3 and micro:bits for movement sensing.
Create programs that include events, loops, and conditionals.
A student's game starts when a button is clicked, uses a loop to move an object, and uses an if statement to award a point when the object touches a target. The student demonstrates and identifies all three structures.
Build an interactive materials tester
Teach it
Use the conductivity tester as a starting point. Add an event that starts testing, a loop that checks repeatedly, and a conditional that displays the appropriate result.
Assess it
Keep the code and test results for a conducting and a nonconducting classroom material.
Look for: Identifies the event, loop, and conditional; demonstrates both outcomes; explains how repeated checking affects behavior.
Try next: Change the feedback from an icon to a word while preserving the decision rule.
Resource: micro:bit · Electrical conductors
Unit for ages 8–9; micro:bit and low-voltage classroom conductivity materials required.
Decompose problems into smaller, manageable tasks which may themselves be decomposed.
A student breaks an animated story into scenes, then breaks one scene into setting the background, moving characters, and displaying dialogue. The resulting task list is small enough to guide the actual programming work.
Create programs by incorporating smaller portions of existing programs, to develop something new or add more advanced features.
A student takes a movement sequence from a permitted sample program and adapts it for a new maze game. The student shows which blocks were reused, what was changed, and how the new program behaves differently.
Use an iterative process to plan and develop a program by considering the perspectives and preferences of others.
A student asks classmates what would make a quiz easy to use, creates a first version, and observes them trying it. The student revises confusing instructions and shows how the change responds to their preferences.
Observe intellectual property rights and give appropriate attribution when creating, remixing, or combining programs.
A student selects a character image whose stated permissions allow reuse, follows those conditions, and includes the creator and source in the project's credits. The student explains why finding an image online does not automatically mean it can be reused.
Test and debug a program or algorithm to ensure it accomplishes the intended task.
A student tests a quiz with both correct and incorrect answers, notices that both earn points, and fixes the condition. A second test shows that points are now awarded only for correct answers.
Test the nightlight on both sides
Teach it
Use the nightlight project and ask students to predict its response above and below a chosen light threshold. They test, correct a deliberate condition error, and retest.
Assess it
Keep a two-condition test record and the corrected program.
Look for: States expected outcomes first; locates an error using a failed test; confirms that both conditions work after the fix.
Try next: Change the threshold and test a value close to the new boundary.
Resource: micro:bit · First lessons with MakeCode
Unit; use MakeCode. Physical demonstrations require a micro:bit.
Perform different roles when collaborating with peers during the design, implementation, and review stages of program development.
Across a group project, a student helps plan a story, takes a turn programming a scene, and later tests a partner's scene. A brief role log or explanation shows a useful contribution during design, creation, and review.
Describe choices made during program development using code comments, presentations, and demonstrations.
A student adds a comment explaining why a loop repeats four times, demonstrates the resulting square, and describes that decision to classmates. The explanation connects the code choice to what the program does.
Impacts of Computing (IC)
Discuss computing technologies that have changed the world, and express how those technologies influence, and are influenced by, cultural practices.
A student explains how video calls let distant family members participate in celebrations and how families' languages and traditions can shape the features they want in calling tools. The example shows technology influencing culture and culture influencing technology.
Propose ways to improve the accessibility and usability of technology products for the diverse needs and wants of users.
After trying a classroom app, a student proposes larger controls, spoken directions, or text labels beside icons and explains who each change could help. A sketch shows how at least one proposed change would work.
Redesign a hard-to-use control
Teach it
Use the chapter as teacher background. Give students a mock classroom app with tiny unlabeled icons and ask them to redesign it for readers with different language, vision, or motor needs.
Assess it
Collect an annotated before-and-after sketch and a brief peer trial.
Look for: Identifies a specific user barrier; proposes a relevant change; explains who benefits and how a user would operate it.
Try next: Introduce a new user need and ask whether the redesign needs another option.
Resource: CS Field Guide · Human Computer Interaction
High-school reference; younger students use the teacher-prepared task below.
Seek and explain the impact of diverse perspectives for the purpose of improving computational artifacts.
A student asks peers with different experiences to try an interactive story and listens to their suggestions. The student revises an unclear symbol or unfamiliar phrase and explains how another person's perspective improved the story.
Describe reasons creators might limit the use of their work.
A student explains, “A game artist might let us look at the artwork but not sell copies because they want to be paid and decide how it is used.” The student gives a clear reason a creator might restrict copying or changes.
Grades 6–824 standards
Computing Systems (CS)
Design modifications to computing devices in order to improve the ways users interact with the devices.
A student designs a larger, tactile input button for a device used by someone who finds a small touchscreen difficult. A labeled prototype shows how the modification changes the interaction, and the student explains how it addresses the user's need.
Modify a sensory device for its user
Teach it
Use the unit to explore user needs, then ask students to redesign the device's controls or feedback for a stated sensory or motor need. Build a paper or working prototype.
Assess it
Keep the user-need statement, labeled design, and user-test notes.
Look for: Connects the modification to a specific interaction barrier; shows how the input or output changes; uses feedback to judge its usefulness.
Try next: Change the user scenario and ask which design choices remain appropriate.
Resource: micro:bit · Sensory classroom
Unit for ages 11–14; assumes some MakeCode experience. Use a micro:bit for the prototype.
Design a project that combines hardware and software components to collect and exchange data.
A student designs a classroom temperature monitor with a sensor, a programmable board, and software that sends readings to another device for display. A diagram identifies the data collected, the components, and the path the data follows.
Exchange environmental data
Teach it
Use the wireless-data challenge to plan two micro:bits: one gathers or records an environmental reading and sends it; the other displays the received value. Students draw the complete data path.
Assess it
Collect the system diagram, code or pseudocode, and a transmission demonstration where equipment permits.
Look for: Identifies the collection component, software, and receiver; shows what data moves between them; explains how the design meets its purpose.
Try next: Ask how the receiver should signal a missing or stale reading.
Resource: micro:bit · Healthy oceans
Advanced design challenges; use the wireless-data activity. Requires multiple micro:bits.
Systematically apply troubleshooting strategies to identify and resolve hardware and software problems in computing systems.
For a malfunctioning sensor project, a student records the symptom, checks power and connections, tests the sensor separately, and then checks the code. The student changes one factor at a time and documents the fix and successful retest.
Networks and the Internet (NI)
Model the role of protocols in transmitting data across networks and the Internet.
In a packet-delivery simulation, a student specifies rules for addressing, numbering, acknowledging, and resending messages. The student demonstrates how agreed rules let the receiver reconstruct a message when a packet is delayed or lost.
Write rules for reliable delivery
Teach it
Create a paper-packet network with addresses, sequence numbers, acknowledgments, and resending rules. Students test the agreed protocol while the teacher delays or removes a packet.
Assess it
Keep the protocol sheet and a trace showing a successful retry and reconstruction.
Look for: Uses common rules at sender and receiver; detects a missing packet; explains how the protocol resolves the problem.
Try next: Deliver a duplicate packet and ask students to extend their rules to handle it.
Resource: CS Field Guide · Network Communication Protocols
High-school reference; teachers simplify the model for younger grades.
Explain potential security threats and security measures to mitigate threats.
For a fictional account, a student matches a deceptive login message, a guessed password, and an outdated application with appropriate protective measures. The student explains how each measure reduces its particular threat and why one measure does not address every threat.
Match protections to threats
Teach it
Use the unit's security discussion, then give students fictional scenarios involving a guessed password, a deceptive message, and a misplaced device. Ask for a justified protection for each.
Assess it
Collect a threat–measure–reason table and one limitation for each measure.
Look for: Names the threat accurately; matches a measure to the mechanism of harm; recognizes that one protection does not solve every problem.
Try next: Change one scenario and ask why the original measure may no longer be sufficient.
Resource: micro:bit · Introduction to cyber security
Unit for ages 11–14; use fictional accounts and classroom examples.
Apply multiple methods of information protection to model the secure transmission of information.
In a classroom simulation, a student encrypts a message with a shared key, uses a separate agreed check to authenticate the sender, and limits who receives the key. The student demonstrates delivery and explains the different purpose of each protection.
Data and Analysis (DA)
Represent data in multiple ways.
A student represents a small black-and-white image as a grid, a sequence of zeros and ones, and a sequence of counts of repeated pixels. The student reconstructs the same image from each representation and explains the encoding rules.
Represent one image three ways
Teach it
Extend the unit by encoding a small monochrome image as a pixel grid, a bit sequence, and runs of repeated pixels. Students exchange encodings with a partner.
Assess it
Keep all three representations and the partner's reconstructed image.
Look for: Preserves the same information; documents each encoding convention; translates accurately between representations.
Try next: Change a row of pixels and ask students to update all representations consistently.
Resource: CS Unplugged · Image Representation
Unplugged unit; use grid paper and a shared encoding key.
Collect data using computational tools and transform the data to make it more useful.
A student collects light readings with a sensor, imports them into a spreadsheet, labels units, and groups readings by time of day. The student documents how missing or erroneous readings were handled and explains how the transformed data helps answer a question.
Transform sensor readings into useful data
Teach it
Collect light readings or provide a clearly labeled sample dataset. Students label units, identify missing readings, group observations by time, and prepare a table that answers a class question.
Assess it
Keep raw and transformed data plus a short transformation log.
Look for: Uses a computational collection/import tool; documents changes and missing-data decisions; makes the transformed data useful without inventing readings.
Try next: Add inconsistent time labels and ask students to normalize them while preserving the original records.
Resource: micro:bit · Energy awareness
Unit; micro:bit needed for collection. A supplied dataset can support analysis-only work.
Test and analyze the effects of changing variables while using computational models.
Using a population simulation, a student changes food availability while holding other settings constant and records the resulting population sizes. The student explains the observed pattern and distinguishes a result of the model from a guaranteed real-world outcome.
Algorithms and Programming (AP)
Use flowcharts and/or pseudocode to design and illustrate algorithms that solve complex problems.
A student designs a flowchart for a library checkout process that checks whether a book is available, checks borrowing eligibility, and repeats for additional books. Walking through several cases shows clear decisions and a complete path to an outcome.
Create clearly named variables that store data, and perform operations on their contents.
A student's program stores values in variables such as itemPrice, quantity, and totalCost, calculates the total, and updates it when quantity changes. The student explains the purpose of the names and verifies the calculation with sample inputs.
Design and iteratively develop programs that combine control structures and use compound conditions.
A student builds a game that checks input repeatedly and opens a door only when the player has a key AND enough points. Tests of all combinations reveal an error, which the student corrects and retests.
Combine repetition and a compound condition
Teach it
After the introductory programming work, build a classroom alert that repeatedly checks whether a button is pressed AND a reading exceeds a threshold. Students test and revise the logic.
Assess it
Keep code and a four-case table covering both true/false inputs.
Look for: Combines a loop with selection; implements the compound condition correctly; uses failed tests to guide a revision.
Try next: Change AND to OR and ask students to predict and test which cases change.
Resource: micro:bit · Computing fundamentals
Introductory unit for ages 11–12; add the compound-condition challenge below.
Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
A student divides a quiz program into displaying questions, checking answers, and tracking scores, then breaks answer checking into smaller steps. The plan assigns each part a clear responsibility and supports separate implementation and review.
Create procedures with parameters to organize code and make it easier to reuse.
A student creates a drawPolygon(sides, size) procedure and calls it with different values to draw several shapes. The student shows how parameters change the result while the same procedure replaces repeated code.
Reuse a parameterized procedure
Teach it
With a teacher-prepared Python starter or equivalent block procedure, students define drawShape(size, repeats) and call it with several values. Discuss how parameters replace duplicated code.
Assess it
Collect the procedure, two distinct calls, and a demonstration of their outputs.
Look for: Uses parameters inside the procedure; varies output through arguments; reuses the same procedure successfully.
Try next: Ask students to add a color parameter without copying the procedure.
Resource: Python tutorial · Defining functions
Technical reference, not a school lesson. Teacher prepares a short starter program and Python environment.
Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
A student records feedback from teammates and intended users of a homework organizer, prioritizes a confusing due-date display, and revises it. A follow-up trial and explanation show whether the revision better meets the identified need.
Incorporate existing code, media, and libraries into original programs, and give attribution.
A student combines original game code with a permitted sound file and an existing animation library. The program works, and its credits identify the outside contributions, their creators or projects, and their sources.
Systematically test and refine programs using a range of test cases.
A student creates a test table for a score calculator with ordinary scores, zero, the maximum allowed value, and invalid input. The student compares actual and expected results, fixes failures, and reruns the tests.
Turn a project rubric into tests
Teach it
Use the guide's concept-focused assessment approach with a class quiz or calculator. Students list expected results for typical, boundary, and invalid inputs before running the program.
Assess it
Keep a test table, one diagnosed failure, and the retest record after revision.
Look for: Covers more than one kind of input; compares actual and expected results systematically; reruns relevant tests after a fix.
Try next: Give one unseen input and ask students to explain why it belongs in the test set.
Resource: Code.org · Rubrics in courses
Teacher assessment guide; site may request browser verification. Use an existing class program; course-specific tools may require teacher sign-in.
Distribute tasks and maintain a project timeline when collaboratively developing computational artifacts.
A team uses a shared task board with owners and due dates to build an interactive map. A student completes assigned work, updates progress, and helps revise the timeline when a dependent task takes longer than expected.
Document programs in order to make them easier to use, read, test, and debug.
A student supplies setup instructions, sample inputs and outputs, and comments explaining a tricky calculation. A peer can run the program and locate the relevant section when a provided test produces an unexpected result.
Impacts of Computing (IC)
Compare tradeoffs associated with computing technologies that affect people's everyday activities and career options.
A student compares automated checkout with staffed checkout, describing changes in convenience, accessibility, and job tasks. The student explains who may benefit or face difficulties and supports a balanced conclusion with specific examples.
Discuss issues of bias and accessibility in the design of existing technologies.
A student reviews a voice-controlled tool and explains how difficulty recognizing some speech patterns could exclude users. The student distinguishes uneven recognition from the lack of an alternative input method and proposes ways to investigate both issues.
Investigate who an AI tool may exclude
Teach it
Use the bias discussion and a teacher-prepared example of a movement classifier that works better for some movement styles. Students consider training coverage and an alternative input method.
Assess it
Collect an annotated critique and a proposed comparison test.
Look for: Identifies an uneven outcome; explains a plausible design or data cause without assuming it is proven; proposes an accessibility improvement.
Try next: Ask whether adding more examples solves the problem for someone unable to perform the movement.
Resource: micro:bit · Developing AI literacy
Unit for ages 11–14; CreateAI activities need compatible equipment. Extend the evaluation for high school.
Collaborate with many contributors when creating a computational artifact.
A student helps build a shared digital guide using contributions from several classroom teams. The student integrates others' text, images, or code, resolves conflicting suggestions respectfully, and documents individual contributions to the final artifact.
Compare tradeoffs associated with licenses for computational artifacts to balance the protection of the creators' rights and the ability for others to use and modify the artifacts.
Using two teacher-provided license summaries, a student compares what each permits people to copy, modify, and share. The student recommends a license for a class project and explains the tradeoff between creator control and opportunities for reuse.
Compare tradeoffs between allowing information to be public and keeping information private and secure.
For a fictional club website, a student compares publishing meeting information with publishing members' personal contact details. The student recommends what to share publicly and what to restrict, explaining the benefits and privacy risks of each choice.
Grades 9–1230 standards
Computing Systems (CS)
Describe ways in which abstractions hide the underlying implementation details of computing systems to simplify user experiences.
A student explains how selecting “Save” lets a user store a file without managing individual storage locations. The explanation identifies the simplified action, the hidden system work, and why hiding that detail makes the interface easier to use.
Explain what an interface hides
Teach it
Use the chapter to examine familiar interface actions. Students choose “Save” or “Print” and diagram the simplified user action above the underlying software and hardware operations.
Assess it
Collect the two-layer diagram and a short explanation of the abstraction.
Look for: Distinguishes the user-facing action from implementation detail; names relevant hidden work; explains how abstraction reduces the user's burden.
Try next: Ask what information the interface must reveal when the hidden operation fails.
Resource: CS Field Guide · Human Computer Interaction
High-school reference; younger students use the teacher-prepared task below.
Compare levels of abstraction and interactions between application software, system software, and hardware.
A student traces playing an audio file from the application through operating-system services and device drivers to audio hardware. The student compares the responsibilities of the layers and explains how one layer requests services from another.
Develop guidelines that convey systematic troubleshooting strategies that others can use to identify and fix errors.
A student creates a troubleshooting decision tree for a device that cannot connect to a network, including symptom checks, isolation steps, retests, and escalation points. A peer uses the guide successfully on a teacher-prepared fault and identifies any unclear instruction for revision.
Networks and the Internet (NI)
Describe issues that impact network functionality.
A student analyzes a simulated slow connection by distinguishing limited bandwidth, high latency, packet loss, and a failed device. The student explains how each issue affects the experience and what observation would help distinguish possible causes.
Describe the design characteristics of the Internet.
A student diagrams the Internet as interconnected networks using packet switching, addressing, routing, and shared protocols. The student explains how multiple possible routes support resilience and why a failed local connection can still interrupt a user's access.
Explain an Internet design choice
Teach it
Use the chapter to investigate addressing, packet delivery, and shared protocols. Students model interconnected networks and route a message before and after one connection fails.
Assess it
Keep the annotated model and a reasoned explanation of the rerouting attempt.
Look for: Explains packet switching and addressing; describes the role of shared protocols; distinguishes resilience from guaranteed connectivity.
Try next: Remove the sender's only connection and ask why alternate routes elsewhere cannot restore that access.
Resource: CS Field Guide · Network Communication Protocols
High-school reference; teachers simplify the model for younger grades.
Compare and contrast security measures to address various security threats.
For fictional security scenarios, a student compares encryption, multifactor authentication, access permissions, and backups. The student selects a combination and explains which threats each measure addresses, its limitations, and relevant usability tradeoffs.
Compare and contrast cryptographic techniques to model the secure transmission of information.
Using a classroom cryptography model, a student compares a shared-secret approach with a public/private-key approach. The student demonstrates the roles of the keys and explains differences in key distribution and computational cost without treating the teaching model as production security.
Data and Analysis (DA)
Translate between different representations of data abstractions of real-world phenomena, such as characters, numbers, and images.
A student converts a short text into character codes and binary values, then reconstructs the text using the same encoding. The student also translates a small image into pixel color values and explains how the representations stand for visible information.
Translate text and image encodings
Teach it
Choose a stated character encoding and a small pixel-color convention. Students translate a short message and icon into numeric representations and reconstruct them.
Assess it
Collect the original artifacts, encoded values, and reconstructed results.
Look for: Uses the stated conventions consistently; translates in both directions; explains how stored values represent visible information.
Try next: Give the encoded data to a partner using a different convention and ask students to diagnose the mismatch.
Resource: CS Field Guide · Data Representation
High-school chapter and interactives; use a shared encoding convention.
Describe tradeoffs associated with how data elements are organized and stored.
For a searchable catalog, a student compares storing full records repeatedly with storing related records once and linking them by identifiers. The student explains tradeoffs in duplication, updating, retrieval, and implementation complexity.
Create data visualizations to help others better understand real-world phenomena.
A student creates a labeled visualization of local temperature data, chooses an appropriate scale and chart type, and annotates a meaningful trend. The student explains the pattern and a limitation without using the display to imply more than the data supports.
Build a visualization for a decision
Teach it
Use light-use data from the unit or a supplied dataset to investigate where a change might reduce unnecessary lighting. Students select and annotate a visualization for a school audience.
Assess it
Collect the cleaned data, chart, and an explanation of a pattern and limitation.
Look for: Chooses a suitable display; labels units and scales accurately; communicates a supported finding without treating light readings as direct electricity measurements.
Try next: Ask students to redesign the display for a reader unfamiliar with the project.
Resource: micro:bit · Energy awareness
Unit; micro:bit needed for collection. A supplied dataset can support analysis-only work.
Refine computational models to better represent the relationships among different elements of data collected from a phenomenon or process.
A student compares a simple school-bus travel-time model with observed times, identifies that stop frequency is missing, and adds that relationship. The student compares predictions before and after the revision using held-out observations and discusses remaining error.
Algorithms and Programming (AP)
Design algorithms to solve computational problems using a combination of original and existing algorithms.
A student designs an event scheduler that uses an existing sorting algorithm and original steps for checking time conflicts and assigning rooms. A trace with overlapping events shows how the combined algorithm produces a valid schedule or reports an unresolved conflict.
Create more generalized computational solutions using collections instead of repeatedly using simple variables.
A student replaces separate score1, score2, and score3 variables with a collection and a loop that calculates a class average. The solution works when the number of scores changes and handles an empty collection deliberately.
Generalize a score-processing program
Teach it
Use the list reference to replace individually named scores with a collection. Students write one solution that summarizes any permitted number of scores and handles an empty collection.
Assess it
Collect code and results for empty, one-item, and longer inputs.
Look for: Processes the collection without fixed item variables; handles size changes; deliberately defines the empty-input result.
Try next: Add several scores and ask students to show that no structural code change is needed.
Resource: Python tutorial · Data Structures
Technical reference; assumes basic Python. Provide a runnable starter and sample data.
Justify the selection of specific control structures by identifying tradeoffs associated with implementation, readability, and performance.
A student compares a counted loop with a condition-controlled loop for processing incoming entries and selects the structure that fits the stopping rule. The explanation addresses ease of implementation, readability, and unnecessary work or performance costs.
Iteratively design and develop computational artifacts for practical intent, personal expression, or to address a societal issue by using events to initiate instructions.
A student develops an interactive recycling guide whose buttons and selection changes trigger relevant instructions. User trials lead to revised navigation, and the student demonstrates how the event-driven behavior supports the guide's purpose.
Decompose problems into smaller subproblems through systematic analysis, using constructs such as procedures, modules, and/or classes.
A student analyzes a course-planning application and separates course storage, prerequisite checking, and schedule display into modules or classes. The design specifies inputs, outputs, and responsibilities so each subproblem can be implemented and tested separately.
Decompose a booking application
Teach it
After the software-engineering reading, ask students to analyze a room-booking application and separate request validation, conflict detection, storage, and display into modules or procedures.
Assess it
Keep a responsibility diagram with inputs, outputs, and testable subproblems.
Look for: Covers the major requirements; gives each part a clear responsibility; specifies how parts exchange information.
Try next: Introduce cancellation and ask which responsibilities and interfaces need revision.
Resource: CS Field Guide · Software Engineering
High-school chapter; pair with the SDLA design task below.
Create computational artifacts using modular design.
A student implements a small application with separate input, calculation, and display modules that communicate through defined interfaces. Changing the display requires little or no change to the calculation module, demonstrating the value of modular design.
Implement and replace a module
Teach it
Use a small multi-file Python project to separate data input, calculations, and presentation. Students implement a common interface and then replace one display module.
Assess it
Collect the working project and a demonstration before and after replacement.
Look for: Creates functioning modules; passes data through defined interfaces; changes one module without unnecessary changes elsewhere.
Try next: Provide a new output format and ask students to explain the minimal changes needed.
Resource: Python tutorial · Modules
Technical reference; assumes functions and basic Python. Use an environment that supports multiple files.
Systematically design programs for broad audiences by incorporating feedback from users.
A student gathers feedback from intended users with varied language, device, and accessibility needs, turns that feedback into requirements, and tests a prototype. The student documents revisions and follow-up results rather than assuming one user's preferences represent everyone.
Explain the limitations of licenses that restrict use of computational artifacts when using resources such as libraries.
Given the stated terms for two sample libraries, a student identifies restrictions or obligations affecting modification and redistribution of a class application. The student explains how those terms influence library selection and the notices or permissions the project would need.
Iteratively evaluate and refine a computational artifact to enhance its performance, reliability, usability, and accessibility.
A student evaluates a web application for loading speed, incorrect inputs, navigation clarity, and keyboard access. The student makes targeted revisions and uses before-and-after measurements and user trials to show improvements across performance, reliability, usability, and accessibility.
Improve a program in four dimensions
Teach it
Use a class application and the HCI chapter as one evaluation resource. Students also test load time, invalid-input handling, navigation, and keyboard access, then make targeted improvements.
Assess it
Keep baseline observations, revised code, and comparable retests or user trials.
Look for: Addresses performance, reliability, usability, and accessibility; ties revisions to evidence; verifies improvements and notes remaining tradeoffs.
Try next: Ask whether a faster version is acceptable if keyboard operation becomes harder, and require justification.
Resource: CS Field Guide · Human Computer Interaction
High-school reference; younger students use the teacher-prepared task below.
Design and develop computational artifacts working in team roles using collaborative tools.
A team develops an application using an issue tracker, shared repository, and design documents. A student fulfills an assigned role, reviews a teammate's contribution, and coordinates an interface change so the integrated program works.
Document decisions made during the design process using text, graphics, presentations, and/or demonstrations in the development of complex programs.
A student maintains a design log with diagrams, short decision notes, and demonstrations of major versions. For one substantial change, the student identifies alternatives, explains the choice, and shows its effect on the program.
Impacts of Computing (IC)
Evaluate the ways computing impacts personal, ethical, social, economic, and cultural practices.
A student evaluates a fictional recommendation platform from personal, ethical, social, economic, and cultural perspectives. The student weighs benefits and harms for different groups and supports a reasoned conclusion with evidence from a supplied case study.
Identify impacts of bias and equity deficit on design and implementation of computational artifacts and apply appropriate processes for evaluating issues of bias.
A student audits a classroom model trained on a supplied synthetic dataset, compares error rates across relevant groups, and checks for underrepresented cases. The student documents a possible source of bias, tests a revision, and explains both its effect and the limits of the evaluation.
Audit and revise a biased classifier
Teach it
Extend the introductory AI material with a supplied synthetic dataset containing uneven category coverage. Students compare errors across groups, inspect the data, revise the model, and test on held-out cases.
Assess it
Collect group-level error counts, the revision rationale, and before-and-after evaluation.
Look for: Measures an uneven outcome; investigates a plausible source; applies and evaluates a corrective process without claiming that one test proves fairness.
Try next: Provide a new group or context and ask what additional evaluation is needed.
Resource: micro:bit · Developing AI literacy
Unit for ages 11–14; CreateAI activities need compatible equipment. Extend the evaluation for high school.
Demonstrate ways a given algorithm applies to problems across disciplines.
A student applies the same shortest-path algorithm to a transportation map and a game map, defining nodes, edges, and weights for each. Worked examples show how one computational method solves problems in two different fields.
Study, discuss, and think critically about the potential impacts and implications of emerging technologies on larger social, economic, and political structures, with evidence from credible sources.
A student develops an evidence-based briefing about an emerging technology, citing credible sources and distinguishing demonstrated capabilities from predictions. The briefing weighs possible effects on work, social relationships, and public decision-making and addresses a competing interpretation.
Use collaboration tools and methods to increase connectivity with people of different cultures and careers.
In a teacher-arranged exchange, a student uses shared documents or video discussion to collaborate with people from another cultural setting or career field. The student adapts questions and communication practices, incorporates what was learned, and documents a contribution to shared work.
Explain the beneficial and harmful effects that intellectual property laws can have on innovation.
Using a teacher-provided intellectual-property case, a student explains how protecting a creator's work could encourage investment while limiting some kinds of reuse or follow-on invention. The response traces both effects and supports a balanced conclusion about innovation.
Explain the privacy concerns related to the collection and generation of data through automated processes.
A student maps how a fictional fitness app automatically collects location and activity data and can generate inferences about routines. The student distinguishes collected data from inferred information and explains privacy concerns related to sharing, retention, and unexpected uses.
Map collected and inferred data
Teach it
After the reading, provide fictional app event records such as times, locations, and purchases. Students diagram direct collection, generated inferences, storage, and potential sharing.
Assess it
Collect the data-flow diagram and a short privacy analysis.
Look for: Separates observed data from inferred information; identifies an unexpected use or disclosure; explains why retention or combination can increase privacy concerns.
Try next: Remove names from the records and ask which inferences or re-identification concerns may remain.
Resource: CS Field Guide · Big Data
High-school reading; teacher supplies the fictional case and sample records described below.
Evaluate the social and economic implications of privacy in the context of safety, law, or ethics.
Using a fictional proposal for location tracking to improve community safety, a student weighs safety benefits against privacy, unequal impacts, and economic incentives. The student considers legal questions and ethical concerns raised in supplied materials and recommends justified limits and safeguards.
Grades 9–12 Specialty30 standards
Computing Systems (CS)
Illustrate ways computing systems implement logic through hardware components.
A student builds or simulates a half-adder from logic gates, provides truth tables, and traces the sum and carry outputs for every input pair. The explanation connects Boolean operations to the circuit's hardware components.
Model a hardware logic circuit
Teach it
Select Circuits & Logic, then have students build or simulate a half-adder using XOR and AND gates. Trace how two binary inputs produce sum and carry outputs.
Assess it
Collect a gate diagram, full truth table, and circuit demonstration or paper trace.
Look for: Uses gates with correct logic; produces correct sum and carry for all four input pairs; connects Boolean operations to hardware signals.
Try next: Ask how two half-adders could be combined to accept a carry input.
Resource: Code.org · How Computers Work video collection
Video collection; choose Circuits & Logic. Add a circuit simulator or paper gate model.
Categorize and describe the different functions of operating system software.
A student categorizes operating-system functions into process scheduling, memory management, file management, device input/output, and access control. A traced example of opening and running a program explains how several of these services interact.
Networks and the Internet (NI)
Examine the scalability and reliability of networks, by describing the relationship between routers, switches, servers, topology, and addressing.
A student compares two network designs for a growing school, explaining how switches connect local devices, routers connect networks, servers provide services, and addressing identifies destinations. The analysis identifies bottlenecks and single points of failure and justifies changes for growth and reliability.
Explain how the characteristics of the Internet influence the systems developed on it.
A student explains why an Internet-based messaging application must handle variable delay, disconnections, and interoperable protocols. A design sketch connects those characteristics to features such as queued delivery, retries, and duplicate-message handling.
Develop solutions to security threats.
In an isolated classroom application, a student identifies a threat such as unauthorized access to another test user's records and implements an appropriate access check. Tests show that permitted actions still work and prohibited actions are rejected.
Analyze cryptographic techniques to model the secure transmission of information.
Using established cryptographic tools in a controlled exercise, a student models encrypted transmission and analyzes confidentiality, sender authentication, and integrity separately. The student explains the roles of keys, identifies what happens if a key is compromised, and evaluates limitations of the chosen approach.
Analyze what encryption protects
Teach it
Use the chapter's teaching models to compare shared-key and public-key approaches. Students trace sender, receiver, keys, and an observer, then analyze interception and key compromise.
Assess it
Collect an annotated transmission model and a comparison of confidentiality, authentication, and integrity needs.
Look for: Explains who needs which key; distinguishes encryption from proving identity or detecting tampering; identifies a limitation or failure condition.
Try next: Ask what changes if a secret key is exposed even though the ciphertext stays unchanged.
Resource: CS Field Guide · Coding — Encryption
High-school chapter; teaching ciphers model concepts and are not suitable for protecting real data.
Data and Analysis (DA)
Select and use data collection tools and techniques to generate data sets.
A student chooses between sensors, an approved survey, or a public-data interface to investigate a question and explains the choice. The resulting dataset includes documented fields, units, sampling procedures, and checks for missing values or collection errors.
Design a reliable collection plan
Teach it
Extend the light-monitoring project: students compare manual logs with sensor collection, justify a method, select sampling intervals, and collect a dataset with documented fields.
Assess it
Keep the collection plan, dataset, and quality-check log.
Look for: Matches tools and sampling to the question; documents units and procedures; detects missing or implausible observations and records how they were handled.
Try next: Ask how the collection design should change to capture brief events previously missed.
Resource: micro:bit · Energy awareness
Unit; micro:bit needed for collection. A supplied dataset can support analysis-only work.
Use data analysis tools and techniques to identify patterns in data representing complex systems.
A student uses code or analysis software to join and explore transit ridership, weather, and calendar data. The student identifies a pattern, investigates missing data and possible confounding factors, and explains why an association alone does not establish causation.
Evaluate the ability of models and simulations to test and support the refinement of hypotheses.
A student uses a traffic simulation to test whether changing signal timing reduces queues, compares results across repeated runs, and examines sensitivity to assumptions. The student refines the hypothesis and explains which claims require real-world evidence beyond the simulation.
Algorithms and Programming (AP)
Describe how artificial intelligence drives many software and physical systems.
A student explains how an image classifier, a recommendation system, and a robot use inputs to produce predictions or decisions that guide actions. The response identifies the role of training data or encoded knowledge and explains how errors can affect the larger system.
Implement an algorithm that uses artificial intelligence to overcome a simple challenge.
A student implements a simple nearest-neighbor classifier for teacher-provided plant measurements, tests it on examples excluded from training, and reports correct and incorrect classifications. The student explains how the algorithm chooses a class and one limitation of the approach.
Build and evaluate a movement classifier
Teach it
Use CreateAI to train a simple movement model, then integrate its predictions into a student-written program that triggers an action. Reserve separate examples for testing and compare predicted with intended classes.
Assess it
Collect the program, training description, and held-out test results including mistakes.
Look for: Uses model output to solve a defined challenge; demonstrates the programmed response; evaluates performance on examples not used to train the model.
Try next: Change movement speed or orientation and ask students to test and explain the effect.
Resource: micro:bit · First lessons with CreateAI
Introductory unit; specialty students extend it with held-out testing. Compatible micro:bit/CreateAI equipment required.
Implement searching and sorting algorithms to solve computational problems.
A student implements a sorting algorithm and a search algorithm for a catalog, tests ordinary and edge cases, and demonstrates successful and unsuccessful searches. If binary search is used, the student ensures that the data is sorted first.
Implement a searchable catalog
Teach it
Use the searching and sorting material to implement a sort and a search for a small catalog. Students explain any ordering precondition rather than relying only on built-in sorting or search calls.
Assess it
Keep the algorithm implementations and tests for duplicates, missing targets, and empty input.
Look for: Sorting preserves all records in order; searching returns a correct result or absence; handles stated preconditions and edge cases.
Try next: Add a second search key and ask how the data preparation or algorithm must change.
Resource: CS Field Guide · Algorithms
High-school chapter; students implement the algorithms in a classroom programming environment.
Evaluate algorithms in terms of their efficiency.
A student compares linear and binary search by counting comparisons for increasing input sizes on appropriately prepared data. The analysis explains growth in work, considers sorting costs, and identifies when each approach is a reasonable choice.
Measure algorithm growth
Teach it
Compare two search or sorting algorithms by counting a clearly defined operation over increasing input sizes. Students compare observed growth with a reasoned prediction.
Assess it
Collect code or traces, a results table, and a graph with an efficiency explanation.
Look for: Uses comparable inputs and operation counts; explains growth rather than one timing result; considers preparation costs and input characteristics.
Try next: Provide a nearly sorted dataset and ask whether the same efficiency conclusion necessarily follows.
Resource: CS Field Guide · Complexity and Tractability
Advanced reading; teach basic algorithm tracing before comparing growth rates.
Compare and contrast fundamental data structures and their uses.
A student compares a list, stack, queue, and key-value map, describing their typical operations and access patterns. The student selects structures for an undo feature and a waiting-line simulation and justifies both choices with small working examples.
Choose a suitable data structure
Teach it
Use the list, stack, queue, and dictionary sections to prototype an undo history, waiting line, and identifier lookup. Students choose a structure for each task and compare operations.
Assess it
Collect small runnable examples and a selection rationale.
Look for: Uses access order correctly; explains the relevant operations; justifies tradeoffs in lookup, insertion, or removal rather than choosing by familiarity.
Try next: Change the waiting-line requirement to include priority and ask whether the original structure still fits.
Resource: Python tutorial · Data Structures
Technical reference; assumes basic Python. Provide a runnable starter and sample data.
Demonstrate the flow of execution of a recursive algorithm.
A student traces a recursive factorial procedure for a small input, showing each call, the base case, and the returned values as calls finish. The student explains how progress toward the base case prevents endless recursion.
Analyze a large-scale computational problem and identify generalizable patterns or problem components that can be applied to a solution.
A student analyzes a district-wide room-booking problem and identifies repeated tasks such as validating requests, checking conflicts, and assigning resources. The student defines reusable representations and operations and demonstrates them on several different buildings or room types.
Construct solutions to problems using student-created components, such as procedures, modules, and/or objects.
A student creates reusable validation, storage, and reporting components and assembles them into a working application. Defined interfaces and component tests show how the student's own procedures, modules, or objects support the overall solution.
Demonstrate code reuse by creating programming solutions using libraries and APIs.
A student builds a visualization using an existing charting library and an approved data API. The student explains the reused functionality, handles an unavailable or unexpected response, and shows how the application's own code connects the components.
Plan and develop programs for broad audiences using a specific software life cycle process.
A student follows a stated iterative development process for an application, documenting audience requirements, a backlog, prototype cycles, testing, and a release review. Feedback from varied intended users influences both priorities and completed revisions.
Develop programs for multiple computing platforms.
A student develops an application that runs on both a desktop and a mobile platform, adapts input and layout appropriately, and tests core tasks on each. The student records platform differences and fixes issues revealed by testing.
Identify and fix security issues that might compromise computer programs.
In a teacher-provided practice program, a student finds that a restricted action is protected only by a hidden interface button. The student adds an authorization check where the action is processed and verifies rejection of an unauthorized test request.
Develop and use a series of test cases to verify that a program performs according to its design specifications.
A student converts application requirements into a test matrix covering expected behavior, boundary values, invalid input, and relevant failure conditions. The student runs the tests, records expected versus actual outcomes, and retests fixes against the specifications.
Test against a written specification
Teach it
Give students a small program specification with valid ranges and error behavior. They write automated tests where appropriate and a manual checklist for behaviors outside the test framework.
Assess it
Collect a requirement-to-test matrix, actual results, and retests of corrected failures.
Look for: Links tests to requirements; covers normal, boundary, and invalid cases; verifies fixes while retaining tests for previously working behavior.
Try next: Change one requirement and ask students to identify which expected results must change.
Resource: Python documentation · unittest
Technical reference; teacher provides a small specification and Python project.
Modify an existing program to add additional functionality and discuss intended and unintended implications.
A student adds offline saving to an existing note-taking application and demonstrates the intended benefit during disconnection. The student also tests and discusses unintended effects such as stale copies or conflicting edits and explains how the revision handles them.
Evaluate key qualities of a program through a process such as a code review.
A student reviews a peer's program using criteria for correctness, readability, efficiency, maintainability, and accessibility where relevant. Specific comments cite code or observed behavior, explain consequences, and recommend changes that the student checks after revision.
Use version control systems, integrated development environments (IDEs), and collaborative tools and practices (e.g., code documentation) while developing software within a group.
A student develops a feature in an IDE on a version-control branch, writes useful commit messages, documents the change, and requests peer review. The team resolves a conflicting edit and integrates the feature while preserving a clear history of contributions.
Collaborate through a reviewed change
Teach it
Complete the guided repository exercise, then extend it in a class team: create a feature branch, edit code in an IDE, document the change, and exchange a review before merging.
Assess it
Keep branch and commit history, the review conversation, documentation, and an integrated demonstration.
Look for: Uses version control and an IDE purposefully; contributes useful documentation and review; integrates changes while preserving a traceable history.
Try next: Arrange a small conflicting edit in a practice file and ask the team to resolve and explain it.
Resource: GitHub Skills · Introduction to GitHub
Guided exercise; GitHub account required. Use a school-approved repository and editor.
Compare multiple programming languages, and discuss how their features make them suitable for solving different types of problems.
A student implements a small comparable task in two languages and compares relevant features such as typing, available libraries, execution environment, and memory management. The student justifies which language better fits a stated project instead of declaring one universally best.
Impacts of Computing (IC)
Evaluate computational artifacts with regard to improving their beneficial effects and reducing harmful effects on society.
A student evaluates a fictional route-planning application for benefits such as shorter trips and harms such as shifting traffic onto residential streets. The student proposes a design change, compares outcomes for affected groups, and explains remaining tradeoffs.
Evaluate and improve a recommendation tool
Teach it
Provide a fictional school-resource recommender with sample inputs, rankings, and user scenarios. Students evaluate benefits and harms for different users, propose a change, and compare the revised outcomes.
Assess it
Collect the artifact critique, before-and-after rankings or design, and an impact argument.
Look for: Identifies concrete benefits and harms; ties a design change to an affected group; evaluates whether the change improves outcomes and what tradeoffs remain.
Try next: Introduce a user whose needs were missing from the scenarios and ask for a revised evaluation.
Resource: CS Field Guide · Big Data
High-school reading; teacher supplies the fictional case and sample records described below.
Evaluate how computational innovations that have revolutionized aspects of our culture might evolve.
A student traces how a computational innovation such as digital mapping changed everyday practices, then develops two plausible future scenarios. The student uses evidence, identifies assumptions and constraints, and explains why the scenarios are possibilities rather than certain predictions.
Evaluate the impact of equity, access, and influence on the distribution of computing resources in a global society.
Using a supplied international connectivity dataset and case studies, a student analyzes how cost, infrastructure, language, accessibility, and decision-making power affect access to computing resources. The student evaluates a proposed intervention and explains who it may still leave underserved.
Debate laws and regulations that impact the development and use of software.
In a structured debate about a teacher-provided software regulation proposal, a student builds an evidence-based argument, responds to a counterargument, and considers effects on developers and users. The student distinguishes what the proposal says from personal policy preferences and acknowledges a significant tradeoff.
Curriculum options already listed on SDLA
Explore these product profiles when planning a broader course sequence. They complement the selected teaching examples; a listing does not establish coverage of every standard.
- Code.org — introductory computer science curriculum and teacher resources.
- CodeHS Pro — secondary courses, code submissions, and assessment tools.
- Tynker — creative programming and progression from blocks to text.
- CodeCombat — game-based text-programming practice.
Source: New CA Computer Science Standards.docx. Standard codes and wording are retained from the supplied document.







































































