OER.ai

← CS Fundamentals — Course D

Grades 9–12 reading level

CS Fundamentals — Course D

Adapted with AI from the original open resource by Code.org. Nothing is invented — only the reading level changes.

Course D

Chapters:
Ch. 1 (Lessons 1–4) · Ch. 2 (Lessons 5–6) · Ch. 3 (Lessons 7–9) · Ch. 4 (Lessons 10–14) · Ch. 5 (Lessons 15–16) · Ch. 6 (Lesson 17) · Ch. 7 (Lesson 18)

Course D is designed for students who read at about a third-grade level. Angles and other math concepts are introduced through videos and hints that guide students step by step.

The course opens with a review of ideas from Courses A, B, and C. This review reintroduces or reinforces basic concepts such as repeat loops (instructions that repeat a set number of times) and events (actions that happen in response to a trigger, like a click). From there, students deepen their understanding of algorithms (step-by-step instructions for completing a task), nested loops (loops placed inside other loops), while loops (loops that repeat as long as a condition is true), conditionals (instructions that run only if a certain condition is met), and events. Lessons on digital citizenship—how to act responsibly and safely online—are included as well. The course is built to establish strong basic skills before moving into a wider range of new topics.

Journaling

Lessons in this course include journaling prompts. Students can also use their journals as scratch paper for building, debugging, and planning their approach to a problem. Over time, journals become a valuable resource students can look back on when they run into tougher problems.

Think Spot Journal — Student Handout

Debugging

Debugging—the process of finding and fixing errors in code—is a skill every programmer needs, from beginners to professionals, yet it's often underappreciated. Students will likely spend more time debugging than writing new code. To help students take charge of this process, we provide a handy reference guide they can use while coding. For more guidance on teaching debugging, see the "Debugging" section of the CS Fundamentals Curriculum Guide.

Debugging Guide — Student Handout


Chapter 1: Sequencing

Lesson 1: Graph Paper Programming
Unplugged | Sequencing
In this lesson, you will "program" a classmate to draw a picture using a set of instructions.

Lesson 2: Introduction to Online Puzzles
Skill Building | Sequencing
This lesson builds the foundational skills you'll need for the rest of the course.

Lesson 3: Relay Programming
Unplugged | Sequencing
Remember creating drawings with code earlier in the course? In this lesson, you'll do something similar—but this time, as part of a team.

Lesson 4: Debugging with Laurel
Skill Building | Sequencing
Have you ever gotten stuck while coding? This lesson introduces the process of debugging—finding and fixing problems in your code.

Chapter Commentary: Sequencing


Chapter 2: Events

Lesson 5: Events in Bounce
Skill Building | Events
Ever wanted to play video games during class? In this lesson, you'll build your own game using events.

Lesson 6: Build a Star Wars Game
Skill Building | Events
Build your own Star Wars–themed game in this lesson.

Chapter Commentary: Events


Chapter 3: Loops

Lesson 7: Loops in Ice Age
Skill Building | Loops
Use the repeat block to help Scrat reach the acorn as efficiently as possible.

Lesson 8: Drawing Shapes with Loops
Skill Building | Loops
Loops make it simple to create striking images using the Artist tool.

Lesson 9: Nested Loops in Maze
Skill Building | Loops
What happens when you put a loop inside another loop? This lesson explains nested loops.

Chapter Commentary: Loops


Chapter 4: Conditionals

Lesson 10: Conditionals with Cards
Unplugged | Conditionals
Play a game where you earn points only when certain conditions are met.

Lesson 11: If/Else with Bee
Skill Building | Conditionals
Now that you understand conditionals, program Bee to use them while collecting honey and nectar.

Lesson 12: While Loops in Farmer
Skill Building | Conditionals
Loops are a powerful tool in coding. This lesson introduces a new type: the while loop, which repeats as long as a condition remains true.

Lesson 13: Until Loops in Maze
Skill Building | Conditionals
Discover what you can accomplish using until loops.

Lesson 14: Harvesting with Conditionals
Skill Building | Conditionals
It isn't always obvious which type of conditional to use. This lesson gives you practice deciding.

Chapter Commentary: Conditionals


Chapter 5: Binary

Lesson 15: Binary Images
Unplugged | Binary
Learn how computers store images using binary—a language made up of only two symbols, 0 and 1.

Lesson 16: Binary Images with Artist
Skill Building | Binary
Learn to create images using only 0s and 1s.

Chapter Commentary: Binary


Chapter 6: Digital Citizenship

Lesson 17: Digital Citizenship
Unplugged | Online Safety
Some information isn't safe to share online. This lesson helps you tell the difference between information that's safe to share and information that should stay private.

Chapter Commentary: Digital Citizenship


Chapter 7: End of Course Project

Lesson 18: Dance Party
End of Course Project
Time to celebrate! Program your own interactive dance party.

Chapter Commentary: End of Course Project


If you are interested in licensing Code.org materials for commercial purposes, contact us.


Lesson 1: Graph Paper Programming

Overview

By "programming" each other to draw pictures, students get a fun, hands-on introduction to core programming concepts. The class begins with students using symbols to instruct one another on how to color squares on graph paper, aiming to recreate an existing image. If time allows, the lesson wraps up with students designing and recreating their own images.

Purpose

This activity builds critical thinking skills and enthusiasm for the course while introducing key programming concepts used throughout. Because it's an unplugged activity (no computers required), even students intimidated by technology can build a solid understanding of ideas like sequencing (following steps in order) and algorithms. In this lesson, students will learn how to create an algorithm and then translate it into a program.

Agenda

Warm Up (10 min) — Introduction to Graph Paper Programming
Main Activity (30 min) — Practice Together; The Students' Turn
Wrap Up (15 min) — Journaling / Flash Chat
Optional Assessment (10 min) — Extended Learning

View on Code Studio

Objectives

Students will be able to:

  • Reframe a sequence of steps as an encoded program
  • Explain the challenges of translating instructions from human language into machine language

Preparation

  • (Optional) Watch the Lesson in Action video.
  • Print one worksheet and one assessment per student.
  • Make sure every student has a journal.

Links

Heads up: Please make a copy of any documents you plan to share with students.

For Teachers:

  • Graph Paper Programming — Lesson in Action Video
  • Graph Paper Programming — Worksheet Answer Key (Make a Copy)
  • Graph Paper Programming — Assessment Answer Key (Make a Copy)

For Students:

  • Graph Paper Programming — Activity Worksheet (Make a Copy)
  • Graph Paper Programming — Unplugged Video (download)
  • Graph Paper Programming — Assessment (Make a Copy)

Vocabulary

Algorithm — A list of steps for completing a task.
Program — An algorithm that has been translated into a form a machine can run.


Teaching Guide

Warm Up (10 min): Introduction to Graph Paper Programming

In this activity, students give each other coded instructions to create drawings, without letting the rest of their group see the original image. This warm-up sets the stage for the activity.

Display: Show one of the following videos to give students a sense of what robots can do:

  • Asimo by Honda (3:58)
  • Dancing Lego Robot (1:35)

Discuss: How do you think robots know how to do the things they do? Do they have brains that work like ours?

Discussion Goal: The point of this quick discussion is to highlight that although robots may seem to act like people, they're really just responding to their programming. Students may bring up robots from movies and TV that act very human-like. Push them to think about robots they've actually seen or heard of, such as Roombas or digital assistants like Amazon Alexa.

Guide the discussion toward the idea that people must program robots to carry out specific tasks using specific commands.

Main Activity (30 min): Practice Together

In this activity, students take turns acting as both programmer and robot, coloring in squares according to programs they write for each other.

Distribute: Give students 4x4 grids (or graph paper with 4x4 sections marked off), along with the image worksheet.

Display: Project or write these commands on the board. They're temporary, but they'll help students move from thinking in terms of an algorithm to thinking in terms of a program:

  • Move one square right
  • Move one square left
  • Move one square up
  • Move one square down
  • Fill in square with color

Say: "Today, we all get to program robots—and they're already in the room. It's you! We'll write programs using symbols with special meanings to help each other recreate a picture. First, we'll practice together, with me as the robot and you as the programmers. Then we'll break into groups so everyone gets a turn."

Display: Show both the image students will guide you through and a blank grid you'll fill in step by step. Keep the instructions, grid, and target image visible at the same time.

Remarks: Here's an image. Imagine I'm a robot equipped with an "Automatic Realization Machine" (ARM). These are the only instructions I understand. Starting at the upper left-hand corner, guide my ARM out loud using your words.

Model: Students might give instructions like these. As you follow each one, repeat it aloud so the class can track your progress:

  • Move One Square Right
  • Fill In Square with Color
  • Move One Square Right
  • Move One Square Down
  • Fill In Square with Color

Continue until the sample image is complete.

Capture: Write down each command so students can see the full list of steps used to create the image:

  • Move One Square Right
  • Fill In Square with Color
  • Move One Square Right
  • Move One Square Down
  • Fill In Square with Color

Say: "You just gave me a list of steps to complete a task. In programming, that's called an algorithm. Algorithms are useful because they're easy for you, the programmer, to understand. But what happens when we need to write out the algorithm for a more complicated drawing, like this one?"

Display: Show students a more complex image. Begin writing out the instructions needed to recreate it—students will quickly see that spelling out every step in full sentences becomes unwieldy:

  • Move One Square Right
  • Fill In Square with Color
  • Move One Square Right
  • Move One Square Right
  • Fill In Square with Color
  • Move One Square Down
  • Move One Square

Original licensed under CC BY-NC-SA 4.0. This adaptation is provided free by OER.ai.