Unit6

Unit 6 - Physical Computing

In the Physical Computing unit, students further develop their programming skills, while exploring more deeply the role of hardware platforms in computing. Harkening back to the Input/Storage/Processing/Output model for a computer, students look towards modern “smart” devices to understand the ways in which non-traditional computing platforms take input and provide output in ways that couldn't be done with 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 we see in many modern smart devices, 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.

Modifications for Virtual and Socially-Distanced Classrooms

Are you teaching in a virtual setting or in a socially-distanced classroom?

Check out this document for ideas and resources to help you tailor common practices like Think Pair Share or Peer Feedback to your learning environment.

Chapter 1: Programming with Hardware

Big Questions

  • How does software interact with hardware?
  • How can computers sense and respond to their environment?
  • What kind of information can be communicated with simple hardware outputs?

Week 1

Lesson 1: Innovations in Computing

Research | Unplugged

  • Warm Up (10 min)
  • Activity (45 min)
  • Wrap Up (2 min)
  • Extensions

In this lesson, students explore a wide variety of new and innovative computing platforms while expanding their understanding of what a computer can be.

Student Links: Activity Guide | Video | Video

Lesson 2: Designing Screens with Code

App Lab

  • Warm Up (5 min)
  • Activity (45 to 60 minutes)
  • Wrap Up (5 min)

By reading and changing the content on the screen of an app, the class starts to build apps that only need a single screen. Even with just one screen, students can begin to see that these techniques allow for lots of user interaction and functionality.

Lesson 3: The Circuit Playground

App Lab | Maker Toolkit

  • Warm Up (5 min)
  • Activity (45)
  • Wrap Up (5 min)

In this lesson, students get to know the Circuit Playground, the circuit board that will be used throughout the rest of this unit. Using App Lab, they develop programs that use the Circuit Playground for output.

Week 2

Lesson 4: Input Unplugged

Unplugged

  • Warm Up (10 min)
  • Activity (40 min)
  • Wrap Up (2 min)

Students experience two different ways that an app can collect input from a user, while learning more about the event-driven programming model used in App Lab.

Student Links: Activity Guide

Lesson 5: Board Events

App Lab | Maker Toolkit

  • Warm Up (5 min)
  • Activity (45 min)
  • Wrap Up (2 min)

Using the hardware buttons and switch, students develop programs that use the Circuit Playground as an input.

Lesson 6: Getting Properties

App Lab | Maker Toolkit

  • Warm Up (5 min)
  • Activity (40 min)
  • Wrap Up (10 min)

This lesson introduces students to the getProperty block, which allows them to access the properties of different elements with code. They first practice using the block to determine what the user has input in various user interface elements. Students later use getProperty and setProperty together with the counter pattern to make elements move across the screen. A new screen element, the slider, and a new event trigger, onChange, are also introduced.

Lesson 7: Analog Input

App Lab | Maker Toolkit

  • Warm Up (10 min)
  • Activity (40 min)
  • Wrap Up (5 min)

Students get to explore the analog inputs on the Circuit Playground, writing programs that respond to the environment through sensors.

Student Links: Video

Week 3

Lesson 8: The Program Design Process

App Lab | Maker Toolkit

  • Warm Up (15 min)
  • Activity (45-60 min)
  • Wrap Up (20 min)

This lesson introduces students to the process they will use to design programs of their own throughout this unit. This process is centered around a project guide that asks students to sketch out their screens, identify elements of the Circuit Playground to be used, define variables, and describe events before they begin programming (a process very similar to the Game Design Process that students used in Unit 3). Students begin by playing a tug o' war style game where the code is hidden. They discuss what they think the board components, events, and variables would need to be to make the program. Then, they are then given a completed project guide that shows one way to implement the project, and are walked through this process in a series of levels. At the end of the lesson, students have an opportunity to make improvements to the program to make it their own.

Student Links: Project Guide

Lesson 9: Project - Make a Game

App Lab | Maker Toolkit | Project

  • Warm Up (10 min)
  • Activity (90 - 120 min)
  • Wrap Up (10 min)

For this project, students design and create a game that leverages the new inputs and outputs that are available to them. This project is purposefully left very open-ended to empower students to think broadly about how physical output might be useful in an app, while still giving them a chance to review the program development process and try out the new features available through the Circuit Playground.

Teacher Links: Exemplars Student Links: Reflection | Project Guide

Chapter Commentary

This unit begins with an activity that encourages students to explore a wide variety of non-traditional computing platforms, before kicking off a review of programming in App Lab, with a particular focus on better understanding the event-driven programming model that was first introduced in Unit 4. Students learn techniques to make the apps they write more flexible by modifying design elements through code instead of always relying on design mode. Using the Circuit Playground, they then explore different approaches to taking input and producing output using hardware. By the end of this chapter, students will design a develop a game that uses physical hardware for input and output.


Chapter 2: Building Physical Prototypes

Big Questions

  • How do programmers work with larger amounts of similar values?
  • How can complex real-world information be represented in code?
  • How can simple hardware be used to develop innovative new products?

Week 4

Lesson 10: Arrays and Color LEDs

App Lab | Maker Toolkit

  • Warm Up (5 min)
  • Activity (45 min)
  • Wrap Up (5 min)

In this lesson, students are introduced to the ring of color LEDs, which are exposed as an array called colorLeds. Students learn how to access and control each LED in an array individually, preparing them to access multiple LEDs through iteration later in the chapter.

Lesson 11: Making Music

App Lab | Maker Toolkit

  • Warm-Up (5 min)
  • Activity (40 min)
  • Wrap-Up (5 min)

In this lesson, students will use the Circuit Playground’s buzzer feature to its full extent by producing sounds, notes, and songs. Students start with a short review of the buzzer's frequency and duration parameters, then move on to the concept of musical notes. Notes allow students to constrain themselves to frequencies that are used in Western music and provide a layer of abstraction that helps them to understand which frequencies might sound good together. Once students are able to play notes on the buzzer, they use arrays to hold and play sequences of notes, and compose simple songs.

Lesson 12: Arrays and For Loops

App Lab | Maker Toolkit

  • Warm Up (5 min)
  • Activity (40 min)
  • Wrap Up

Students learn to combine lists and for-loops in this lesson, which allows them to write code that impacts every element of a list, regardless of how long it is. The class uses this structure to write programs that process all of the elements in lists, including the list of color LEDs.

Lesson 13: Accelerometer

App Lab | Maker Toolkit

  • Warm Up (5 Min)
  • Activity (45 min)
  • Wrap Up (5 Min)

In this lesson, students will explore the accelerometer and its capabilities. They’ll become familiar with its events and properties, as well as create multiple programs utilizing the accelerometer similar to those they’ve likely come across in real world applications.

Week 5

Lesson 14: Functions with Parameters

App Lab | Maker Toolkit

  • Warm Up
  • Activity (50 min)
  • Wrap Up

This lesson starts with a quick review of parameters in the context of the App Lab blocks that students have seen recently. Students then look at examples of parameters within user-created functions in App Lab, and create and call functions with parameters to control multiple elements on a screen. Afterward, they use for loops to iterate over an array, passing each element into a function. Last, students use what they have learned to create a star catching game.

Lesson 15: Circuits and Physical Prototypes

App Lab | Maker Toolkit

  • Warm Up (5 min)
  • Activity 1 (30 min)
  • Activity 2 (30-45 min)
  • Activity 3 (30-45 min)
  • Wrap Up (15 min)

In this lesson, students wire simple circuits to create a physical prototype using low-cost and easily-found materials.

Student Links: Video | Project Guide

Week 6

Lesson 16: Project - Prototype an Innovation

App Lab | Maker Toolkit | Project

  • Warm Up (10 min)
  • Activity (80-200 min)
  • Wrap Up (30-60 min)
  • Extensions

This final project challenges students to develop and test a prototype for an innovative computing device that interacts with the physical world through various types of input and output, whichallow for interesting and unique user interactions. This project is an opportunity for students to showcase their technical skills, but they will also need to demonstrate collaboration, constructive peer feedback, and iterative problem solving as they encounter obstacles along the way. This project should be student-directed whenever possible, and provide an empowering and memorable conclusion to the final unit of CS Discoveries.

Teacher Links: Exemplars Student Links: Rubric | Reflection | Project Guide

Chapter Commentary

With an understanding of how to use hardware to take input and produce output, students move to thinking about more complex programs that integrate hardware and software. Using the color LEDs as an example of a a group of like objects, students learn how to use arrays to keep track of lists of values. From there we introduce the for loop, first simply as a way to repeat a block of code, and then as a way to run code on each element of an array. By the end of this chapter students will have explored all components of their boards while learning to structure their code using arrays, loops, and parametric functions. In the final two lessons students have an opportunity to dig into building physical prototypes using their boards.