Focus on Impact in Society '24-'25 (CS Discoveries)

Focus on Impact in Society is a collection of Computer Science Discoveries (CS Discoveries) units that empowers students to think about computer science as a tool to solve problems while considering the broader social impacts of various aspects of computer science. Students create authentic artifacts and engage with computer science as a medium for creativity, communication, problem-solving, and fun.

Interested in Teaching CS Discoveries? Professional development is available to help you get started teaching CS Discoveries. Click here to learn more about professional learning opportunities in your region or click here to learn more about a self-paced online option.

Unit 1 - Problem Solving and Computing ('24-'25)

Problem Solving and Computing is a highly interactive and collaborative introduction to the field of computer science, as framed within the broader pursuit of solving problems. You’ll practice using a problem solving process to address a series of puzzles, challenges, and real world scenarios. Next, you’ll learn how computers input, output, store, and process information to help humans solve problems. The unit concludes with a project in which you design an application that helps solve a problem of your choosing.

Description: This chapter guides students to develop and adopt a more formal structured problem solving process by reflecting on problems they have problems they have encountered, both in the classroom and everyday life. By working through a diverse set of problems, such as logic puzzles, engineering challenges, and planning a trip, students learn to identify different classes of problems, decompose large problems, and develop their personal problem solving skills.

Goals:

  • Learn how to use a structured problem solving process and apply it to address various problems.
  • Create a collaborative classroom environment where students view computer science as relevant, fun, and empowering.

Big Questions:

  • What strategies and processes can I use to become a more effective problem solver?
  • The first chapter of this unit should be completed before any other unit in CS Discoveries
  • Alternate lessons are provided for some lessons in this unit, depending on your classroom context
  • Additional resources are available within the Teacher Resources dropdown of the unit

If you are interested in teaching this course, we recommend completing the free Problem Solving and Computing Self-Paced Professional Development Module. The module is designed to take 2 hours to complete. No previous experience with coding is required.

Finished Teaching This Unit?

Answer this short survey to let the Code.org curriculum team know how the unit went.

Go to Unit
Unit 2 - The Design Process ('24-'25)

The Design Process unit 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.

Description: This chapter introduces the design process as a specific version of the problem solving process in which empathy for a user's needs is consistently integrated. Students learn strategies for identifying user needs and assessing how well different designs address them. In particular they learn how to develop a paper prototype, how to gather and respond to feedback about a prototype, and consider ways different user interfaces do or do not affect the usability of their apps.

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 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.

Big Questions:

  • How do designers identify the needs of their user?
  • How can we ensure that a user's needs are met by our designs?
  • What processes will best allow us to efficiently create, test, and iterate upon our designs?

Description: This chapter is focused on a long running group project that allows students to apply all they've learned about User-Centered Design to develop an app prototype. Working in teams, students identify a social issue that they care about and design and prototype an app to address that issue. This is an opportunity for students to explore other roles in software development, such as product management, marketing, design, and testing.

Goals:

  • Develop 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.

Big Questions:

  • How do teams effectively work together to develop software?
  • What roles beyond programming are necessary to design and develop software?
  • How do designers incorporate feedback into multiple iterations of a product?

Finished Teaching This Unit?

Answer this short survey to let the Code.org curriculum team know how the unit went.

Go to Unit
Unit 3 - Data and Society ('24-'25)

The Data and Society unit is about the importance of using data to solve problems and it 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. In the final project, students gather their own data and use it to develop an automated solution to a problem.

Description: Students explore how data can be used to answer interesting questions and solve problems. Using a modified version of the general Problem Solving Process, students look at how computers and humans use data differently and the pros and cons of automating problem solving. After learning ways that computers use data in the real world, students choose their own problem and use data to address it.

Goals:

  • Investigate and understand how humans and computers use data differently.
  • 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.

Big Questions:

  • How does data help us to solve problems?
  • How do computers and humans use data differently?
  • What parts of the data problem solving process can be automated?
  • What kinds of problems do computers use data to solve in the real world?

Finished Teaching This Unit?

Answer this short survey to let the Code.org curriculum team know how the unit went.

Go to Unit
Unit 4 - AI and Machine Learning ('24-'25)

This unit is a hands-on introduction to developing a machine learning model with tabular data. Students explore how computers learn from data to make decisions, then develop machine learning projects around real-world data. The unit culminates in designing a machine learning app to solve a personally relevant problem.

Description: Students learn the basics of machine learning and use a tool called AI Lab to create machine learning models that can be used in App Lab. The unit starts with an overview of machine learning and how computers can use patterns in data to make decisions and predictions. Then, students learn how to use AI Lab to train models from tabular data while exploring issues of bias. Lessons follow a repeating "unplugged - AI Lab - App Lab" pattern so students are continually exposed to the concepts and tools of machine learning. The chapter culminates in a project where students select from a set of real-world datasets to train a machine learning model and create an app.

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

Big Questions:

  • How does machine learning find patterns in data to make decisions?
  • How can we avoid bias when training a machine learning model?

Description: This chapter prepares students to be machine learning scientists to create an app that addresses an issue in their community. Students follow along with a fictional group of students as they define an issue, develop a survey to collect data, analyze their data in AI Lab, create a model card, and create an app to solve their problem. Then, in the final project, students repeat these same steps with an issue they care about in their community.

Goals:

  • Create machine learning models in AI Lab from their own data and use App Lab to create an app that uses their model to solve problems in their community.

Big Questions:

  • How can machine learning be used to solve problems in our community?

If you are interested in teaching this course, we recommend completing the free AI/ML Self-Paced Professional Development Module. The module is designed to take 2 hours to complete. No previous experience with coding or AI is assumed.

Finished Teaching This Unit?

Answer this short survey to let the Code.org curriculum team know how the unit went.

Go to Unit
Unit 5 - Post-Course Survey

This unit contains the Post-Course Survey. This unit can be assigned after students complete their final unit in this course.

Go to Unit