Our newest course: CS Discoveries

What is CS Discoveries?

Computer Science Discoveries (CS Discoveries) is an introductory computer science course that empowers students to create authentic artifacts and engage with computer science as a medium for creativity, communication, problem solving, and fun.

Need a video you can use for student recruitment for the course? Click here

Computer Science Discoveries

Recommended for Grades 6-10

Computer Science Discoveries (CS Discoveries) is an introductory computer science course that empowers students to create authentic artifacts and engage with computer science as a medium for creativity, communication, problem solving, and fun.

Professional learning program

Our middle and high school programs offer year-round support. The program kicks off with a five-day summer workshop where you'll have an opportunity to work hands-on with the curriculum and meet other teachers from your area. Throughout the year, we offer online support for upcoming units, forum support, and 1-day quarterly workshops. You don't need any prior computer science experience to get started. And teachers love it! 90% rank it the best professional development ever.

Course Design

Designed with equity in mind

CS Discoveries is designed from the ground up to be an accessible and engaging course for all students, regardless of background or prior experience. It provides students opportunities to engage with culturally and personally relevant topics in a wide variety of contexts and aims to show all students that CS is for them.

Focus on creation

We know that giving students agency in their learning is a powerful tool for creating fun, engaging, and lasting learning experiences. CS Discoveries focuses on the skills that enable students to create and express themselves in a variety of contexts and media. Whether they are developing their own website, designing an app, building a game, or creating a physical computing device, students are empowered to bring their ideas to life.

Completing a K-12 pathway

CS Discoveries is designed to fit naturally between our CS Fundamentals courses and our CS Principles course. While each of these courses is designed to be an age-appropriate entry point to computer science, students with previous experience will find many new topics to explore, and they will revisit familiar topics in novel and more challenging contexts.

Supports for new-to-CS teachers

CS Discoveries is specifically designed to support new-to-CS teachers. The curriculum includes detailed lesson plans, and frequent teaching tips. The accompanying forum is an active community of support that teachers can use to discuss their practice and find additional resources. Teachers can also apply for our professional learning program for further support.

Flexible Implementation

CS Discoveries is appropriate for 6th - 10th grade classrooms and can be used in either middle school or early high school. The two semesters build on each other, allowing the course to be taught as a single semester, two sequential semesters, a full-year course, or even integrated into existing technology classes.

Powerful tools with a high ceiling

CS Discoveries introduces students to tools and programming languages that are accessible for beginners while offering more advanced students opportunities to create sophisticated projects. Using our existing App Lab programming environment and our new programming environment, Game Lab, students will be able to transition from blocks to typed code at their own pace while learning JavaScript. Students will also develop maker skills through the study of physical computing at a very accessible cost.

Daily lesson plans come with detailed instructions, activity guides, and assessments

Students explore programming concepts through the development of animations and games in Game Lab

Students create prototypes of internet-connected physical computing devices using Adafruit's Circuit Playground board and App Lab

Course Overview

One-pager describing the course

Computer Science encompasses far more than just coding, and CS Discoveries will provide students with opportunities to explore the many facets of CS, both in terms of how they are personally relevant as well as how they impact society.

Semester 1 - Exploration and Expression

The first semester of CS Discoveries introduces students to computer science as a vehicle for problem solving, communication, and personal expression. As a whole, this semester focuses on the visible aspects of computing and computer science, and encourages students to see where computer science exists around them and how they can engage with it as a tool for exploration and expression.

Unit 1 - Problem Solving

Unit 1 is a highly interactive and collaborative introduction to the field of computer science, as framed within the broader pursuit of solving problems. Through a series of puzzles, challenges, and real world scenarios, students are introduced to a problem solving process that they will return to repeatedly throughout the course. Students then learn how computers input, output, store, and process information to help humans solve problems. The unit concludes with students designing an application that helps solve a problem of their choosing.

Unit 2 - Web Development

In Unit 2, students are empowered to create and share the 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 think critically about the impact of sharing information online and how to be more critical content consumers. They are also introduced to problem solving as it relates to programming, as they learn valuable skills such as debugging, commenting, and structure of language. At the conclusion of the unit, students compile their work to create a personal website they can publish and share.

Unit 3 - Animations and Games

In Unit 3, students build on their coding experience as they create programmatic images, animations, interactive art, and games. Starting off with simple, primitive shapes and building up to more sophisticated sprite-based games, students become familiar with the programming concepts and the design process computer scientists use daily. They then learn how these simpler constructs can be combined to create more complex programs. In the final project, students develop a personalized, interactive program. Along the way, they practice design, testing, and iteration, as they come to see that failure and debugging are an expected and valuable part of the programming process.

Semester 2 - Innovation and Impact

Where the first semester centers on the immediately observable and personally applicable elements of computer science, the second semester asks students to look outward and explore the impact of computer science on society. Students will see how a thorough user-centered design process produces a better application, how data is used to address problems that affect large numbers of people, and how physical computing with bare circuit boards allows computers to collect input and return output in a variety of ways.

Unit 4 - The Design Process

Unit 4 transitions students from thinking about computer science as a tool to solve their own problems towards considering the broader social impacts of computing. Through a series of design challenges, students are asked to consider and understand the needs of others while developing a solution to a problem. The second half of the unit consists of an iterative team project, during which students have the opportunity to identify a need that they care about, prototype solutions both on paper and in App Lab, and test their solutions with real users to get feedback and drive further iteration.

Unit 5 - Data and Society

This unit is about the importance of data in solving problems and highlights how computers can help in this process. The first chapter explores different systems used to represent information in a computer and the challenges and tradeoffs posed by using them. In the second chapter students learn how collections of data are used to solve problems, and how computers help to automate the steps of this process. The chapter concludes by considering how the data problem solving process can be applied to an area of the students' choosing.

Unit 6 - Physical Computing

In Unit 6, students further develop their programming skills while exploring the role of hardware platforms in computing. Harkening back to the Input and Output elements of the Input/Storage/Processing/Output model for a computing, students look towards current and “smart” devices to understand the ways in which different sensors can provide more effective input and output than the traditional keyboard, mouse, and monitor. Using App Lab and Adafruit’s Circuit Playground, students develop programs that utilize the same hardware inputs and outputs that students saw in the smart devices they explored earlier, and they get to see how a simple rough prototype can lead to a finished product. The unit concludes with a design challenge that asks students to use the Circuit Playground as the basis for an innovation of their own design.

Get Involved

Try out and give feedback on drafted lessons

We post lesson drafts as soon as they're ready, and are eager to have teachers try them in classrooms and provide feedback. Because the whole course is not finished, this is a good option if you have an existing CS or tech ed class and would like to pick up a few lessons or a unit and integrate it into your existing curriculum.

Learn more about professional learning!

This intensive program is designed to prepare educators to provide high quality instruction based on the CS Discoveries curriculum, tools and approach to students in their classrooms.

Stay up to date on our progress

Want to know when we've posted new lesson drafts and have tools that are ready to experiment with? Sign up for our monthly emails, which contain the latest news and links to beta lesson plans, tools, videos, and other important updates for the CS Discoveries project.


The CS Discoveries Curriculum Guide is a great place to start if you'd like an in-depth introduction to the curriculum before jumping into lessons. The curriculum guide contains details on the classroom and student practices that flow throughout the course, overviews of each of the units, and implementation considerations.

Unit Lesson Plans Code Studio
Unit 1 - Problem Solving Lesson plans Code Studio
Unit 2 - Web Development Lesson plans Code Studio
Unit 3 - Animations and Games Lesson plans Code Studio
Unit 4 - The Design Process Lesson plans Code Studio
Unit 5 - Data and Society Lesson plans Code Studio
Unit 6 - Physical Computing Lesson plans Code Studio

Frequently Asked Questions

What is the timeline for CS Discoveries?

All units are released at this time and can be used by teachers and classrooms. Throughout Fall 2017, we will be releasing revised versions of Units 4 - 6 to incorporate feedback from our Spring 2017 pilot. this website frequently as we release drafted lesson plans!

Will CS Discoveries be mapped to standards?

CS Discoveries was written using both the K-12 Framework for Computer Science and the newly revised 2017 CSTA standards as guidance. Currently, every lesson in CS Discoveries contains mappings to the relevant 2017 CSTA standards. The summary of of all CSTA 2017 mappings can be found at curriculum.code.org/csd/standards

I’m teaching CS Discoveries but have less than one semester with my students. What would you recommend?

CS Discoveries consists of two semesters that build on each other. Schools can choose to teach a single semester, two sequential semesters, or a single, year-long course. For courses that meet fewer than three hours a week or last for less than a trimester, we recommend CS Fundamentals Express, a 30+ hour course that covers the foundational concepts of programming.

Some schools may want to use parts of the CS Discoveries curriculum without running an entire semester of the course. We always suggest starting with at least the first chapter of Unit 1 to build the classroom culture and problem solving skills the rest of the course depends on. Afterwards, students can move on to any of Units 2 - 5, either completing the entire unit or stopping at the end of the Chapter 1 project. Because of the programming knowledge required for Unit 6, students should only attempt it after completing Unit 3.

What materials and supplies are required for CS Discoveries?

*** For teachers participating in our 2017-18 Professional Learning Program who are implementing the full-year version of the course, we will be subsidizing or partially subsidizing one classroom kit of Adafruit Circuit Playground Boards. This kit contains 15 boards and accessories and supports a classroom of 30 students, assuming a 2:1 ratio of students to boards. To learn more about the classroom kit, software requirements, and the details of the subsidy visit code.org/circuitplayground ***

What is the relationship between CS Discoveries and Exploring Computer Science?

The CS Discoveries course is deeply inspired by the philosophy of ECS, based on our experience teaching ECS, scaling it to thousands of classrooms nationwide, and evaluation of feedback from the teachers. This course teaches similar core concepts as ECS, and has a shared inquiry-based philosophy and teacher-learner-observer PD model. It also shares the same emphasis on equity which has pervaded Code.org's curriculum in other grade levels.

Learn more about Code.org's transition to CS Discoveries from Exploring Computer Science.