It’s no big secret that the United States has a prison problem. We lock up people at higher rates than any other nation, and there are huge racial disparities in who we lock up. According to a study from The Sentencing Project, in state prisons, African Americans are incarcerated 5 times more than whites. There are lots of reasons why we may see these racial disparities, including law enforcement practices, crime rates, and punitive sentencing policies. Keeping so many people in prison is really expensive-- it costs about $80 billion dollars a year-- and it contributes to racial inequalities in America. As a result, there’s a big push among both Democrats and Republicans to reform our prison system. And one popular strategy many people advocate for as part of this reform effort is risk assessment tools. The tools use data to predict whether a person will commit a future crime. This video explores how these tools work and some of the controversy surrounding their use. This video comes with a student viewing guide.
Robots are often thought of as a technology of the future, but they're already here by the millions in the workplace, our homes, and pretty soon on the roads. We'll discuss the origins of robotics to its proliferation and even look at some common control designs that were implemented to make them more useful in the workplace.
Have you ever had a complex problem that you needed to solve? This could be a math problem, science experiment, an essay you need to write, and coding and game design. It could even be as simple as planning the best route to school or baking your favorite cookies!
Computational thinking can be used to take a complex problem, understand what the problem is and develop possible solutions to solve or explain it.
Students will complete Quests to learn about the four stages of computational thinking:
When you have completed this activity you will:
be able to solve complex problems using computational thinking. [Computational Thinker]
be able to break down a problem into smaller more manageable parts. [Computational Thinker]
know how to look for patterns and sequences. [Computational Thinker]
be able to focus on important information only. [Computational Thinker]
be able to develop a step-by-step solution to the problem. [Computational Thinker]
know how to use coding to automate a task [Computational Thinker]
understand computational design by applying technology to a problem [Innovative Designer]
understand programming as you complete hands-on activities, solving problems encountered [Computational Thinker]
understand the coding your program creates [Empowered Learner]
Computers draw lines and circles during many common tasks, such as using an image editor. But how does a computer know which pixels to darken to make a line?
Students will discover two common algorithms used to draw a line between two points and a circle of a given radius.
This activity introduces the idea of “divide and conquer” using a fictitious but serious problem – a pair of dirty socks have accidentally been wrapped in one of the presents that Santa is about to deliver, and he needs to figure out which one to avoid a child getting a nasty surprise.
You can either play the video (linked in the activity) or download the PDF of the book (see the PDF files in the link to the activity) to read aloud or give to students.
The solution in the story points out that when there are 1024 boxes to test, instead of having to open all of them until the socks are found, one half can be eliminated at a time, and repeatedly halving the problem very quickly narrows it down to one box (the size of the problem starts at 1024, then with one weighing there are 512 boxes, then 256, 128, 64, 32, 16, 8, 4, 2 and 1.) This idea comes up frequently in the design of fast computer algorithms.
Computer programs often need to process a sequence of symbols such as letters or words in a document, or even the text of another computer program. Computer scientists often use a finite-state automaton to do this. A finite-state automaton (FSA) follows a set of instructions to see if the computer will recognize the word or string of symbols. We will be working with something equivalent to a FSA—treasure maps!
The goal of the students is to find Treasure Island. Friendly pirate ships sail along a fixed set of routes between the islands in this part of the world, offering rides to travelers. Each island has two departing ships, A and B, which you can choose to travel on. You need to find the best route to Treasure Island. At each island you arrive at you may ask for either ship A or B (not both). The person at the island will tell you where your ship will take you to next, but the pirates don’t have a map of all the islands available. Use your map to keep track of where you are going and which ship you have traveled on.
In Music & Sound, students use the computer to play musical notes, create a music video, and build an interactive music display while learning how programming is used to create music.
Music is a complete theme designed to be completed over eight, 45-75 minute, sessions. For each activity, students will watch a series of videos and create one coding project with opportunities to personalize their work using “Add-Ons,” which are mini-coding challenges that build on top of the core project.
Be sure to review the Materials tab for the lesson plan, starter guide, and more.
Users will need a Google account to use this resource.
Students will plan, design, and create a physical prototype using block programming to control simple wire circuits using cheap and easily found materials.
Note: You will need to create a free account on code.org before you can view this resource.
This lesson introduces the process the class will use to design games for the remainder of the unit. The class walks through this process in a series of levels. As part of this lesson the class also briefly learns to use multi-frame animations in the Game Lab. At the end of the lesson, they have an opportunity to make improvements to the game to make it their own.
After a brief review of how the counter pattern is used to move sprites, the class is introduced to the properties that set velocity and rotation speed directly. As they use these new properties in different ways, they build up the skills they need to create a basic side scroller game.
The class learns to combine the velocity properties of sprites with the counter pattern to create more complex sprite movement, such as simulating gravity, making a sprite jump, and allowing a sprite to float left or right. In the final levels, the class combines these movements to animate and control a single sprite and build a simple game in which a character flies around and collects coins.
The class programs their sprites to interact in new ways. After a brief review of how they used the isTouching block, the class brainstorms other ways that two sprites could interact. They then use isTouching to make one sprite push another across the screen before practicing with the four collision blocks (collide, displace, bounce, and bounceOff).
This lesson covers functions as a way to organize code, make it more readable, and remove repeated blocks of code. The class learns that higher level or more abstract steps make it easier to understand and reason about steps, then begins to create functions in Game Lab. At the end of the lesson, the class uses these skills to organize and add functionality to the final version of their side scroller game.
In this lesson, the class applies the problem-solving process to three different problems: a word search, a seating arrangement for a birthday party, and planning a trip. The problems grow increasingly complex and poorly defined to highlight how the problem-solving process is particularly helpful when tackling these types of problems.
This lesson explores the challenges of communicating how to draw with shapes and uses a tool that introduces how this problem is approached in the Game Lab. The class uses a Game Lab tool to interactively place shapes on Game Lab's 400 by 400 grid. Partners then take turns instructing each other how to draw a hidden image using this tool, accounting for many of the challenges of programming in Game Lab.
The class is introduced to the Game Lab, the programming environment for this unit, and begins to use it to position shapes on the screen. The lesson covers the basics of sequencing and debugging, as well as a few simple commands. At the end of the lesson, the class creates an online version of the image they designed in the previous lesson.
The class works in groups to design aluminum foil boats that will support as many pennies as possible. At the end of the lesson, groups reflect on their experiences with the activity and make connections to the types of problem-solving they will be doing for the rest of the course.