Last summer I had the opportunity to meet a number of talented computer science teachers at a workshop for CS50AP in Redmond. During the discussion on binary someone mentioned a lesson they do using coins with binary values as a way to begin teaching the concept. Students are only given one of each coin and are told they will be going to a candy store and must pay in exact change. They quickly realize that no matter what the price (up to a maximum) they can always pay in exact change.
I decided I needed a set to use with my own students. Although, I used them slightly differently. In my scenario they were tokens for a new transit system going in. Just like on a city bus riders must pay in exact change and the price of a ride depends on a variety of factors, but ranges from $0.01 to $2.50. The question would is, "What combination of tokens you would need to guarantee you could take any ride?" I printed three or four sets and mixed them together for my students. Depending on your class size you may need more.
I made these coins in Tinkered. Total time to create was just a few minutes. You can edit them there or even break them into individual stl's if needed.
The design is really very simple:
- Drag in a cylinder and make it the size you want your coin to be
- Add a cylinder hole a bit smaller than the first. Lift it off the build plane until it only cuts 1 mm into your coin
- Use the Text Shape Generator to create your numbers. Size appropriately and place on your coin.
Overview and Background
These coins are intended to help introduce the idea of binary numbers. Most students only familiar with our normal base 10 numbering system and it is often helpful to have physical objects on hand to help students build the idea of other numbering systems.
- Students will recognize that all the tokens provided double in size
- Students will be able to explain how any number from 1 to 255 can be created using only a single set of these tokens
- Students will begin building a mental model for a base 2 numbering system
- This activity is intended for students being taught abstraction as a computational thinking
Skills Learned (Standards):
- Computational Thinking Practice - Abstraction
- Computational Thinking Practice - Analyzing Problems and Artifacts
Lesson Plan and Activity
- Provide the prompt below and multiple sets of tokens:
A new tech startup, Janus Ride, has announced they will use self driving electric cars to take you from any address in town to any other address in town. You will be charged based on the precise distance and projected travel time. Due to inherent efficiencies and public subsidies the price of a ride will vary from an absurdly low $0.01 to a still amazingly low $2.50. The rider must pay in exact change only using official Janus Ride tokens. Tokens come in values of $1.28, $0.64, $0.32, $0.16, $0.08, $0.04, $0.02, and $0.01.
- Have students propose trips form school to various locations around town and give them projected costs. These are not very critical, just make up any price up to $2.50. Ask students to provide exact change for multiple different destinations.
- Once they have done a few, ask student groups to determine what is the best combination of tokens to have that would allow them to take any ride.
- Have groups share in whole class discussion. Have students contrast this with traditional money. What combination of coins would they need? Is this more or less efficient?
Depending on your students, this activity can take 15 to 30 minutes.
You should have multiple sets of tokens available. Students require no prior knowledge or preparation.
Binary Numbers - Computers Unplugged - There are lots of resources for helping teach students about binary numbers here.