World’s Slowest Computer

Overview

Essential Question: What do computers do when they run a program?

Grade Band: 9–12

Devices: None

Pacing: 10 hours

Introduction

Get ready to build World’s Slowest Computers! These computers use pen and paper for memory cells, a grid of sponges for a screen, students’ minds and bodies as processing units, and a simple programming language as their instructions. In teams, students will build their computers by arranging their sponges and memory cells correctly. Each team will receive the same program to execute—in the form of stacks of printed code—with the goal of running the program correctly and finishing before the other team. Each computer’s clock speed will be measured and reported in hertz.

This embodied exercise aims to foster a visceral understanding of computation in the abstract. By not involving actual computers, we avoid the distractions of contemporary operating systems and programming languages, and instead focus on the underlying concepts that are timeless and platform agnostic. By running this exercise separate from teaching actual programming, we hope to give students a foothold into reasoning about what the machine is actually doing when it is executing their code. The experience also provides instructors something to point back to when teaching code later.

Materials

  • 200 Yellow/green sponges x 6 groups of 5 students
  • Markers
  • Stopwatch
  • Pack of index cards
  • Pack of sticky notes
  • Graph paper
  • Program printouts

Student Outcomes

Students will start this unit from the perspective of CS Explorers, interacting kinesthetically with the Sponge Computer and puzzling through executing the instructions written in Sponge Language.

Students Will/I Can Statements

Through their exploration, students will/I can:

  • interpret the components, patterns, and characteristics of a tangible computing problem or idea. (Explorer, Analyze, Abstraction)
  • interpret the clarity and completeness of instructions. (Explorer, Analyze,
  •  Algorithms)
  • examine the commands and rules of a programming language. (Explorer, Analyze, Programming)
  • plan, create/use, and test a set of instructions that completes a tangible task. (Explorer, Prototype, Algorithms)
  • create a tangible or digital program with the commands and rules of a programming language. (Explorer, Prototype, Programming)
  • explain how the components and characteristics of a tangible computing problem or idea are identified. (Explorer, Communicate, Abstraction)
  • explain why and how a set of instructions complete a tangible task. (Explorer, Communicate, Algorithms)
  • explain how programming language commands and rules are used in a program. (Explorer, Communicate, Programming)

These understandings will provide a stepping stone and reference point that will help them develop the perspective of CS Creators.

Vocabulary

This vocabulary should be introduced as students interact with the different components of the Sponge Computer during the first day of the unit. Educators may want to post vocabulary in their room for reference.

  • Program: A procedure, or set of instructions, that performs a specific task when executed by a computer.
  • Initialization: The process of preparing the computer to execute the program.
  • Execution: Computers execute programs by first turning the program into a form the computer can practically follow—such as binary.
  • Programming Language: The human-readable commands and syntax (or grammar rules) used to write programs.
  • Memory Cells: The fundamental building block of computer memory. In the Sponge Computer, memory cells are registers that can store integers. Floats, or numbers with decimals, will be truncated.
  • Hertz: A unit of frequency equal to one cycle per second.

Formative Assessment

During the lessons when students are executing the four programs provided in this unit, the teacher can assess how students are progressing using the Daily Program Execution Rubric. This rubric focuses on evaluating students on their correctness (are they executing programs accurately?), speed (are they finishing execution of problem-solving?), teamwork (are they effectively working together?), problem-solving (are they able to debug problems that come up?), and journaling (are they documenting their thinking and reflecting on computing concepts?).

End-of-Unit Performance-Based Assessment

The end-of-unit assessment will ask a group of students to write their own programs for the Sponge Computer that another group of students will execute. The teacher can assess students using the End-of-Unit Rubric. The rubric focuses on evaluating students on their application of the three CS practices (Analyze, Prototype, Communicate) on the concepts covered (Abstraction, Algorithms, and Programming). Students should feel confident working with and talking about CS concepts in simple terms after this unit.

Prerequisites and Pre-Assessment

Students will be reading and carrying out steps in a long sequence of instructions that include up to ten different actions and if-then statements. The teacher may want to determine how well students can read, interpret, and communicate their understanding of logical instructions.

Suggested Pre-Assessment

The Color by Numbers unplugged CS activity asks students to use a very simple “code” to create black and white images in a grid, which aligns with the primary activity of this unit—creating images with code. By completing this activity, the teacher can assess whether students are able to apply a simple set of instructions that has a limited set of actions—fill the grid square or don’t—and includes if-then statements. Students will also get a preview of the unit and an opportunity to ease into computational think.

Focus on pages 14–17 of the activity which provide students instruction on how to execute the instructions and three progressively more complex images to create. Assess students using a subset of the following discussion/reflection questions:

  • Were you able to create the correct image? If not, can you describe your mistake?
  • In your own words, please describe how you executed the instructions.
  • What was difficult about executing these instructions?
  • What was easy about executing these instructions?
  • Did you make any changes to the worksheet to make it easier to create the image?

Implementation Guidance and Reflection

Each lesson consists of organizing the group into teams, running programs, and discussion afterward. A program can typically be run in around 30 minutes, leaving less than 10 minutes for setup and less than 10 minutes for discussion in a typical 45-minute class.

The first four lessons are centered on students executing an existing program to create an image using the sponges. We’ve found the Diagonal Line, The Letter X, Minecraft Creeper, and Circle to be a good progression of programs, but this could be adapted by the teacher.

Once students have gained an understanding of the Sponge Computer, the remaining six lessons challenge students to write their own programs, run each other’s programs, and reflect on their learning. Students can remix, or adapt, one of the four programs provided or design one of their own. Give students:

  • three to four lessons to prototype their own programs in groups.
  • one lesson to exchange programs with another group for execution following the structure used in the first four lessons.
  • one to two lessons to create documentation of their work along with reflection (drawing on Discussion/Journaling).

The teacher may adjust the pacing of the lesson, ensure that the execution of the program is not interrupted, and ensure that students are allowed to run their programs to completion in a single sitting. If execution and discussion take place on separate days, take care to have students document their progress and experience so that they have material to jog their memories when the discussion begins.

Preparation

  • Design Journals
  • Design journals are a great way to more deeply assess students’ understanding of CS practices and concepts. (See Unit Outcomes)
  • There are different design journal modalities. Teachers should choose the one that makes the most sense for their classroom:
  • Design journals give students a place to explain their thinking and develop a stronger understanding of computing concepts. Encourage students to use them as they work and not just wait until the end of the session to write in them.
  • Program Execution
  • Before each lesson, print out the programs for students (start calling the students computers to help them understand the role they’re playing!) to execute from one of the PDFs listed under the Materials section. Teachers may want to use the online emulator to write their own programs and print them out.
  • Print out one copy of each program per group. Groups should be composed of 3–5 students.
  • Note the number of instructions for each program. All PDFs are numbered starting with step #0, so remember to add one to the number of the last step.
  • Programs can be long! Binder clips are a good way to keep them together. Avoid staples or any more permanent binding to allow students the opportunity to figure out ways to spread out and read the programs.
  • This exercise depends on secrecy! Make sure that the end result of a program is not known to anyone in the class beforehand. Do not label the stacks of paper either, and do not run the emulator before or during the execution of the program by the students.

Day-by-Day Planner

Length of Day (in minutes)

50 minutes

Day

Objectives

Teacher

Students

Resources

1

Students learn the parts of the Sponge Computer.

Teacher discusses with students their existing understanding of how computers run programs.

Teacher introduces the unit as an exploration of how computers run programs by having students act as computers.

Teacher models initializing of the Sponge Computer.

Teacher discusses the parts of the Sponge Computer and draw parallels with electronic computers.

Teacher introduces students to design journals and gives them time to personalize and reflect for the day.

 

Students form teams that will collaborate for the rest of the unit.

Students initialize the Sponge Computer as a team.

Students try making images using the sponges without writing a program.

Students personalize their design journals.

Students reflect on the following questions in their journals and/or as a class discussion:

  • What type of images did you make?
  • How do you think you might write a program to “draw” an image using the sponges?

Background and Context

Design Journals

2

Students learn how to execute programming language commands using the Sponge Language and Computer.

Teacher asks a student group to model initialization of the Sponge Computer.

Teacher models executing the Set, Plot, Plus, and Less Than commands using the Diagonal Line program.

Teacher uses Daily Program Execution Rubric to evaluate the performance of groups executing their program.

Teacher gives students time to reflect in journals and leads a class discussion if time permits.

Students work in groups to execute the Diagonal Line program after teacher models it.

Students reflect on the following questions in their journals and/or as a class discussion:

  • Describe how you executed the sponge program.
  • When did you realize what you were making?
  • What prevented you from knowing sooner?
  • Did you run into any problems?
  • How did you identify the problem?
  • How did you fix the problem?
  • Did others have alternative solutions?

Background and Context: Initialization Section

Diagonal Line

Design Journals

Program Execution Daily Rubric

3

Students work in teams to execute a program with complex control flow.

Teacher reviews Less Than and Greater Than conditional commands.

Teacher models Jump command as another form of control flow.

Teacher uses Daily Program Execution Rubric to evaluate the performance of groups executing their program.

Teacher records how long each group takes to execute the program using a stopwatch.

Teacher gives students time to reflect in journals and leads a class discussion if time permits.

Students work in groups to execute the Letter X program.

Students reflect on the following questions in their journals or as a class discussion:

  • How did you organize your team? Why?
  • How could you execute the program faster?
  • What were the different ways that you used the memory cells?
  • Did you run into any problems?
  • How did you identify the problem?
  • How did you fix the problem? Did others have alternative solutions?

The Letter X

Design Journals

Program Execution Daily Rubric

4

Students apply their understanding of patterns and control flow in programs to execute the program for a challenging image.

Teacher reviews Less Than, Greater Than, and Jump commands as different types of control flow.

Teacher uses Daily Program Execution Rubric to evaluate the performance of groups executing their program.

Teacher records how long each group takes to execute the program, using a stopwatch.

Teacher gives students time to reflect in journals and leads a class discussion if time permits.

Students work in groups to execute the Minecraft Creeper program.

Students reflect on the following questions in their journals or as a class discussion:

  • How did you organize your team? Was it different from before?
  • Did you run into any problems?
  • How did you identify the problem?
  • How did you fix the problem? Did others have alternative solutions?
  • How do computers draw much more complex images from instructions on a screen so quickly?

Minecraft Creeper

Design Journals

Program Execution Daily Rubric

5

Students execute a mathematically complex program.

Teacher introduces multiply and divide operators as well as Copy command.

Teacher uses Daily Program Execution Rubric to evaluate the performance of groups executing their program.

Teacher records how long each group takes to execute the program, using a stopwatch.

Teacher uses Daily Program Execution Rubric to evaluate the performance of groups executing their program.

Teacher gives students time to reflect in journals and leads a class discussion if time permits.

Students work in groups to execute the Circle program.

Students reflect on the following questions as in their journals or as class discussion:

  • What strategies worked to complete the program quickly?
  • What patterns helped you determine the shape?
  • Do you think computers can recognize the patterns you did? Why or why not?

Circle

Design Journals

Program Execution Daily Rubric

6–8

End-of-Unit Assessment:

Students develop, test, and document their own Sponge Language programs.

Teacher introduces students to the end-of-unit project and share the rubric.

Teacher discusses the plan, create and test steps of the Prototyping practice.

Teacher introduces the Online Emulator as a way for students to quickly test their programs.

Teacher assesses students’ process using End-of-Unit Rubric.

Teacher gives students time to reflect in journals and leads a class discussion if time permits.

Students work in groups to plan the image they’d like to program on graph paper.

Students assign roles in their group to develop and test the program—for example, a project manager, two programmers, and a debugger.

Students work iteratively to plan, create, and test their program until it functions how they expect.

Students reflect daily in their journals on their accomplishments related to their role.

Graph Paper

Online Emulator (optional, more information here)

Design Journals

End-of-Unit Rubric

9–10

End-of-Unit Assessment:

Students run each other's’ programs and reflect on the process of writing programs.

Teacher pairs groups to run each other's programs.

Teacher asks students to use Daily Program Execution Rubric to evaluate the performance of the group executing their program.

Teacher continues assessment of students’ process using End-of-Unit Rubric.

Teacher gives students time to reflect in journals and leads discussion on process of writing programs.

Teacher celebrates students’ work!

Students execute each other’s programs.

Students reflect on the following questions first in their journals then as a class discussion:

  • How did you organize your team?
  • How often did you test your program?
  • What did you learn when you tested?
  • What patterns in your shape did you take advantage of when writing your program?
  • Do you think you can write programs for electronic computers now that you’ve written them for the Sponge Computer? Why or why not?

Design Journals

End-of-Unit Rubric

End-of-Unit Performance-Based Assessment

The overarching end goal of this unit is to help students feel comfortable as CS Explorers so they have the creative confidence to be CS Creators. This assessment will focus on their ability to utilize all three CS practices to create a program that draws an image on the Sponge Computer. As they work in teams they should be encouraged to rotate roles so they have a chance to drive different aspects of the project.

End-of-Unit Rubric

Concerns

Criteria

Advanced

Analyze

Students plan programs intentionally using patterns in their desired end result, writing clear and complete instructions to recreate the shape, and correctly use the Sponge Language commands and rules.

Prototype

Students plan how they will work together to write and test their program, and test frequently to check their work, test their ideas, or debug a problem. Students ask for feedback from peers when they are stuck.

Communicate

Students explain how they utilized patterns of characteristics of their image to inform how they wrote their program. Students can discuss with evidence how programming the Sponge Computer may or may not be similar to programming an electronic computer.

Authors

Kaho Abe and Ramsey Nasser, Developed for the Playable Fashion program at Eyebeam. Playable Fashion would like to thank and acknowledge the support from our funders Eyebeam, Capital One and from National Writing Project’s Educator Innovator Initiative and the LRNG Innovation Challenge, part of the John D. and Catherine T. MacArthur Foundation, and John Legend’s Show Me Campaign.

Remixed for Educators by: NYC Department of Education-CS4ALL