Grades 9–12 reading level
CS Fundamentals — Course E
Adapted with AI from the original open resource by Code.org. Nothing is invented — only the reading level changes.
COURSE E
Ch. 1: 1, 2, 3, 4 | Ch. 2: 5, 6, 7 | Ch. 3: 8, 9 | Ch. 4: 10 | Ch. 5: 11, 12, 13 | Ch. 6: 14, 15, 16, 17 | Ch. 7: 18
Course E
Course E was designed with fourth graders in mind, but it works as a solid refresher for anyone. It opens with a quick review of concepts taught in Courses C and D — enough to bring beginners up to speed while reminding more experienced students why computer science is worth getting excited about. Students will practice writing algorithms (step-by-step instructions for solving a problem), along with loops, conditionals, and events, before moving on to functions. By the end of the course, students complete a capstone project — a final piece of work they can proudly show off to friends and family.
Journaling
Each lesson includes journaling prompts. Journals double as scratch paper for building, testing, and planning out code. Over time, a journal becomes a handy resource students can look back on when they're stuck on a tricky problem later in the course.
Think Spot Journal — Student Handout
Debugging
Whether you're a total beginner or a professional software engineer, debugging — finding and fixing mistakes in your code — is a core skill that doesn't get enough credit. In fact, most of the time your students spend "coding" will actually be spent fixing bugs. To help students take charge of this process themselves, we've provided a handy reference guide. For more strategies on teaching debugging in your classroom, check the "Debugging" section of the CS Fundamentals Curriculum Guide.
Debugging Guide — Student Handout
Chapter 1: Ramp Up
Lesson 1: Sequencing in the Maze — Skill Building | Ramp Up
Learn how to write your very first programs.
Lesson 2: Drawing with Loops — Skill Building | Ramp Up
Loops make it possible to create even more impressive images with Artist.
Lesson 3: Conditionals in Minecraft: Voyage Aquatic — Skill Building | Ramp Up
Explore conditionals — instructions that only run under certain conditions — in the world of Minecraft.
Lesson 4: Conditionals with the Farmer — Skill Building | Ramp Up
Tell the computer what to do under specific conditions in this fun, challenging set of puzzles.
Chapter Commentary: Ramp Up
Chapter 2: Sprites
Lesson 5: Simon Says — Unplugged | Behaviors
Play a game and think about which commands are needed to get the correct result.
Lesson 6: Swimming Fish with Sprite Lab — Skill Building | Sprites
Learn how to create and edit sprites — the characters and objects that appear in your programs.
Lesson 7: Alien Dance Party with Sprite Lab — Skill Building | Sprites
Build an interactive project you can share with classmates.
Chapter Commentary: Sprites
Chapter 3: Digital Citizenship
Lesson 8: Private and Personal Information — Unplugged | Online Safety
The internet is fun and exciting, but staying safe matters too. This lesson explains the difference between information that's safe to share online and information that should stay private.
Lesson 9: About Me with Sprite Lab — Application | Online Safety
Create an interactive poster using Sprite Lab, applying what you've learned about sharing personal versus private information online.
Chapter Commentary: Digital Citizenship
Chapter 4: Impacts of Computing
Lesson 10: Designing for Accessibility — Unplugged | Impacts of Computing
Learn about accessibility — designing technology that works for people with different needs — and the value of empathy by brainstorming accessible solutions for hypothetical apps.
Chapter Commentary: Impacts of Computing
Chapter 5: Nested Loops
Lesson 11: Nested Loops in Maze — Skill Building | Nested Loops
A loop inside another loop inside another loop — what does that even mean? This lesson explains what happens when you place one loop inside another.
Lesson 12: Fancy Shapes using Nested Loops — Skill Building | Nested Loops
More nested loops — this time you'll create some amazing drawings with them.
Lesson 13: Nested Loops with Frozen — Application | Nested Loops
Anna and Elsa are excellent ice skaters, but they need your help creating patterns in the ice. Use nested loops to make something truly cool.
Chapter Commentary: Nested Loops
Chapter 6: Functions
Lesson 14: Songwriting — Unplugged | Functions
Even rock stars need programming skills. Learn about functions — reusable chunks of code — using song lyrics.
Lesson 15: Functions in Minecraft — Skill Building | Functions
Can you figure out how to use functions to write the most efficient code?
Lesson 16: Functions with Harvester — Skill Building | Functions
Functions will save you a lot of work as you help the farmer bring in her harvest.
Lesson 17: Functions with Artist — Skill Building | Functions
Create complex drawings more easily using functions.
Chapter Commentary: Functions
Chapter 7: End of Course Project
Lesson 18: End of Course Project
Big projects take time and careful planning. Find your inspiration, build a plan, and let your creativity loose.
Chapter Commentary: End of Course Project
If you are interested in licensing Code.org materials for commercial purposes, contact us.
COURSE E
Ch. 1: 1, 2, 3, 4 | Ch. 2: 5, 6, 7 | Ch. 3: 8, 9 | Ch. 4: 10 | Ch. 5: 11, 12, 13 | Ch. 6: 14, 15, 16, 17 | Ch. 7: 18
Lesson 1: Sequencing in the Maze
Overview
In this set of puzzles, students begin with an introduction to (or review of, depending on your class's experience) Code.org's online workspace. Videos will walk through the basic tools available, including the Run, Reset, and Step buttons, as well as how to drag, delete, and connect Blockly blocks (the puzzle-piece-style instructions used to build a program). From there, students practice sequencing — putting instructions in the correct order — and debugging skills in the maze.
Debugging is a core part of learning to program. Students will run into puzzles that have already been "solved," but incorrectly. They'll need to step through the existing code to spot the errors — things like loops that don't work right, missing blocks, extra blocks, or blocks placed out of order.
Purpose
Every classroom has a range of skill levels. Some of your students may already be confident programmers, while others are just getting started. To level the playing field, we've built these ramp-up lessons, which can serve as either an introduction or a review of using Code.org and basic computer science ideas.
Some students may find this lesson frustrating, simply because debugging is hard. But debugging is a crucial skill in computer programming — professional computer scientists constantly have to hunt down bugs in their own code. Working through bugs forces students to identify problems and push past them, building critical thinking and problem-solving skills along the way.
Agenda
- Warm Up (15 min): Introduction, Vocabulary
- Main Activity (30 min): Online Puzzles
- Wrap Up (5–10 min): Journaling
- Extended Learning
View on Code Studio
Objectives
Students will be able to:
- Put movement commands in the correct sequential order in a program.
- Fix an existing program to correct errors.
- Break a long sequence of instructions into the largest repeatable chunk.
- Predict where a program will fail.
- Fix an existing program to correct errors.
- Reflect on the debugging process in an age-appropriate way.
Preparation
- Try the puzzles yourself first to spot potential trouble areas for your class.
- (Optional) Choose a few puzzles to work through together as a group.
- Make sure every student has a journal.
- Review the Debugging Recipe student handout with the class.
Links
Heads up: make a copy of any documents you plan to share with students.
For the Students
- Unplugged Blocks (Courses C–F) — Manipulatives (Make a Copy)
- Debugging Recipe — Student Handout (Make a Copy)
Vocabulary
- Bug — A part of a program that doesn't work correctly.
- Debugging — Finding and fixing problems in an algorithm or program.
- Program — An algorithm that has been turned into code a machine can run.
- Programming — The skill and practice of creating a program.
Teacher Tip: Show students the right way to help a classmate:
- Don't sit in the classmate's chair.
- Don't use the classmate's keyboard.
- Don't touch the classmate's mouse.
- Make sure the classmate can explain the solution out loud before you walk away.
Teaching Guide
Warm Up (15 min)
Introduction
Ask students to think about problems they solve in everyday life:
- How do you fix something that isn't working?
- Do you follow a specific series of steps?
Explain: Some puzzles in this lesson have already been "solved" for you — but they don't work correctly. We call these problems "bugs," and your job is to "debug," or fix, them.
Depending on your class's experience level, students may be learning these vocabulary words for the first time or reviewing familiar ones. We recommend using each word in a sentence even if you don't explain the definition outright.
Vocabulary
This lesson introduces four key terms:
- Program (pruh-GRAM) — An algorithm that has been turned into code a machine can run.
- Programming (PRUH-gram-ing) — The skill of creating a program.
- Bug — An error in a program that keeps it from running the way it's supposed to.
- Debugging (dee-BUG-ing) — Finding and fixing errors in programs.
Say to students:
"Debugging is a process. First, you have to recognize there's an error somewhere in your program. Then you work through the program step by step to track it down. Try the first step — did it work? Then the second — how about now? If you check that everything works line by line, you'll eventually reach the point where the code stops doing what it's supposed to. That's your bug. Once you've found it, you can fix it."
If it helps build excitement, you can introduce Scrat from Ice Age as the character featured in today's puzzles. If students don't know Scrat, show a short video of the accident-prone squirrel to set the mood.
Main Activity (30 min)
Online Puzzles
Teachers play a key role in supporting a collaborative, energetic classroom during computer science lessons. During online activities, your main job is to encourage and support rather than solve problems for students — these lessons are designed to be student-centered. Some strategies:
- Use Pair Programming (working in partner teams) whenever possible during the activity.
- Encourage students to ask their partner first when they have a question or hit a challenge.
- If a pair can't solve it, they can ask a nearby group who might already know the answer.
- Remind students to work through the debugging process before coming to you.
- Ask stuck students to describe the problem: What is the code supposed to do? What does it actually do? What does that tell you?
- Remind frustrated students that frustration is part of learning, and persistence pays off.
- If a student is still stuck after all this, ask guiding questions that help them spot the error themselves.
Before students start on the computers, remind them of the benefits of pair programming and asking peers for help. Se
Original licensed under CC BY-NC-SA 4.0. This adaptation is provided free by OER.ai.