Professional Documents
Culture Documents
Learning Tools 30
1
CS Discoveries Curriculum Guide
Problem Solving and Students learn the problem-solving process, the input-output-store-process model
of a computer, and how computers help humans solve problems. Students end
Computing the unit by proposing their own app to solve a problem.
Students learn to create websites using HTML and CSS inside Code.org’s Web
Web Development Lab environment. Throughout the unit, students consider questions of privacy and
ownership on the internet as they develop their own personal websites.
Students use Code.org’s App Lab environment, in conjunction with the Adafruit
Circuit Playground, to explore the relationship between hardware and software.
Physical Computing
Throughout the unit, students develop prototypes that mirror existing innovative
computing platforms, before ultimately designing and prototyping one of their own.
Optional Units
Students learn how machine learning can be used to solve problems by preparing
data, training a machine learning model, then testing and evaluating the model for
AI and Machine Learning accuracy and bias. Students use Code.org’s AI Lab environment to train machine
learning models, then import their models into App Lab to create apps that solve
problems
2
CS Discoveries Curriculum Guide
In addition to the CSTA standards and K-12 Framework, CS Discoveries was written with a learning framework, which
outlines the expected student outcomes that are assessed throughout the unit and in that unit’s major projects and
post-project test. These outcomes are organized into concept clusters to help students and teachers understand the
broad goals of each unit.
Web Development Web Lab — A browser-based tool for creating and publishing HTML and CSS web sites.
AI and Machine
AI Lab — A browser-based tool for creating machine learning models from tabular data
Learning
3
CS Discoveries 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 so 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 lead to attrition of 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.
4
CS Discoveries Curriculum Guide
5
CS Discoveries Curriculum Guide
Big Questions
Chapter 1 - The Problem Solving Process Chapter 2 - Computers and Problem Solving
● What strategies and processes can I ● How do computers help people to solve problems?
use to become a more effective ● How do people and computers approach problems differently?
problem solver? ● What does a computer need from people in order to solve
problems effectively?
Unit Goals
● Identify the defined characteristics of a computer and how it is used to solve information problems.
● Use a structured problem solving process to address problems and design solutions that use computing
technology.
● Create a collaborative classroom environment where students view computer science as relevant, fun, and
empowering.
Alternate Lessons
Alternate versions of Lessons 1 and 3 are available, and they target the same learning goals. Teachers may choose which
lesson to implement based on the availability of supplies or student interests. Chapter 1 of Unit 1 can be used as a review
for students who have already taken a portion of the Computer Science Discoveries course in a different grade level or
semester. In this case, the teacher can substitute in a different lesson from the one that students have already completed.
Major Projects
● Lesson 8: Project - Propose an App
To conclude their study of the problem solving process and the input/output/store/process model of a computer, students
will propose an app designed to solve a problem of their choosing. To learn more about this project, check out the
description in this unit’s lesson progression.
6
CS Discoveries Curriculum Guide
7
CS Discoveries Curriculum Guide
Lesson 6: Processing
This lesson introduces four types of processing that the class will use throughout the course. Through a
series of apps, the class explores how processing is used to turn input into output. In the end, the class
Chapter 2 brainstorms more types of app processing that would be useful.
Computers
and Lesson 7: Storage
Problem This lesson covers the last part of the chapter's model of computing: storage. The class interacts with
Solving several different apps, determining which information should be stored for later and why. The
(continued) input-output-storage-processing model of computing is then presented in full, and the class reflects on
how various apps use each of the components, and how the model impacts whether or not something
should be considered a computer.
8
CS Discoveries Curriculum Guide
Web Development
Overview and Timeline
In Web Development, students are empowered to create and
share content on their own web pages. They begin by
thinking about the role of the web and how it can be used as
a medium for creative expression. As students develop their
pages and begin to see themselves as programmers, they
are encouraged to think critically about the impact of sharing
information online and how to be more critical consumers of
content. They are also introduced to problem solving as it
relates to programming while they learn valuable skills such
as debugging, using resources, and teamwork. At the
conclusion of the unit, students will have created a personal
website they can publish and share.
Big Questions
Chapter 1 - Creating Web Pages Chapter 2 - Multi-Page Websites
● Why do people create websites? ● How can websites be used to address problems
● How can text communicate content and structure on in the world?
a web page? ● What strategies can teams use to work better
● How do I safely and appropriately make use of the together?
content published on the internet? ● How do I know what information can be trusted
● What strategies can I use when coding to find and fix online?
issues?
Unit Goals
● Create digital artifacts that use multiple computer languages to control the structure and style of their content.
● Create a website as a form of personal expression.
● Use different programming languages to solve different problems.
● Examine their role and responsibilities as both creators and consumers of digital media.
Major Projects
● Lesson 13: Project - Personal Web Page
● Lesson 20: Project - Website for a Purpose
Throughout the unit, students use their developing skills to create a multi-page website, and have several opportunities to
share out and engage in peer review at the end of each chapter. These projects emphasize many of the core practices of
this course as students will need to tap into their creativity, problem solving skills, and persistence to complete their
websites. To learn more about these projects, check out the descriptions in this unit’s lesson progression.
Tools
This unit uses Web Lab. For more detailed information, see the Learning Tools section of this curriculum guide
9
CS Discoveries Curriculum Guide
Lesson 3: Headings
This lesson continues the introduction to HTML tags, this time with headings. The class practices
using heading tags to create page and section titles and learns how the different heading elements are
displayed by default.
10
CS Discoveries Curriculum Guide
11
CS Discoveries Curriculum Guide
12
CS Discoveries Curriculum Guide
Big Questions
Chapter 1 - Images and Animations Chapter 2 - Building Games
● What is a computer program? ● How do software developers manage complexity
● What are the core features of most programming and scale?
languages? ● How can programs be organized so that common
● How does programming enable creativity and problems only need to be solved once?
individual expression? ● How can I build on previous solutions to create even
● What practices and strategies will help me as I more complex behavior?
write programs?
Unit Goals
● Create an interactive animation or game that includes basic programming concepts such as control structures,
variables, user input, and randomness.
● Work with others to break down programming projects using sprites and functions.
● Give and respond constructively to peer feedback, and work with their teammates to complete a project.
● View yourself as a computer programmer, and see programming as a fun and creative form of expression.
Major Projects
● Lesson 17: Project - Interactive Card
● Lesson 27: Project - Design a Game
There are two major projects in this unit, which are at the end of each chapter. Both offer students an opportunity to
demonstrate what they’ve learned while leveraging creativity and peer feedback. To learn more about these projects,
check out the descriptions in this unit’s lesson progression.
Tools
This unit uses Game Lab. For more detailed information, see the Learning Tools section of this curriculum guide.
13
CS Discoveries Curriculum Guide
Lesson 7: Sprites
In order to create more interesting and detailed images, the class is introduced to the sprite object. The
lesson starts with a discussion of the various information that programs must keep track of, then
presents sprites as a way to keep track of that information. Students then learn how to assign each
sprite an image, which greatly increases the complexity of what can be drawn on the screen.
Lesson 9: Text
This lesson introduces Game Lab's text commands, giving students more practice using the coordinate
plane and parameters. At the beginning of the lesson, they are asked to caption a cartoon created in
Game Lab. They then move onto Code Studio where they practice placing text on the screen and
controlling other text properties, such as size.
14
CS Discoveries Curriculum Guide
15
CS Discoveries Curriculum Guide
16
CS Discoveries Curriculum Guide
Big Questions
Chapter 1: User Centered Design Chapter 2: App Prototyping
● How do computer scientists identify the needs of ● How do teams effectively work together to develop
their users? software?
● How can we ensure that a user's needs are met by ● What roles beyond programming are necessary to
our designs? design and develop software?
● What processes will best allow us to efficiently ● How do designers incorporate feedback into
create, test, and iterate upon our design? multiple iterations of a product?
Unit Goals
● See the design process as a form of problem solving that prioritizes the needs of a user.
● Identify user needs and assess how well different designs address them.
● Develop paper and digital prototypes, gather and respond to feedback about a prototype, and consider ways
different user interfaces do or do not affect the usability of their apps.
● Understand other roles in software development, such as product management, marketing, design, and testing,
and how to use what they have learned about computer science as a tool for social impact.
Major Projects
● Lesson 8: Project - Paper Prototype
● Lesson 21: Project - App Presentation
Students are encouraged to focus on the design process in the two major projects in this unit, which are at the end of
each chapter. To learn more about these projects, check out the descriptions in this unit’s lesson progression.
Tools
This unit uses the App Lab. For more detailed information, see the Learning Tools section in this curriculum guide.
17
CS Discoveries Curriculum Guide
18
CS Discoveries Curriculum Guide
19
CS Discoveries Curriculum Guide
Big Questions
Chapter 1: Representing Information Chapter 2: Solving Data Problems
● Why is representation important in problem solving? ● How does data help us to solve problems?
● What features does a representation system need to ● How do computers and humans use data
be useful? differently?
● What is necessary to create usable binary ● What parts of the data problem solving process
representation systems? can be automated?
● How can we combine systems together to get more ● What kinds of real world problems do
complex information? computers solve by using data?
Unit Goals
● Understand the role of data and data representation in solving information problems.
● Explain the necessary components of any data representation scheme, as well as the particulars of binary and the
common ways that various types of simple and complex data are represented in binary code.
● Design and implement a data-based solution to a given problem and determine how the different aspects of the
problem solving process could be automated.
Major Projects
● Lesson 8: Project - Create a Representation
● Lesson 16: Project - Make a Recommendation
There are two major projects in this unit, which are at the end of each chapter. Each project asks students to take a
different approach to looking at data — the first focuses on building a system to represent complex data, and the second
focuses on processing data to make a recommendation. To learn more about these projects, check out the descriptions in
this unit’s lesson progression.
20
CS Discoveries Curriculum Guide
21
CS Discoveries Curriculum Guide
22
CS Discoveries Curriculum Guide
Physical Computing
Overview and Timeline
In the Physical Computing unit, students explore the role of
physical devices in computing. Using App Lab and Adafruit’s
Circuit Playground, students develop programs that utilize
the same hardware inputs and outputs that you see in the
smart devices, looking at how a simple rough prototype can
lead to a finished product. Then, students explore how
physical devices can be used to react to the world around
them using a “maker” mindset to create prototypes with
everyday materials.
Big Questions
Chapter 1: Inputs and Outputs Chapter 2: Building Physical Prototypes
● What inputs and outputs are available on a ● How can a physical device use sensors to react to
physical device? a physical environment?
● What inputs and outputs are available on an app? ● How can simple hardware be used to develop
● How can we create apps that use a physical innovative new products?
device to control a digital app?
Unit Goals
● Design and build a physical computing device that integrates physical inputs and outputs with digital apps.
● Create app prototypes that use a physical device to solve real-world problems
● Use physical computing to solve problems in fun and innovative ways.
Major Projects
● Lesson 10: Project - Human / Device Interaction
● Lesson 16: Project - Prototype an Innovation
There are two major projects in this unit, which are at the end of each chapter. Each project is cumulative for the chapter
completed, and each takes a different approach to hardware — the first focusing on interactions between users and
devices, having students create an app that helps control a physical device similar to many smartphone apps. The second
project focuses on developing and testing an physical prototype of an innovative computing device. To learn more about
these projects, check out the descriptions in this unit’s lesson progression.
Tools
This unit uses the Maker App. For more detailed information, see the Learning Tools section of this curriculum guide.
Implementation Guidance
● This unit assumes students are familiar with App Lab, specifically Design Mode and Events. These topics are
covered in the Design Process unit. If students are not familiar with App Lab, we recommend completing the App
Lab Hour of Code tutorial before beginning this unit.
● This unit requires students to have access to Adafruit Circuit Playgrounds. Learn more about these devices at
code.org/circuitplayground
● This unit could be swapped out with the AI and Machine Learning unit - see the Implementation Guide for more
information on this option
23
CS Discoveries Curriculum Guide
24
CS Discoveries Curriculum Guide
25
CS Discoveries Curriculum Guide
Big Questions
Chapter 1: Understanding Machine Learning Chapter 2: Design a Machine Learning App
● How does machine learning find patterns in data ● How can machine learning be used to solve
to make decisions? problems in our community?
● How can we avoid bias when training a machine
learning model?
Unit Goals
● Create a machine learning model in AI Lab to solve a problem, and use App Lab to create an app that uses their
model.
● Understand how machine learning models make decisions from data
● Create machine learning models from their own data to solve problems in their community.
Major Projects
● Lesson 15: Make a Machine Learning App
● Lesson 21: Design an AI App
There are two major projects in this unit, which are at the end of each chapter. The first project has students use
real-world datasets to produce their own machine learning model and app, focusing on skills related to feature selection to
obtain an accurate model, and documenting a model through the use of Model Cards. In the second project, students
explore the full machine learning process by identifying a problem in their community and determining what data to collect
in order to train a machine learning model. This project emphasizes the Problem Solving Process in applying machine
learning to community problems.
Tools
This unit uses AI Lab and App Lab. For more detailed information, see the Learning Tools section of this curriculum
guide.
Implementation Guidance
● This unit assumes students are familiar with App Lab, specifically Design Mode and Events. These topics are
covered in the Design Process unit. If students are not familiar with App Lab, we recommend completing the App
Lab Hour of Code tutorial before beginning this unit.
● This is an optional unit that can be substituted for an earlier unit in the course. See the Implementation Guide for
more information.
26
CS Discoveries Curriculum Guide
Lesson 3: Innovations in AI
In this lesson, students explore an application of AI called Seeing AI and examine how it is supporting
people with visual impairments. Then, students research other examples of how AI is impacting society,
focusing on users who are impacted by the examples they find. Finally, students share their findings with
each other.
27
CS Discoveries Curriculum Guide
28
CS Discoveries Curriculum Guide
29
CS Discoveries Curriculum Guide
Learning Tools
Web Lab
Where it’s located in the curriculum: Web Development
Description
Web Lab is a browser-based text editor for building web pages in
HTML and CSS. It features a text editor with many helpful tools
for creating and debugging HTML and CSS code, including a
live preview of the web page that updates in real time and the
ability to publish the completed web page to its own unique URL.
Try the tool at code.org/weblab.
Game Lab
Where it’s located in the curriculum: Interactive Animations
and Games
Description
Game Lab is a programming environment for developing
animations and games using JavaScript. Students start by
creating sprites - characters whose appearance, movement,
and interactions can be controlled through code. A preloaded
library of images and sounds and a full-featured pixel editor
allow students to customize the look of their sprites. Then,
using Game Lab, students learn fundamental programming
constructs while being given the freedom to create their own
virtual worlds. Students can program using either blocks or text and instantly switch between either mode. Game Lab
allows for activities with a scoped toolbox of commands that focuses attention on the specific blocks and concepts being
introduced in that lesson. In addition, embedded support tools help students track down errors in their code. Try the tool at
code.org/gamelab.
App Lab
Where it’s located in the curriculum: The Design Process,
Physical Computing, AI and Machine Learning
Description
App Lab is a programming environment for developing projects
and apps in JavaScript. A drag-and-drop editor allows students
to add and edit page elements without having to write the
underlying syntax. Working in either blocks or text, students
define the behavior of these design elements using code. The
scoped toolbox of commands focuses attention on the specific
blocks or concepts being introduced in that lesson. The
embedded support tools help students track down errors in
their code. Thanks to these features, App Lab is particularly well-suited for quickly prototyping apps. Try the tool at
code.org/applab.
30
CS Discoveries Curriculum Guide
Maker App
Where it’s located in the curriculum: Physical Computing
Description
The Maker App is an environment that allows you to
communicate with the Circuit Playground using a set of
additional commands available in App Lab. Using the
same drag-and-drop editor that students have become
comfortable with in App Lab and Game Lab, students can
turn on LEDs, read sensors, and write programs that use
physical hardware for user input and output. By integrating
these commands, App Lab allows you to quickly prototype
apps that combine hardware and software without the
additional challenge of transitioning to a new language or
tool or worrying about wiring and electronics. Try the tool at
studio.code.org/maker/setup.
AI Lab
Where it’s located in the curriculum: AI and Machine Learning
Description
AI Lab is an environment that lets you interact with tabular data to
train a machine learning model. You can select from several
pre-generated datasets, or upload your own data. You decide what
you would like to predict and which features to base your
prediction off of. AI Lab will analyze the data and create a machine
learning model which you can import into App Lab. Before saving
your machine learning model, you also need to save a Model Card
which acts like the documentation for your model. Try the tool at
studio.code.org/s/ai-lab
31
CS Discoveries Curriculum Guide
Plugged Activities
“Plugged” doesn’t mean the computer is the students’ teacher! If anything, you will need to take a more active role in
checking student progress since it’s hard to know what’s happening when students are working on screens.
32
CS Discoveries Curriculum Guide
Pair Programming
What is it?
Pair programming is a technique in which two programmers work together at one computer. One, the driver, writes code
while the other, the navigator, directs the driver on the design and setup of the code. The two programmers switch roles
often. Pair programming has been shown to:
● improve computer science enrollment, retention, and students' performance
● increase students' confidence
● develop students' critical thinking skills
● introduce students to the “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
our support article on pair programming: bit.ly/pair-programming-support
Videos:
● For Teachers: bit.ly/pair-programming- teacher (Created for CS Fundamentals, but still applicable)
● For Students: bit.ly/pair-programming- student
Other Resources:
● The ETR Pair Programming Toolkit provides additional strategies for implementing Pair Programming in your
classroom. Check it out at: http://bit.ly/pair-programming-toolkit
● The National Center for Women & Information Technology (NCWIT) has a great resource about the benefits of
pair programming. Check it out at: http://bit.ly/pair-programming-ncwit
33
CS Discoveries Curriculum Guide
Think-Pair-Share
What is it?
Think-Pair-Share is a three part activity in which students are presented with a problem or task to work on.
Pair: Once students have had time to work individually, they then
enter the “Pair” stage in which they work with a small group. These
groups can consist of two or three students. The group discusses
the thoughts each member collected during the “Think” stage. The
goal is for students to engage in a low-risk discussion where they
get a chance to share their ideas with others. This activity is
especially useful in the early stages of developing collaborative
skills such as attentive listening to a partner.
Share: Finally, the groups share out some of the ideas they discussed to the whole class, and the discussion will
continue as needed in the whole group setting. This allows major ideas to bubble up to the whole group, where
everyone can hear and benefit from them.
34
CS Discoveries Curriculum Guide
Peer Feedback
What is it?
Peer feedback is the practice where students give each other feedback on work they have done. The feedback is meant
to provide opportunities for students to learn from each other, both by seeing ways others approached the same problem
and by incorporating feedback to improve their own work.
35
CS Discoveries Curriculum Guide
Debugging
What is it?
Debugging is the act of finding and fixing problems in code.
It’s a major part of programming and a critical skill for
students to develop. Your role as the teacher is to avoid
directly debugging for your students, but to help guide them
in the development of their own debugging skills.
As with most things, people get better at debugging by doing it! That said, reflective strategies can help students learn
more from debugging. Encourage students to talk about their bugs and how they were able to address them. Students
may create bug logs in their journals or a bug poster for the classroom. If students are too specific with the bugs that they
have found, consider reframing what they say into something more generally useful (e.g. “The ‘r’ and the ‘c’ were
switched.” could become “My keyword was not spelled correctly.”)
Resources
See Appendix C for a more detailed teacher facing guide to debugging along with a student facing debugging resource.
36
CS Discoveries Curriculum Guide
Journaling
What is it?
Journaling can take many different forms, but in general it is
a tool for individual reflection in a form that can be revisited
as students develop their skills and understandings. This
provides an important opportunity for students to reflect on
their own learning in a personal way and record their growth
throughout the course.
37
CS Discoveries Curriculum Guide
Student Practices
The work students do in CS Discoveries is connected by a core set of practices developed over time. These student
practices provide coherence and represent the high-level skills and dispositions students develop throughout the course.
In the curriculum you will find reminders of moments when students can reflect on this development, and all major projects
include an opportunity for student reflection on their growth in each practice.
● The Problem Solving Process is used in the Problem Solving and Computing unit and is the template for each
of the other processes below
● The Problem Solving Process with Programming is used in the Web Development, Animations and Games,
and Physical Computing units
● The Problem Solving Process for Design is used in The Design Process unit
● The Problem Solving Process with Data is used in the Data and Society and AI and Machine Learning units
38
CS Discoveries Curriculum Guide
Having a strategy for approaching problems can help you develop new
insights and come up with new and better solutions. This is an iterative
process that is broadly useful for solving all kinds of problems.
Define
● Determine the problem are you trying to solve
● Identify your constraints
● Describe what success will look like
Prepare
● Brainstorm / research possible solutions
● Compare pros and cons
● Make a plan
Try
● Put your plan into action
Reflect
● Compare your results to the goals you set while defining the problem
● Decide what you can learn from this or do better next time
● Identify any new problems you have discovered
39
CS Discoveries Curriculum Guide
Define
● Read the instructions carefully to ensure you understand the
goals
● Rephrase the problem in your own words
● Identify any new skills you are being asked to apply
● Look for other problems you’ve solved that are similar to this one
● If there is starter code, read it to understand what it does
Prepare
● Write out an idea in plain English or pseudocode
● Sketch out your idea on paper
● List what you already know how to do and what you don’t yet
● Describe your idea to a classmate
● Review similar programs that you’ve written in the past
Try
● Write one small piece at a time
● Test your program often
● Use comments to document what your code does
● Apply appropriate debugging strategies
● Go back to previous steps if you get stuck or don’t know whether you’ve solved the problem
Reflect
● Compare your finished program to the defined problem to make sure you’ve solved all aspects of the problem
● Ask a classmate to try your program and note places where they struggle or exhibit confusion
● Ask a classmate to read your code to make sure that your documentation is clear and accurate
● Try to “break” your program to find types of interactions or input that you could handle better
● Identify a few incremental changes that you could make in the next iteration
40
CS Discoveries Curriculum Guide
Define
● Identify potential users
● Interview users
● Read user profiles
● Identify needs and wants
Prepare
● Connect needs and wants to specific problems
● Research how others have addressed these issues
● Brainstorm potential solutions
● Discuss pros and cons
● Identify the minimum work need to test your assumptions
Try
● Draw your product on paper
● Develop a low fidelity prototype to communicate your design
● Share prototypes with potential end users for feedback
Reflect
● Present to stakeholders
● Review user feedback
41
CS Discoveries Curriculum Guide
Define
● Decide what problem you are trying to solve or what question
you are trying to answer
● Make sure you understand your target audience (it could be
you!) and what specifically it needs
● Identify the parts of your problem you could address with data,
and how more information could help
Prepare
● Decide what kinds of data you will collect
● Decide how you will collect the data and in which format you
will collect it
● Anticipate possible challenges in data collection and change
your plan to account for them
● Develop a plan for how you will analyze your data and make sure your data will be useful for that kind of analysis
Try
● Collect your data using the plan you created
● Clean your data by removing errors, unexpected values, and inconsistencies
● Visualize the data by creating tables, graphs, or charts that help you see broad trends in your data
● Interpret the trends and patterns in your visualizations based on your knowledge of the problem
Reflect
● Review what you’ve learned about your question or problem
● Decide if what you’ve learned has solved your problem and allows you to make a decision, or if you’ll need to go
back to one of the previous steps
42
CS Discoveries Curriculum Guide
Each unit includes a learning framework document outlining the expected student outcomes that are assessed throughout
the unit and in that unit’s major projects and a post-project test. These outcomes are organized into concept clusters to
help students and teachers understand the broad goals of each unit, and, when taken together, address the Big Questions
included in the unit’s description. Learning objectives and assessment opportunities listed in individual lesson plans
connect back to the unit’s overall framework.
Specific student outcomes within these learning frameworks may be mapped to external standards such as the CSTA K-12
Computer Science Standards or other similar state-level standards for computer science. To allow students and teachers
flexibility in how these learning goals are reached, the course does not assess completion of specific activities.
Digging Deeper: To read more about the relationship between assessment, feedback, and grading - we recommend the
Tang Institute Feedback in Practice guide
Teachers have access to student activity throughout the lesson, including input on prediction levels, the code for all
programming levels, and reflective activities students may engage in. While teachers might choose to assess and give
feedback on student performance in any of these situations, some places have specifically been marked as useful for
assessing student progress. Focusing on these areas can free teachers from feeling the need to look at every level a
student has completed.
1
By formative assessment, we mean assessment for monitoring student learning, allowing an instructor to understand where their students are
mid-learning and course-correct if necessary. Formative assessment usually occurs in the middle of a sequence of skill-building.
By summative assessment, we mean assessment for evaluating student learning, usually at the end of a lesson to understand what concepts students
understood and skills they mastered. Summative assessment is usually occurs at the end of a sequence of skill building (such as a lesson or unit).
43
CS Discoveries Curriculum Guide
Class discussions provide an opportunity for group sensemaking and for teachers to informally assess student
understanding. These discussions may begin with students writing down their individual thoughts before sharing with a
partner or group. The goals of each discussion and how teachers might use them to evaluate learning are included in the
lesson plan as pop out instructions. We recommend using these opportunities for formative assessment.
Journal Questions allow students to reflect on what they have learned, and what they hope to learn more about. Journal
prompts often accompany discussion questions, and guidance for assessment is also included in the lesson plan. We
recommend using these opportunities for formative assessment.
Activity Guides accompany unplugged lessons in the curriculum. They include prompts and questions that teachers can
use to follow students’ progress through the lesson and reflection questions that can give insight into what students have
learned from the activity. Guidance for assessment is included in the lesson plan and any related exemplars. We
recommend using these opportunities for summative assessment.
Skill-Building and Practice levels ask students to complete a small programming task as a way to continue learning new
programming commands or build fluency. Teachers have access to all student work in these levels, can read and run the
code that students have produced, and can leave feedback for students about their work. These levels include exemplar
solutions for teachers to reference. We recommend using these opportunities for formative assessment.
Assessment Levels ask students to complete a programming task representative of the skills and concepts from the lesson.
Each assessment level has a mini-rubric which outlines the criteria students should be able to accomplish in order to
demonstrate mastery of the lesson’s objectives. We recommend using these opportunities for summative assessment.
End of chapter projects incorporate the skills and understandings students have
developed in that chapter’s lessons. These projects are the primary form of
assessment in a unit and are designed to assess unit-specific skills. There is
broad guidance for the activity, but project implementation leaves room for
students to put their personal stamp on the creation. We recommend using
these opportunities for summative assessment.
● Student-facing rubrics and checklists give guidance on the skills they must demonstrate, while allowing for plenty
of choice in how to demonstrate what they have learned. These rubrics are directly related to the expected student
outcomes listed in the learning framework and give criteria for evaluation of the various objectives of the unit.
● Teacher-facing sample projects and associated marked rubrics provide guidance in how student work can be
assessed. The sample projects demonstrate varied levels of mastery of the different skills assessed by the project,
to allow teachers to compare their own student work to the marked exemplars.
Post-project tests are included at the end of every unit. These include several multiple choice and matching questions as
well as open ended reflections on the final project of the unit. These tests are aligned to the learning framework of each
unit and are designed to assess parts of the framework that may not have been covered by the project rubrics. To
holistically assess the learning objectives of the unit, the post-project test should be paired with the end-of-unit project
which is the primary student assessment in each unit. We recommend using these opportunities for summative
assessment.
44
CS Discoveries Curriculum Guide
While the course features many “unplugged” activities away from the computer, daily access to a computer is essential for
every student. However, it is not required that students have access to internet-connected computers at home. PDFs of
handouts, worksheets and readings are available on the course website.
Beyond printing, some lessons call for typical classroom supplies and manipulatives such as: Student journals, poster
paper, markers/colored pencils, scissors, scrap paper, glue or tape, post-it notes (or similar sized scrap paper), rulers or a
straight edge of some kind, index cards (or similar sized scrap paper)
In addition to those general course materials, the following items are called for in specific units:
● Problem Solving and Computing
○ Aluminum foil, container for water, pennies (note that pennies can be replaced with some other kind of
weight of the same size). Alternate activities are available if you do not have access to these supplies.
● Physical Computing
○ Classroom set of Circuit Playgrounds (1 board and micro USB cable for every 2 students). Check out
code.org/circuitplayground for more details.
○ Maker supplies, such as empty tissue boxes or cardboard rolls or scratch paper.
45
CS Discoveries Curriculum Guide
Appendix A: Professional
Learning Handouts
NOTE: This appendix was created to support teachers who are participating in the Code.org Professional Learning
Program.
46
CS Discoveries Curriculum Guide
Commitment:
47
CS Discoveries Curriculum Guide
Where can you find answers to those When do you plan to get answers to
What questions do you have?
questions? those questions?
48
CS Discoveries Curriculum Guide
Problem
Solving and 3 weeks
Computing
Web
Development
6 weeks
Interactive
Animations 7 weeks
and Games
The Design
Process
5 weeks
Data and
Society
4 weeks
Physical
Computing
6 weeks
49
CS Discoveries Curriculum Guide
Appendix B: CS Discoveries
Getting Started and
Implementation Options
NOTE: The following documents (Getting Started and Implementation Options) were created to support teachers who are
not participating in the Code.org Professional Learning Program but are shared here because they are generally useful
documents for any CS Discoveries teacher.
50
CS Discoveries Curriculum Guide
Getting Started
The course takes a wide lens on computer science by covering topics such
as programming, physical computing, web development, design, and data.
The course inspires students as they build their own websites, apps, games,
and physical computing devices. Our curriculum is available at no cost for
anyone, anywhere in the world.
In addition to computer access, you'll need typical classroom supplies, such as pencils, paper, scissors and glue, as well
as an ability to print lesson handouts for students. A few activities may require some specific supplies such as a deck of
cards or aluminum foil. You can see a full list of resources needed for each lesson at
https://studio.code.org/courses/csd-2022/resources/.
Adafruit's Circuit Playground Boards and Micro USB cables are required for our physical
computing unit. The curriculum is designed for a ratio of 2 students to 1 board & 1 usb cable. For
more details, check out our Circuit Playground page at code.org/circuitplayground.
Learning More
For more in-depth information about the CS Discoveries curriculum, go to https://studio.code.org/courses/csd. This site
includes unit overviews, detailed lesson plans, student handouts, standards alignment, and links to resources such as
online code documentation. It also includes the CS Discoveries Curriculum Guide, which guides teachers though
everything they need to know about the course, from our course content and pedagogical approach to specific instructions
for using Code.org tools.
51
CS Discoveries Curriculum Guide
Getting Started
To get started with the curriculum, you’ll need to create and verify a teacher account. Go to
https://studio.code.org/users/sign_up to set up your Code.org teacher account. This will give you access to lesson plans,
activity guides, and all online activities that your students will see. To access answer keys and other restricted materials,
go to https://code.org/verified. The verification process may take up to seven business days.
Each lesson plan includes teaching tips, discussion goals, and extra information on
content to help you fulfill your role in the classroom. The most valuable preparation for a
new-to-CS teacher, though, may be going through the course activities yourself to better
understand and empathize with the challenges your students face when engaging with
the new material.
To avoid technical problems, make sure that you can play the course videos and access published Web Lab, Game Lab,
and App Lab projects on student devices. You may need to check with your IT department to allow these sites though
your school’s firewall. For a full list of websites to unblock, visit the Code.org IT Requirements at code.org/educate/it.
To read help articles or get support directly from Code.org staff, go to support.code.org. You can search for answers to
frequently asked questions, report bugs, and give other feedback on the curriculum and tools.
52
CS Discoveries Curriculum Guide
Problem Solving & Computing Web Development Interactive Animations & Games
Semester 1 Chapter 1 Chapter 2 Chapter 1 Chapter 2 Chapter 1 Chapter 2
180 minutes 405 minutes 765 minutes 540 minutes 945 minutes 630 minutes
(~1 week) (~2 weeks) (~3-4 weeks) (~3 weeks) (~4 weeks) (~3 weeks)
AI and The Design Process Data & Society AI and Machine Learning
Machine
Learning Chapter 1 Chapter 2 Chapter 1 Chapter 2 Chapter 1 Chapter 2
(Option 2) 2 weeks 3 weeks 360 minutes 540 minutes 675 minutes 450 minutes
(405 minutes) (720 minutes) (~2 weeks) (~2-3 weeks) (~3 weeks) (~2 weeks)
Additional recommendations can be found in our AI and Machine Learning Implementation Options resource.
53
CS Discoveries Curriculum Guide
Implementation Options
Flexible Implementation
Depending on your circumstances, you may decide to implement individual units from CS Discoveries to meet your
scheduling needs, or combine units together to create new progressions within a semester. We recommend the following
strategies when considering how to design your course:
Always Begin with Problem Solving: We recommend always starting the year with Chapter 1 of the Problem Solving
with Computing unit. These three lessons introduce the Problem Solving Process, which is referred to throughout the rest
of the units.
Consider Chapter Goals: Each unit is broken into two chapters. The most essential content from each unit is always
contained in the first chapter of the unit, and the second chapter tends to focus on applying those skills to larger projects.
If necessary, you can consider skipping the second chapter of a unit to make the course fit within your schedule.
Suggested Implementations: Depending on your goals, the following pacing guides allow you to focus on particular
aspects of the curriculum. Each guide assumes starting with the first chapter of Problem Solving & Computing.
Focus on Creativity
Problem Solving & Web Development Interactive Animations and Physical Computing
Computing Games
Focus on Hardware
Focus on Data
54
CS Discoveries Curriculum Guide
Implementation Options
Problem Solving & Web Development The Design Process Physical Computing or
Computing AI and Machine Learning
Focus on Coding
Problem Solving & Web Development Interactive Animations and Physical Computing or
Computing Games AI and Machine Learning
Problem Solving & The Design Process Data and Society AI and Machine Learning
Computing
55
CS Discoveries Curriculum Guide
The AI and Machine Learning unit can be taught as part of the CS Discoveries course, or as a stand-alone module
outside of the larger CS Discoveries course.
CS Discoveries Implementation
Our AI and Machine Learning can be used as a replacement for one of the other units in CS Discoveries. This unit
assumes students are already familiar with App Lab, specifically using design mode and using events. Therefore, we
recommend teaching this unit after The Design Process in either of the sequences below:
AI and The Design Process Data & Society AI and Machine Learning
Machine
Learning Chapter 1 Chapter 2 Chapter 1 Chapter 2 Chapter 1 Chapter 2
(Option 2) 2 weeks 3 weeks 360 minutes 540 minutes 675 minutes 450 minutes
(405 minutes) (720 minutes) (~2 weeks) (~2-3 weeks) (~3 weeks) (~2 weeks)
If you would like to introduce App Lab before starting the unit, here are a few options to consider:
56
CS Discoveries Curriculum Guide
57
CS Discoveries Curriculum Guide
A Consistent Pattern
Lessons that use Code Studio typically follow a progression like the one on the right:
● Predict: Students are presented with a completed program and asked to predict
what the code will do. After typing in a response, students can run the code and
see the result.
● Skill Building: Students are given small tasks to complete with clear guidance in
the instructions and resources.
● Practice: Students are given more novel tasks to continue practicing the
concepts from the lesson.
● Assessment: Students are given a task representative of the skills from the
level, and teachers are provided a rubric they can use to assess students
● Challenges: Students are given more open-ended tasks to complete as an
extension of the skills they’ve learned in the lesson.
Predict Levels
Predict levels introduce new concepts or blocks by presenting a
completed set of code but not revealing the results until a prediction is
made. Students aren’t expected to know the correct answer when first
introduced to the code, but after seeing the code run and discussing
the outcome, students can gain a stronger understanding of how the
code works. Predict levels are a great opportunity for students to think
critically about code and engage in class discussions. Here are a few
strategies for facilitating these levels:
Think-Pair-Share First: Consider having students think of their own prediction and discuss with a partner before typing in
their response. Once they've run the code, bring the class together for a full-group discussion to share how their
predictions were similar or different from the resulting program. Use this as an opportunity to address any misconceptions
that students may have had about the code initially.
Full-Class First: Consider presenting the predict level to the entire class and asking the class to share what they think will
happen. Keep track of their predictions at the front of the room and come up with a co-created class prediction to type into
the box. Then run the code and compare the result to their predictions. After discussing and clarifying misconceptions,
invite students to return to the Predict level on their own and enter in their new understanding of what the level will do
based on the class discussion.
Caution: Predict Entries Can't Be Deleted! Once you enter an answer into the predict box, you are not able to reset it. This
can make it difficult to repeat this process with multiple classes. Instead, we recommend entering dummy text like "Class
58
CS Discoveries Curriculum Guide
discussion" and running the code. This way, the answer isn't "spoiled" for future classes. However, this means you will need
to keep track of predictions separately such as on a whiteboard or in a document.
Digging Deeper: To learn more about how to facilitate prediction-based interactions with students, check out the PRIMM
(Predict - Run - Investigate - Modify - Make) Pedagogy Quick Read from the National Centre for Computing Education.
Pair Programming: Consider having students complete Skill Building levels in pairs using Pair Programming, which has
students use one computer and trade between being a Driver or a Navigator. This process is highlighted in this video,
which you can show to the class. You can have students switch roles based on a timer, or switch every time they complete a
level.
Full-Class Programming: Consider completing some of the skill-building levels as a class, with you as the driver and your
students acting as navigators directing what to do. You can also use this strategy if you notice the entire class is struggling
with a particular level. This can be especially useful for demonstrating brand-new concepts or pointing out common
mistakes. However, students should always complete some of the skill-building levels on their own to develop fluency with
the new programming skills in the lesson.
Embrace Classroom Routines and Supports: Consider several of the following classroom routines or supports while
students complete these levels:
● Desk Stoplights: Consider giving each student a “stoplight” representing their progress through a lesson. Green
means everything is fine; yellow means they have a question but are still trying to debug it themselves; red means
they’re completely stuck and need help. As you circulate the classroom, this can help gauge how well the class is
doing and who needs assistance. This lets students reflect on their own progress and covertly ask for assistance.
You can create stoplights out of colored papers, colored popsicle sticks, or even plastic cups.
● Embrace Mistakes: Consider establishing a public “Mistake Counter” to keep track of each time a student makes a
mistake and successfully debugs their error. This supports a classroom culture that normalizes mistakes as part of
the learning process and encourages students to share their experiences so others can learn from them. See our
Guide to Debugging for more strategies to help students debug their mistakes.
● Public Resources: Encourage students to use the Help and Tips tab within each lesson to find additional
information and examples of coding concepts used in each level. Consider printing these resources and making
them available for students at their desks, or creating a word-wall with common vocabulary that students can
reference. See our Guide to Using Resources for more strategies on supporting students to use the resources
available to them.
Digging Deeper: To learn more about pair programming in the classroom, check out the K-12 Pair Programming Toolkit from
ETR.
59
CS Discoveries Curriculum Guide
Practice Levels
Practice levels are designed for students to apply their knowledge from
the previous levels and develop fluency in using the new blocks of code
to solve problems. Students can choose which practice levels they would
like to complete, and it’s not necessary for a student to complete each
practice level before continuing. In addition to the strategies above, here
are some additional considerations for facilitating these levels:
Student Explanations: Consider providing opportunities for students to demonstrate and explain their solutions to certain
practice levels to the entire class. This helps center students as classroom leaders and challenges students to explain their
thinking process.
Normalizing Mistakes and Supporting Debugging: As programming levels become more complex, students may find
themselves with bugs in their code that they need to untangle. If this happens frequently, this can be a demoralizing
experience for students and can affect their self-perception of how capable they are in class. To counter this, we
recommend normalizing bugs and mistakes as something that happens to everyone - it’s just part of the process. You can
show students our Debugging Video, which includes several students normalizing mistakes and discussing debugging
strategies that students can use. Additionally, consider displaying the Student Guide to Debugging for students to reference
throughout the unit and having Bug Report Quarter-Sheets available for students to use.
Addressing Student Helpers: Some students may want to act as “helpers” to their peers, which can have both positive and
negative effects. If some students act as helpers, consider having firm guidelines for both giving and receiving help, such as
a “don’t touch the keyboard” rule for student helpers. You may also consider switching up who the “helpers” are so multiple
students have the opportunity. If the same student is consistently finishing early and acting as the helper, consider giving
them an extra challenge instead such as extending an open-ended project. Also, be on the lookout for students who
typically don’t have the opportunity to act as the helper and look for opportunities for them to contribute to the class in a
way that highlights their CS knowledge.
Assessment Levels
Assessment levels contain a single task that requires applying the skills and
concepts from the level in order to solve. Students should complete these
levels individually and you can use your judgment of how much external help
students should have. Assessment levels also contain a rubric that can be used
for formative assessment and a box to provide feedback to students - click here
to learn more about using rubrics and giving feedback to students.
Opportunities to Reassess: The feedback panel and mini-rubric are powerful tools for offering feedback to students on
how well they understand a particular lesson, but only if students have an opportunity to engage with that feedback.
Consider providing opportunities for students to revisit assessment levels, view their feedback, and potentially re-submit
their work. This encourages students to learn from their mistakes and practice using rubrics to guide their own learning. Our
progress tools have several indicators to let you know when students have completed their work or if they need to keep
working - click here to learn more about the “Keep Working” feature.
Digging Deeper: To learn more about providing feedback to students, check out the Feedback in Practice Guide from the
Tang Institute
60
CS Discoveries Curriculum Guide
Challenge Levels
Challenge levels are designed as extensions to the concepts
and skills students learn throughout a lesson. Any new skills or
coding commands introduced in these levels are not required for
future lessons, but are offered as enrichment and additional
practice. Challenge levels tend to focus on more open-ended
tasks for students to complete, or opportunities to combine
several skills from previous lessons together into one program.
Here are some additional considerations for facilitating
challenge levels:
Focused Free-Play: In some challenge levels, students are given limited directions and are free to design a program based
on their own interests and creative expression, but focused on a particular area to give some initial guidance (for example:
an app that could be used in an educational setting, or a website for a local restaurant, or an animation that creates a
symmetrical design). This type of level can also reinforce the Problem Solving Process (Define - Prepare - Try - Reflect) as
students ideate and develop an app of their own choosing.
Because of the open-ended nature of these levels, students may not finish - however, this can still be an opportunity to gain
insights on the skills students have developed throughout the lesson and how well they can apply them in an unstructured
setting. It’s also an opportunity to discover student interests and motivations in how they may want to apply their computer
science knowledge outside of the classroom, as they may decide to continue working on these levels even as they
progress to later lessons.
Celebrating Creativity: Students may complete challenge levels in new and novel ways, with each solution being different
between students. Consider finding ways for students to share and celebrate their work with one another, such as
participating in a gallery walk to look at student projects or providing a digital space for students to post projects they’re
proud of. Students can also use the Share buttons to send their projects to themselves, or their friends and family.
61
CS Discoveries Curriculum Guide
Guide to Debugging
62
CS Discoveries Curriculum Guide
Introduction to Debugging
Debugging is the process of finding and fixing problems in code. For most programs,
the time spent debugging far outweighs the time spent writing new code. Whether
students or professional engineers, all programmers get bugs, and debugging is a
normal part of the programming process.
63
CS Discoveries Curriculum Guide
Some bugs will keep the code from running at all, while others will run, but not
correctly, or will run for a while, then stop or suddenly do something unexpected.
All of those things are clues that will help the student find the bug in the next step.
You can encourage students to clearly describe the bugs they find by having them
write up bug reports, such as in this worksheet. As you foster a positive culture
around debugging, encourage students to write bug reports for their classmates’
code as well as their own.
65
CS Discoveries Curriculum Guide
Differentiation by Task
Differentiated tasks allow students to practice a new skill or demonstrate mastery of a concept while providing flexibility in
the product or program they create. This can look like offering students choice in the task they complete, where varied
tasks appeal to different interests or skill levels. This can also look like “low flow, high ceiling” tasks, whose initial
requirements are achievable by all but have a variety of options for how students can extend and finalize their program.
With this style of differentiation, all students in your classroom cohort are working on the same type of assignment or
project, but the choices they make within the project are what lead to differentiation.
Example: Practice Levels. Practice levels can be found in lessons after students
have been introduced to the target skills before the assessment level. Practice
levels provide multiple ways to engage with the lesson content, including debugging
activities and modifying existing code.
With the guidance of a teacher, students may choose to complete all the practice
options or just as many as they need to be ready for the assessment. None of the
practice options introduce new skills or concepts, so students who skip ahead to the
assessment level will not have missed any key material. Previews and short
descriptions help students to find an activity that appeals to them.
66
CS Discoveries Curriculum Guide
Within each project lesson, students will be asked to plan out their project before starting to code. Teachers may want to
look over these plans and ensure that students are choosing a level of difficulty that is appropriate for them. As students
iterate on their projects, teachers may want to provide extra challenges or help them to modify their plans to make them
more manageable.
Example: Challenge Levels. Challenge levels are found after the assessment levels in many
of the programming lessons. These levels include new code and challenges that go beyond
the learning objectives of the lesson. Most also include a “Free Play” option that allows
students to use the new skills they have learned in whatever way they choose.
Although these levels include new content, students will be able to move on to later lessons
without needing anything introduced here, and none of it is necessary to achieve the goals of
the course. These levels provide students who have already mastered the lesson content with
new challenges and extension code, giving them more options to express themselves
creatively in the programming environment. As those students take on these more difficult
activities, teachers can provide targeted support to students who are still working toward
mastery of the lesson objectives.
Differentiation by Timing
For some tasks, you may find students need differing amounts of time to complete tasks. This could be because a student
needs additional time and support to master a concept, or because a student has given themselves a challenge and
would like to see their idea through to completion. In either case, being flexible with deadlines helping students set
individual goals for their work can help meet the unique needs of each student.
Example - Mini Projects. Mini-projects are smaller projects that appear throughout CS Discoveries units. These projects
act as checkpoints in the curricula and cover a smaller set of skills than the entire unit. Though they are only scoped for a
single day, teachers may decide to extend these projects as a way to support or challenge students. Extending these
projects may allow you to revisit difficult concepts or support students who may have missed lessons and are trying to
catch up.
Example - Implementation Options. Although the course comes with a standard pacing guide, class schedules and
student needs will make modifications necessary for most classrooms. Teachers should feel free to spend more time
where students need it, even if it means skipping other parts of the course. In particular, the first chapter of every unit
ends in a project that will wrap the content up nicely if there is no time for a second chapter.
Differentiation by Resources
Learning to use resources is a key goal of the course, and given resources provide an
opportunity for students to self-differentiate in how they interact with key course content. This
may include proactive differentiation, such as printing out resources ahead of time for students.
It can also include just-in-time differentiation, such as monitoring students as they reach the end
of a project and referring them to additional resources to extend and challenge themselves.
Example - Help and Tips. Programming levels include a “Help and Tips” tab that includes
concept explanations, code documentation, and videos to support students in completing their
activities. Resources can be printed ahead of time and made available to students who would benefit from a tangible
document that supports their task in Code Studio. We also have a guide to using resources that provides additional tips
for supporting students with resources.
Example - Documentation. Each code block includes a link to “See Examples”, which opens the documentation for
students. Students can see examples of how the block behaves and a written explanation of how to use the block in their
program. Students can always access this documentation if they need a reminder on how a block works. Or, students can
get inspired by the examples as an opportunity to extend their programs and challenge themselves.
67
CS Discoveries Curriculum Guide
68
CS Discoveries Curriculum Guide
Resources in CS Discoveries
CS Discoveries includes several key resources to support students in the learning process. Video, code documentation,
and the help and tips tab are all available to students as they engage in their programming activities. For the most part,
these resources are set up to be used as needed, not read as a pre-reading or presented as a lecture. Students are not
expected to already know all the needed information when they engage in programming activities. This structure reflects
the “discovery” model of the course, but also supports students in the authentic use of resources and code
documentation.
69
CS Discoveries Curriculum Guide
In some cases, the answer to this step might be very specific (“I need to know how to make my text green.”), but in other
cases it might be more general or hard to define. Encourage students to have a question that they want answered before
moving to the next step. You may need to support them in articulating their question or understanding what makes a
question specific enough to be useful.
● Where can I find answers to this sort of problem (code documentation, help and tips pages)?
● What has helped me solve similar problems in the past?
● What resources are available for this programming environment?
As students are reading the resource, they should also be working to use what they have learned. This means that they
may read a bit, change their code and test it, then repeat the process depending on the results of their code.
Encourage students to think about how their skills at using resources are improving over time. Do they know what
information they should look for? Do they know where to find it? Do they know how to use it?
70
CS Discoveries Curriculum Guide
71