Professional Documents
Culture Documents
Standards Alignment 5
Assessments 5
Course Overviews 8
Course A 8
Course B 10
Course C 12
Course D 14
Course E 16
Course F 18
Learning Tools 20
Lesson Structure 22
Unplugged and Plugged Activities 22
Components of a Lesson 22
Types of Levels 23
1
CS Fundamentals Curriculum Guide
All Code.org curriculum resources are free to use under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0
International License. Our technology is developed as an open-source project. Common Sense Media lessons are
shareable under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 license. No remixing permitted. View
detailed license information at creativecommons.org. Common Sense and other associated names and logos are
trademarks of Common Sense Media, a 501(c)(3) nonprofit organization (FEIN: 41-2024986).
Express courses consist primarily of skill-building lessons done on the computer. These courses can be delivered with or
without an actively involved teacher, making them a good fit for self-paced classrooms, stations, or independent learning.
The table below maps courses A-F and the two express courses:
2
CS Fundamentals Curriculum Guide
Teachers in Classrooms
We believe students learn best with the help of an empowered teacher. We design our materials for a classroom setting
and provide teachers robust supports that enable them to understand and perform their critical role in supporting student
learning. Because teachers know their students best, we empower them to make choices within the curriculum, even as
we recommend and support a variety of pedagogical approaches. Knowing that many of our teachers are new to
computer science themselves, our resources and strategies specifically target their needs.
Equity
We believe that acknowledging and shining a light on the historical inequities within the field of computer science is critical
to reaching our goal of bringing computer science to all students. We provide tools and strategies to help teachers
understand and address well-known equity gaps within the field. We recognize that some students and classrooms need
more support than others, and those with the greatest needs should be prioritized. All students can succeed in computer
science when given the right support and opportunities, regardless of prior knowledge or privilege. We actively seek to
eliminate and discredit stereotypes that plague computer science and alienate the very students we aim to reach.
Curriculum as a Service
We believe that curriculum is a service, not just a product. Along with producing high quality materials, we seek to build
and nourish communities of teachers by providing support and channels for communication and feedback. Our products
and materials are not static entities, but a living and breathing body of work that is responsive to feedback and changing
conditions. To ensure ubiquitous access to our curriculum and tools, they are web-based and cross-platform, and will
forever be free to use and openly licensed under a Creative Commons license.
3
CS Fundamentals Curriculum Guide
4
CS Fundamentals Curriculum Guide
Standards Alignment
Coding helps students with problem-solving, logic, cause and effect, and computational thinking. Computer Science
Fundamentals can also reinforce concepts related to English language arts and mathematics while students learn
computer science.
Assessments
At Code.org, we believe that you know your students best, which is why we do not attempt to automatically determine
what “grade” students should receive for any given lesson. Our tools allow you to see student progress and identify
learning evidence. Our teacher dashboard is continually evolving to highlight the work done by your class sections. Keep
an eye on Code.org Support (https://support.code.org/) for more information on changes and improvements.
5
CS Fundamentals Curriculum Guide
End of Course Project (1 lesson) Impacts of Computing (1 lesson) End of Course Project (1 lesson)
Each CS Fundamentals course has several concept chunks, and each chunk can have one or several lessons. In the next
section, you can find more details about the types of lessons in CS Fundamentals.
6
CS Fundamentals Curriculum Guide
Mini-Projects
These lessons ask students to apply what they have learned by
Example concept chunk with one
creating a more extensive program step-by-step. Mini-projects often
context-setting lesson, two skill-building
include a planning component, where students write their ideas on
lessons, and one mini-project
paper after exploring sample programs. Mini-projects provide students
with instructions and feedback to help them get started, but all choices
are up to the student by the end of the lesson.
7
CS Fundamentals Curriculum Guide
Course Overviews
Course A
Course A offers a computer science curriculum for beginning readers, including Kindergarten students. Students will learn
to program using commands like loops and events. The lessons featured in this course also teach students to
meaningfully collaborate with others, investigate different problem-solving techniques, persist in the face of challenging
tasks, and learn about internet safety.
The power of the internet allows students to experience and visit places
1 Safety in My Online they might not be able to see in person. On this virtual field trip, kids
Neighborhood can practice staying safe on online adventures.
Digital
Citizenship This skill-building lesson will give students an idea of what to expect
when they head to the computer lab. It begins with a brief discussion
2 Learn to Drag and Drop
introducing them to computer lab manners. Then they will progress into
using a computer to complete online puzzles.
8
CS Fundamentals Curriculum Guide
In this project lesson, students apply what they have learned about
Project 13 End of Course Project
sequencing and loops with the Artist.
9
CS Fundamentals Curriculum Guide
Course B
We developed Course B with first graders in mind. While the concepts in Course B parallel those in Course A, students
learn more sophisticated unplugged activities and work through a greater variety of puzzles. Students will learn the basics
of programming, collaboration techniques, investigation and critical thinking skills, persistence in the face of difficulty, and
internet safety. At the end of this course, students create games in the Play Lab programming environment.
Concept
# Lesson Name Description
Chunk
Students learn that the information they share online leaves a digital
Digital
1 footprint or "trail." Students compare different trails and think critically
Citizenship Digital Trails
about what kinds of information they want to leave behind.
Students will apply the programming concepts that they have learned
Programming with to the Harvester environment in this skill-building lesson. Students
5
Harvester will continue to develop sequential algorithm skills and start using the
debugging process.
10
CS Fundamentals Curriculum Guide
In this project lesson, students apply what they have learned about
Project 13 End of Course Project
sequencing and events in an open-ended project with Play Lab.
11
CS Fundamentals Curriculum Guide
Course C
We developed Course C for students in second grade. Students will create programs with sequencing, loops, and events.
They will investigate problem-solving techniques and develop strategies for building positive communities both online and
offline. By the end of the course, students will create interactive games that they can share.
Concept
# Lesson Name Description
Chunk
The internet is filled with all kinds of interesting people, but sometimes, some of
Digital them can be mean to each other. With this role play, help your students
1 Putting a STOP to
Citizenship Online Meanness
understand why it's often easier to be mean online than in person and how to
deal with online meanness when they see it.
My Loopy Robotic This context-setting lesson builds on the initial "My Robotic Friends" activity,
7
Friends Jr. featuring larger and more complicated designs.
Loops with Rey and This skill-building lesson has students using loops to help the Star Wars
8
BB-8 character BB-8 efficiently traverse a maze.
Loops
Harvesting Crops with Students loop new actions to help the harvester collect multiple veggies
9
Loops growing in large bunches in this skill-building lesson.
Mini-Project: Sticker This mini-project lesson builds on the understanding of loops from previous
10
Art lessons. Students will create unique artwork with the Artist.
In this context-setting lesson, students will learn that events are a great way
11 The Big Event
to add flexibility to a pre-written algorithm.
This lesson combines skill-building around events with a mini-project where
Events 12 Build a Flappy Game students get to build their own Flappy Bird game. At the end of the lesson,
students will customize their game by changing the visuals or rules.
Mini-Project: Chase This lesson combines skill-building around events with a mini-project where
13
Game students get to build their own animated game.
Students will collect data from a Play Lab project and visualize it using different
Data 14 Picturing Data
graphs in this exploratory lesson.
12
CS Fundamentals Curriculum Guide
13
CS Fundamentals Curriculum Guide
Course D
We created course D for students in third grade. The course begins with a review of the concepts found in earlier
courses, including loops and events. Afterward, students will develop their understanding of algorithms, nested loops,
while loops, conditionals, and more.
Concept
# Lesson Name Description
Chunk
Stronger, more secure online passwords are a good idea for everyone.
Digital
1 Use the tips in this lesson to help kids make passwords that are both
Citizenship Password Power-Up
secure and memorable.
14
CS Fundamentals Curriculum Guide
15
CS Fundamentals Curriculum Guide
Course E
We created Course E for students in fourth grade. The course begins with an introduction to the Sprite Lab programming
tool. Students will learn to make fun, interactive projects that reinforce what they’ll learn about online safety. Following
these lessons, students will engage in more complex coding. Students will learn about nested loops, functions, and
conditionals. By the end of the course, students will combine these concepts to solve challenging puzzles. The course
ends with an open-ended project where students create a game or drawing.
Concept
# Lesson Name Description
Chunk
In this context-setting lesson, students will play a game intended to get them
1 Follow the Algorithm
thinking about sequential instructions.
Swimming Fish with Students will program a simple animated underwater scene in this
Sprites 2
Sprite Lab skill-building lesson.
Alien Dance Party with Students will use events to make sprites move around the screen based on
3
Sprite Lab user input in this skill-building lesson.
Online tools are empowering for kids, and they also come with big
4 Be a Super Digital responsibilities. Show your students appropriate ways to take action and
Citizen resolve conflicts, from being upstanders to helping others in need.
It's in our students' nature to share and connect with others. Help your
5 Private and Personal students learn the difference between what's personal and what's best left
Digital Information private.
Citizenship Students will apply their understanding of sharing personal and private
6 Mini-Project: About Me
information on the web by creating an interactive poster in this mini-project.
This exploratory lesson helps students understand the challenges and
7 Digital Sharing benefits of respecting ownership and copyright, particularly in digital
environments.
This context-setting lesson shifts the focus from Sprite Lab to the Artist, a
8 Drawing with Loops
new tool that students will explore throughout the remainder of the course.
In this skill-building lesson, students will create intricate designs using the
Fancy Shapes using
9 Artist. The lesson ends with an opportunity for students to create their own
Nested Loops Nested Loops
designs.
Mini-Project: Design a This mini-project lesson takes students through a series of exercises to
10
Snowflake create snowflake images using characters from the Frozen movies.
This context-setting lesson will help students understand why combining
11 Songwriting
chunks of code into functions can be a helpful practice.
Functions In this skill-building lesson, students will begin to understand how functions
12 Functions in Minecraft
can be helpful!
13 Functions with Artist In this skill-building lesson, students will use functions with the Artist.
In this context-setting lesson, students will get the chance to practice
Conditionals in Minecraft:
14 content that they have learned up to this point, as well as getting a sneak
Voyage Aquatic
Conditionals peek at conditionals!
Conditionals with the This skill-building lesson focuses on a new type of programming puzzle,
15
Farmer featuring a farmer who needs to prepare her fields for planting crops.
16
CS Fundamentals Curriculum Guide
Conditionals In this skill-building lesson, students will use conditionals with functions to
16 Functions with Harvester
(cont.) harvest crops in Harvester.
In this exploratory lesson, students will learn about accessibility and the
Impacts of Designing for
17 value of empathy through brainstorming and designing accessible solutions
Computing Accessibility
for hypothetical apps.
This project lesson takes students through the process of designing,
Project 18 End of Course Project
developing, and showcasing new projects!
17
CS Fundamentals Curriculum Guide
Course F
We created Course F for students in the fifth grade. The course begins by looking at how users make choices in the apps
they use. Students then learn to make a variety of Sprite Lab apps that also offer choices for the user. In the later lessons
in the course, students will learn more advanced concepts, including variables and “for” loops. Students are given greater
autonomy and more choices throughout this course. By the end of the course, students will have created interactive
projects and artwork to share with their friends and family.
Concept
# Lesson Name Description
Chunk
As kids grow, they'll naturally start to communicate more online. But some of
Digital what they see could make them feel hurt, sad, angry, or even fearful. Help
5
Citizenship The Power of Words your students build empathy for others and learn strategies to use when
confronted with cyberbullying.
18
CS Fundamentals Curriculum Guide
Programming with the In this skill-building lesson, students will be encouraged to figure out how
11
Bee minor changes in loops will affect their program.
Variables
This skill-building lesson will help illustrate how variables can make
(cont.)
12 Variables with the Bee programs more dynamic by allowing values to change while the code is
running.
In this skill-building lesson, students will use loops with a powerful, new
13 For Loop Fun
structure.
This skill-building lesson focuses on “for” loops and using an incrementing
For Loops 14 For Loops with the Bee
variable to solve more complicated puzzles.
In this skill-building lesson, students practice “for” loops with Artist.
15 For Loops with Artist
Students will complete puzzles to create complex designs and unique art.
In this context-setting lesson, students will run and collect data from a
simple simulation in Sprite Lab. After running the simulation multiple times,
16 Simulating Experiments
students will have an opportunity to predict how changing a variable in the
simulation might impact the outcome and test that hypothesis.
In this skill-building lesson, students will model an outbreak simulator.
Data & 17 Outbreak Students will study the simulation to understand how a virus can spread and
Simulations how to slow it down.
In this exploratory lesson, students will train a machine learning model by
18 AI for Oceans
classifying fish and other objects.
Students will pretend to flow through the internet while learning about
19 The Internet
connections, URLs, IP Addresses, and DNS in this exploratory lesson.
19
CS Fundamentals Curriculum Guide
Learning Tools
Maze/Collector Puzzles
Where it’s located in the curriculum: All Courses
Description
Recognizable by the 8x8 square grid, these puzzles ask students to move an on-screen character to complete a specified
goal, sometimes collecting objects or performing other actions along the way. These levels feature characters from
popular media franchises and others that are unique to Code.org.
Most Maze and Collector puzzles include a step button, which allows you to step through a program block by block to see
what happens each step of the way. This debugging feature enables students to slow their programs down, making it
easier to spot coding mistakes.
The Artist
Where it’s located in the curriculum: All Courses
Description
Students can program the Artist character to move and turn over a blank canvas, creating drawings along the way.
Puzzles require persistence as students work to re-create an image. Free play levels allow you to draw whatever you
want. Creativity is encouraged!
The Artist includes a speed slider, which controls how fast the drawing animation happens on the screen. This debugging
feature allows students to slow their programs down, making it easier to spot coding mistakes.
20
CS Fundamentals Curriculum Guide
Learning Tools
Play Lab
Where it’s located in the curriculum: Courses A, B, C
Description
Featuring a diverse cast of fun actors, Play Lab allows students to create their own stories and simple games. Actors can
speak, move and even express emotions. Play Lab projects are interactive, controlled by the user’s keyboard and mouse.
Sprite Lab
Where it’s located in the curriculum: Courses E, F
Description
Sprite Lab is the most open-ended programming tool found in CS Fundamentals. It enables students to create fun
animations in no time but is also a powerful tool for creating everything from interactive posters to games to simulations.
Description
Created as part of Code.org’s Hour of Code tutorials, more unique tools are found in various lessons across CS
Fundamentals. These tools allow students to explore everything from making games to the basics of machine learning
and artificial intelligence.
21
CS Fundamentals Curriculum Guide
Lesson Structure
Unplugged and Plugged Activities
We refer to activities where students are not working on a computer as “unplugged,” while activities that require
computers are called “plugged.” Most CS Fundamentals lessons offer a mix of unplugged and plugged activities. Some
context-setting or exploratory lessons are exclusively unplugged.
Unplugged Activities
Unplugged activities are kinesthetic opportunities for students to digest
concepts in approachable ways. Often, an unplugged activity sets the stage
for a subsequent activity or lesson.
Unplugged activities are beneficial for building and maintaining a
collaborative classroom environment, and they are helpful touchstone
experiences you can refer to when introducing more abstract concepts.
Unplugged activities provide a shared and concrete context that the teacher
references during subsequent lessons.
Plugged Activities
“Plugged” refers to any activity that students complete on the computer. Plugged activities are featured heavily in
skill-building lessons and projects but can show up in context-setting lessons and standalone lessons too!
Components of a Lesson
All lessons include a Warm-Up, Main Activity, and Wrap Up. Any of these activities could be on or off the computer.
Warm-Up
Each lesson begins with an engaging warm-up activity. These short activities are usually unplugged and serve to
introduce (or review) concepts, set context for learning, and engage students’ interest.
Main Activity
The main activity is the longest part of the lesson and can contain both plugged and unplugged activities.
Wrap Up
Each lesson ends with a wrap-up activity designed to help the students reflect, share, and connect.
22
CS Fundamentals Curriculum Guide
Types of Levels
When looking at the detailed view of a course page (e.g., studio.code.org/s/coursea), you will notice several different icons
representing different types of levels within a given lesson.
These levels feature Code.org tools, including programming puzzles and environments for creating
projects. An instructions panel appears on these levels to explain any new content introduced in
the level and provide a checklist of tasks to complete. Teachers can review their students’ code.
All CS Fundamentals courses feature great videos for students designed to introduce tools or to
help explain new concepts. Students can watch the videos together as a class or individually on
their computers.
Choice levels show up in Course F and provide a menu of additional online levels for students to
complete. Students must do at least one sub-level to complete the activity but may work through
as many as they (or you) like.`
Lesson Extras are an optional area at the end of each lesson where students can revisit concepts
they learned previously by completing extra challenges or open-ended tasks.
Skill Building
Students develop skills individually or in pairs by completing targeted Lesson 1: Welcome to Computer
tasks in these levels. You can support them by helping them to develop Science!
Students will learn the basics of computer science.
strong coding practices.
Prediction
Practice
Longer skill-building lessons may also include practice levels. These
levels provide students with multiple opportunities to practice skills Video: Intro to Programming
learned in the previous levels.
Exploration Exploration
These levels present students with sample programs that use the
concepts they are about to learn or model the projects they are about to
create. These are best completed in pairs or as a whole-class discussion. Skill Building
Prediction
These levels also present pre-written code, but students must answer a
question before running the code. These levels are not intended to be
used for assessment but to encourage careful reading of the code.
Practice
Challenge
Challenge levels test students’ persistence and can highlight
Free Play
misconceptions. In case it is needed, all challenge puzzles have a “Skip”
button which allows students to move on.
Mini-Projects
In Mini-Project Lessons, these are the levels where students build their
more extensive programs.
23
CS Fundamentals Curriculum Guide
Lead Learner
What is it?
As the lead learner, your role shifts from being the source of
knowledge to being a leader in seeking knowledge. The lead
learner’s mantra is: “I may not know the answer, but I know that
together we can figure it out.” The lead learner’s philosophy is that
you don’t have to be an expert on everything; you can start
teaching CS Fundamentals knowing what you already know and
learn alongside your students. Lead learners use modeling
frequently and use metacognition, thinking about your thinking,
often.
Acting as the lead learner is an act of empathy toward your students and the challenges they face in learning material for
the first time. A critical job in the CS Fundamentals classroom is to model excitement about investigating how things work
by asking motivating questions about why things work the way they do and why they are the way they are. With your
guidance, students will learn how to hypothesize, ask peers, test, evaluate, and refine solutions collaboratively.
24
CS Fundamentals Curriculum Guide
Pair Programming
What is it?
Pair programming is a technique in which two programmers work together on one computer. The “driver” writes code
while the “navigator” directs the design and setup of the code. The two programmers switch roles often. The benefits of
pair programming include the following:
● Improvements to computer science enrollment, retention, and student performance
● Increasing students' confidence
● Developing students' critical thinking skills
● Experience with a "real world" working environment
Resources
Code.org also has a feature to help both students get “credit” on their accounts for the work they do together. Check out
the blog on Pair Programming: https://goo.gl/MorPnx.
Videos:
● For Teachers: youtu.be/sxToW3ixrwo
● For Students: youtu.be/vgkahOzFH2Q
The National Center for Women & Information Technology (NCWIT) has a great resource about pair programming
benefits. Check it out at www.ncwit.org/resources/pair-programming-box-power-collaborative-learning.
25
CS Fundamentals Curriculum Guide
Authentic Choice
What is it?
Authentic choice is the practice of allowing students to decide on the focus of their creation when they are working on a
project. The central point is to enable students to work on something that interests them.
Journaling
What is it?
In CS Fundamentals, students are encouraged to keep a journal
nearby to write down thoughts and answer questions.
26
CS Fundamentals Curriculum Guide
Student Practices
We developed CS Fundamentals around a core set of student practices. These student practices are the high-level skills
and dispositions we want students to develop.
Problem Solving
● Use a structured problem-solving process to help solve new problems.
● View challenges as solvable problems.
● Break down larger problems into smaller components.
Persistence
● Value and expect mistakes as a natural and productive part of problem-solving.
● Continue working towards solutions despite setbacks.
● Iterate and continue to improve partial solutions.
● Keep track of elements that worked and elements that did not to avoid repeating mistakes.
Creativity
● Incorporate your interests or ideas into your work.
● Experiment with new ideas and consider multiple possible approaches.
● Extend or build upon the ideas and projects of others.
Collaboration
● Work with others to develop solutions that incorporate all contributors.
● Mediate disagreements and help teammates agree on a solution.
● Actively contribute to the success of group projects.
Communication
● Structure your work so that others can easily understand it.
● Consider the perspective and background of your audience when presenting your work.
● Provide and accept constructive feedback to improve your work.
27
CS Fundamentals Curriculum Guide
Debugging
Everyone gets bugs! Therefore, debugging is an essential skill all students should develop that builds on the student
practices discussed above. Students can become frustrated if they don’t know how to find and fix errors in their code.
Help keep students moving by implementing both active and reflective debugging strategies in your classroom.
Active Debugging
Writing long chunks of code without pausing to read or test can lead to hard-to-find errors. To prevent this, we suggest
implementing active debugging.
Active debugging describes the practice of debugging while coding. Students should take time to read, process, and test
small pieces of code that they have just written during coding exercises. The practice can be tremendously helpful as
students write more complex programs.
A practical student-facing guide to active debugging exists in our Debugging Guide, shown below. This guide lists active
debugging strategies for students. We suggest making this document available to students as a classroom poster or
individual handout, then referring to it as students progress through your course.
Guide to Debugging
Reflective Debugging
While students are working, you will notice the same issues appearing again and again. Some students can quickly move
through these issues, while others are left behind. Even with active debugging practices in place, these experiences can
be disheartening for any teacher. However, they can inspire a productive reflective debugging session at some point
during the class.
Active debugging is how individual students can find and fix bugs. On the other hand, reflective debugging is when
students participate in debugging as an entire class. ‘Bug Talks’ and keeping a ‘bug tracker’ are two ways to implement
reflective debugging in your classroom.
28
CS Fundamentals Curriculum Guide
Bug Talks
Bug Talks are very similar to “Number Talks” from the world of mathematics education. Teachers can use Bug Talks
before, during, or after class to help students clear up misconceptions that manifest as common bugs. A typical Bug Talk
should last 5-10 minutes and might proceed as follows:
1. A problem is displayed for students to solve on their own, quietly. The problem should be small enough that they
can solve it mentally or with scratch paper. Students who could solve the problem very quickly should try coming
up with more than one solution. An example problem might be a buggy solution to a puzzle from the current
lesson.
2. After having time to work alone, students can share their ideas with a neighbor.
3. After sharing with a neighbor, students raise their hands to share answers with the class.
4. The teacher neutrally records as many answers as possible on the board, incrementing duplicates with tally
marks.
5. The teacher calls on students to explain the reasoning behind their answers. Students can respond to each
other’s arguments with sentence starters like, “I agree/disagree, because…”.
6. Finally, students discuss and vote on which answer they collectively believe is the best solution.
To conclude a Bug Talk, teachers should reiterate why the chosen strategy works best, including any unmentioned points
the class might not have brought up.
Bug Tracker
A Bug Tracker is a poster that can help your students name and understand common problems they encounter while
coding. Throughout a CS Fundamentals course, students collectively drive the development of their class’ Bug Tracker
through teacher-led discussions about coding and problem-solving.
Small misconceptions can lead to big problems when learning to code. You can help students clear
these misconceptions by facilitating class discussions about specific instances of bugs they catch.
During these discussions, your Bug Tracker works as a class-sourced running record that
Why Create a generalizes those instances into more widely applicable and accurate coding concepts.
Bug Tracker?
In addition to identifying and describing common bugs, students should share debugging strategies
on your Bug Tracker as well. This cooperative exchange of knowledge can help empower students to
persist together through even the toughest challenges.
When Should I To ensure your class develops the foundation of documenting bugs and debugging as early as
Introduce a Bug possible, the introduction of the Bug Tracker should coincide with the first programming lesson, then
Tracker? be revisited throughout the course as needed.
You may want to discuss bugs students have found at the beginning or end of class, or even
potentially during class if it seems many students are encountering the same types of problems.
How Do I Use
Encourage students to refer back to the Bug Tracker while they work. You can challenge your
the Bug
students to look for the bugs they spotted as they work. Have them tell a neighbor when they see
Tracker?
one. Can they come up with strategies to get past it? Ask students to hold on to new bugs if they
happen to find them. They can share their bugs during the next Bug Talk.
What “Bugs” At least at the beginning of your course, you might hear students suggest adding, “The computer
Might Appear won’t turn on,” or “The Internet is slow” to the class’ Bug Tracker. Discuss the meaning of “coding”
on a Bug and “debugging.” Relating these CS-specific concepts to other difficulties students experience
Tracker? (technical and non-technical) is certainly worthy of discussion.
29
CS Fundamentals Curriculum Guide
Lesson Pacing
In general, all students should move from lesson to lesson at a pace set by the teacher. Keeping the class together is
easiest in teacher-led lessons and projects. Conversely, skill-building lessons can be challenging as students complete
many of the levels at their own pace. It’s important to know when students are ready to move on and make sure all
students are working on something appropriate for them. Rather than having some students move ahead to different
lessons or concepts, utilize the strategies below to differentiate instruction within a lesson.
Differentiation during Skill-Building Lessons: These lessons contain optional lesson extras and challenge puzzles that
students can choose to skip. If a student skips an optional puzzle but moves through the rest of the lesson quickly,
encourage them to go back and try it while others catch up. If students struggle to finish every level, permit them to skip
the optional challenges to keep them on the same lessons as their peers. To determine if your class is ready for the next
lesson, look at their progress for the levels marked “skill-building,” as this is where new concepts get introduced. Use your
judgment about when students are ready to move on to the application lessons or the next concept chunk.
Differentiation in Mini-Project and Project Lessons: These activities are among the best ways for students to
demonstrate their learning. They are also a great place to encourage creativity and give students space to apply the
concepts they’ve learned in new ways. Due to the more open-ended nature of these lessons, it’s possible to pass some
levels just by clicking “Finish.” If some students move through an open-ended activity quickly, help them brainstorm ideas
or encourage them to get feedback from peers.
Extra Projects: In addition to the open-ended project lesson at the end of most courses, it is also possible for students to
create a new project at any time by clicking the “Create” button in the top right corner of Code Studio. If a student has
already shown a good understanding of a concept, consider having them build a new project using what they know rather
than just moving onto the next lesson ahead of the class.
30
CS Fundamentals Curriculum Guide
Pair programming
Even if you have 1:1 computers, consider grouping students up for pair programming. Pair programming provides both
partners with insight into their peers’ problem-solving processes while helping them develop collaboration and
communication skills.
Computer Labs
If your class meets in a computer lab, look for rooms to “visit” for unplugged lessons (like the library or the gym). Review
the lesson plans in advance to determine space requirements for unplugged activities or other unique needs.
Limited Devices
Some classrooms have a small number of devices set up in one area for activity centers. If students need to complete
skill-building lessons on their own, consider doing any context-setting in advance with the whole class.
Limited time
If you are short on time, choose a concept and teach it thoroughly, and be sure to end the unit with an open-ended task
such as a project, mini-project, or free-play level. In elementary school, the main goal is to teach students that they can
learn computer science.
31
CS Fundamentals Curriculum Guide
The course requires and assumes that each student has access to an internet-connected computer every day in class.
Each computer must have a modern web browser installed. The course tools and resources (lesson plans, teacher
dashboard, videos, student tools, programming environment, etc.) are online and accessible through a web browser. For
more information about tech setup, go to: code.org/educate/it.
While the course features many “unplugged” activities away from the computer, daily access to a computer is essential for
every student. PDFs of handouts, worksheets, and readings are available on the course website.
Some lessons call for typical classroom supplies and manipulatives. See below for information on specific lessons:
The Power of Words Colored Pencils, string the length of the classroom
Getting Help
The curriculum is completely free for anyone to teach anywhere. For
support, click on the question mark in the upper right-hand corner of
the website.
Here, you’ll find our “Help and support” forum, where you can email us
or find how-to articles. You’ll also see a link to our “Teacher
community” forums where you can connect to other teachers for
support, teaching tips, or best practices.
32
CS Fundamentals Curriculum Guide
Code.org increases diversity in computer science by reaching students of all backgrounds where they are — at their
skill-level, in their schools, and in ways that inspire them to keep learning. Read about our efforts to increase diversity in
computer science at code.org/diversity. To support this vision of diverse and meaningful access to computer science,
Code.org has developed a full pathway of learning opportunities that span K-12. The CS Fundamentals curriculum is
specifically designed to meet the needs of elementary school students and teachers along that pathway.
As always, it is thanks to our generous donors that we were able to develop and offer this curriculum at no cost to schools,
teachers, or students: Microsoft, Infosys Foundation USA, Facebook, Omidyar Network, Google, Ballmer Family Giving,
Ali and Hadi Partovi, Bill Gates, The Bill and Melinda Gates Foundation, BlackRock, Jeff Bezos, John and Ann Doerr,
Mark Zuckerberg and Priscilla Chan, Quadrivium Foundation, Amazon Web Services, The Marie-Josee and Henry R.
Kravis Foundation, Reid Hoffman, Drew Houston, Salesforce, Sean N. Parker Foundation, Smang Family Foundation,
Verizon.
33
CS Fundamentals Curriculum Guide
Note: Model lessons listed in the table use the same handout. The model lesson for the Deep Dive workshop does not
require a handout.
34
CS Fundamentals Curriculum Guide
35
CS Fundamentals Curriculum Guide
36
CS Fundamentals Curriculum Guide
Intro Workshop
Lesson Implementation Guide: Context-Setting
Make a Plan
Directions
Use the following as a guide when preparing to implement and teach a CS Fundamentals lesson.
Building Skills
What skill does the lesson help students
practice and how?
Classroom Routine/Procedure
What classroom routine/procedure is
needed to support classroom
management during the lesson?
37
CS Fundamentals Curriculum Guide
CS Teaching Strategies
When will any of the following be
included during the lesson?
● Lead Learner
● Discovery and Inquiry
● Debugging
● Pair Programming
● Classroom Community (active
learning, communication)
Equity
How will the lesson be inclusive and
equitable for students?
38
CS Fundamentals Curriculum Guide
Intro Workshop
Lesson Implementation Guide: Skill-Building
Make a Plan
Directions
Use the following as a guide when preparing to implement and teach a CS Fundamentals lesson.
Building Skills
What skill does the lesson help students
practice and how?
Classroom Routine/Procedure
What classroom routine/procedure is
needed to support classroom
management during the lesson?
39
CS Fundamentals Curriculum Guide
CS Teaching Strategies
When will any of the following be
included during the lesson?
● Lead Learner
● Discovery and Inquiry
● Debugging
● Pair Programming
● Classroom Community (active
learning, communication)
Equity
How will the lesson be inclusive and
equitable for students?
40
CS Fundamentals Curriculum Guide
Step 2 If you teach a single grade, choose the course associated with that grade.
If you teach multiple grades, choose which course to explore today.
Find a lesson to plan for by matching the lesson type and course you chose from Step 1 and 2.
A.12: On the
Course A A.10: Ocean A.1: Safety in My Online
A.7: Happy Loops Move with Play
Kindergarten Scene with Loops Neighborhood
Lab
Course F
F.6: Blank Space F.3: Sprites in
Fifth Grade F.4: Virtual Pet F.18: AI for Oceans
Stories Action
If you are familiar with the types of lessons listed in the table above, consider planning for a Project found at
the end of each course.
*Note: Currently Course D does not have mini-projects. However, Lesson D.7 is similar to a mini-project
and is recommended here.
41
CS Fundamentals Curriculum Guide
Make a Plan
Directions
Use the following as a guide when preparing to implement and teach a CS Fundamentals lesson.
Building Skills
What skill does the lesson help students
practice and how?
Classroom Routine/Procedure
What classroom routine/procedure is
needed to support classroom
management during the lesson?
42
CS Fundamentals Curriculum Guide
CS Teaching Strategies
When will any of the following be
included during the lesson?
● Lead Learner
● Discovery and Inquiry
● Debugging
● Pair Programming
● Classroom Community (active
learning, communication)
Equity
How will the lesson be inclusive and
equitable for students?
43
CS Fundamentals Curriculum Guide
44