Optional Lesson: Encoding Numbers in the Real World
In this lesson, students explore some fascinating stories from the news and history (and the future) about number encodings in computers. These stories should serve to illuminate how the kinds of decisions students have been making about number encodings are the same kinds of things that real scientists in the world have to worry about, sometimes with disastrous consequences. While this lesson has the possibility of running long, it is meant only as a short excursion into real-world application and should be limited to one class period.
Determining the number of bits that will be used in each binary number can have a profound impact on computing systems we rely upon. Many older operating systems and protocols for encoding time made use of 32-bit numbers. As computational power and time have both progressed, standards have migrated to larger binary numbers, usually 64-bit, in order to accommodate changing demands of these systems. Moving all members of the computing community over to these new standards can take some time, however, as many users continue to expect to receive and send information using the older 32-bit protocol.
Students will be able to:
- Discover the different ways number systems have been constructed and used throughout history.
- Examine real-world issues related to number encodings in computers.
- (Optional) A set of articles about number encoding tailored for your class/students
For the Teacher
For the Students
Students will need to be placed in groups of 2 to 4 people to complete their initial research. Distribute the Activity Guide - Encoding Numbers in the Real World, one copy per student. Assign each group one of the topics -- they can be found on Code Studio as well as below in this lesson guide -- and ask that they complete the top portion of the sheet. Encourage groups to divide up the work and find additional resources if they wish, but ask that everyone finish this initial research session at the same point.
Provide students 15 to 20 minutes to conduct their initial research in groups and complete the top portion of their Activity Guide. Visit groups and encourage them to stay focused on the core ideas of their topic before moving on to understanding more detailed or technical aspects of the topic.
Students should find three classmates who researched a different article and exchange the information they learned. They should record the key points from each topic in the space provided at the bottom of their Activity Guides.
Provide students a hard time limit when conducting research at the beginning of class and consider projecting a countdown timer. Use this constraint to encourage students to divide up their work and focus their attention on the overall topic, rather than specific technical details.
During the Jigsaw, consider providing students with 5- to 8-minute periods during which they can exchange information with a classmate. As before, their job is to cover the key points and make connections to their study of binary numbers.
Students will spend the majority of today’s lesson independently researching a topic related to real-world number systems. These brief comments serve to contextualize the topics students will see today as part of a broader investigation into the impacts different number systems have upon the way we represent and reason about numbers.
Say: Over the past couple of lessons, we have been studying the binary number system, since it can be constructed using only bits, the building blocks of information within a computer. Throughout history, many different number systems have been used to represent numbers. Each number system has its associated pros and cons, and often there are unintended consequences that arise from how those number systems are structured. For today’s activity, you will be researching one of these number systems to further contextualize the ideas we’ve explored for the binary number system.
- Collect the Activity Guide and assess for completeness and optionally for accuracy.
- Reflection: Choose one of the topics you most enjoyed learning about today. Describe what new information you learned and how it relates to the way we create and use number systems.
- Ask students to conduct further research into a topic they found compelling. Use this activity to develop skills students will need to employ for the Explore Performance Task.
Conclude the lesson with a sense-making discussion summarizing the broad themes running through this activity. The key points are that the binary number system, like any number system, has benefits while also imposing limits upon how we represent information. Give particular focus to at least one topic in which selecting a certain width binary number created unforeseen challenges later on. Some conversation starters are listed below. Prompts:
- Does the way you represent numbers make a difference in the way you think about numbers?
- How might the way you choose to represent numbers in a computer go wrong? What potential problems might arise from the way you choose to represent numbers?
- Of all the number systems in the world, why do you think modern computers have settled on binary? Why didn’t someone build a computer that used base 10?
- List a few rules number encoding systems must follow in order to be useful.
- Why do you think some number encoding systems are more successful than others?
Below is a set of readings that address different numbering systems and their uses. Feel free to select some, all, or go find your own sources as well.
- The 2038 problem: http://en.wikipedia.org/wiki/Year_2038_problem
- The Y2K problem: http://en.wikipedia.org/wiki/Year_2000_problem
- Polynesians used binary 600 years ago: http://www.nature.com/news/polynesian-people-used-binary-numbers-600-years-ago-1.14380
- 12 Mind-Blowing Number Systems From Other Languages http://mentalfloss.com/article/31879/12-mind-blowing-number-systems-other-languages
- A Brief Introduction to Dozenal (base 12) Counting, from the Dozenal Society http://www.dozenal.org/drupal/sites_bck/default/files/db38206_0.pdf
- Barcodes http://www.wikihow.com/Read-12-Digit-UPC-Barcodes
- Roman Numeral Arithmetic http://turner.faculty.swau.edu/mathematics/materialslibrary/roman/
- Survey of ancient number systems (You may wish to ignore the first part and perhaps assign a couple of cultures to each student.) http://www.math.chalmers.se/Math/Grundutb/GU/MAN250/S04/Number_Systems.pdf
- Jacquard Loom: http://wvegter.hivemind.net/abacus/CyberHeroes/Jacquard.htm
- Why 60 minutes in an hour: http://www.livescience.com/44964-why-60-minutes-in-an-hour.html
- 32-bit vs. 64-bit computers: http://www.digitaltrends.com/computing/32-bit-64-bit-operating-systems/
- Reflection: starting out in computer science
- (click tabs to see student view)
Starting out in Computer Science
Computer science has changed the way we communicate with each other, make art and movies, grow food, and even treat illnesses. Everyone can learn computer science and make a difference.
Quotes from students
Still, we understand that taking a computer science course can be difficult at first. Here are a few student quotes describing their strategies and tips for taking this course. Please read the quotes carefully and respond to the prompt below.
In the first week of this class I was falling behind quickly. There was a lot of new information to learn. To keep up, I had to find a better way to study. I tried to find connections between the material and what I already know. That really helped me remember things. I also tried to not overdo it. I started taking small breaks in-between lessons and when I came back I checked if I still remembered what I was studying before. It helped a lot
Sofia P. (age 16)
Some days I felt tired and would drift away in my thoughts. It was a real problem because I would miss so much of what we were learning. So I started going to bed a bit earlier and I tried my best to pay attention. At the end of every class our teacher summarized what we learned that day and that was really helpful. I started taking more notes because that also kept my mind from wandering. These little tricks got me through the class and I learned more.
Jasmin D. (age 17)
I can be pretty forgetful sometimes and it was a problem in this class. I think it's because we did so much on the computer. For my other classes I take notes on paper and read through them again at home. So the trick that I found helpful in this class was to take notes on paper anyway and to test myself about the concepts. I wasn't sure if it would work at first, but I think it ended up being a big help.
Sam J. (age 17)
Now consider the strategies and insights for how to learn best that you just read.
Reflect and Summarize:
What are your own strategies and insights about how to learn best? And, how are they similar or different to the ones that you just heard about from other students?
Please write a short paragraph. Don't worry about spelling, grammar, or how well written it is.
CSTA K-12 Computer Science Standards (2011)
CI - Community, Global, and Ethical Impacts
- CI.L2:2 - Demonstrate knowledge of changes in information technologies over time and the effects those changes have on education, the workplace and society.
CL - Collaboration
- CL.L2:3 - Collaborate with peers, experts and others using collaborative practices such as pair programming, working in project teams and participating in-group active learning activities.
CT - Computational Thinking
- CT.L2:14 - Examine connections between elements of mathematics and computer science including binary numbers, logic, sets and functions.
- CT.L2:7 - Represent data in a variety of ways including text, sounds, pictures and numbers.
- CT.L2:8 - Use visual representations of problem states, structures and data (e.g., graphs, charts, network diagrams, flowcharts).
- CT.L3A:6 - Analyze the representation and trade-offs among various forms of digital information.
Computer Science Principles
2.1 - A variety of abstractions built upon binary sequences can be used to represent all digital data.
2.1.1 - Describe the variety of abstractions used to represent data. [P3]
- 2.1.1A - Digital data is represented by abstractions at different levels.
- 2.1.1B - At the lowest level, all digital data are represented by bits.
- 2.1.1C - At a higher level, bits are grouped to represent abstractions, including but not limited to numbers, characters, and color.
- 2.1.1D - Number bases, including binary, decimal, and hexadecimal, are used to represent and investigate digital data.
- 2.1.1E - At one of the lowest levels of abstraction, digital data is represented in binary (base 2) using only combinations of the digits zero and one.
- 2.1.1F - Hexadecimal (base 16) is used to represent digital data because hexadecimal representation uses fewer digits than binary.
- 2.1.1G - Numbers can be converted from any base to any other base.
2.1.2 - Explain how binary sequences are used to represent digital data. [P5]
- 2.1.2A - A finite representation is used to model the infinite mathematical concept of a number.
- 2.1.2B - In many programming languages, the fixed number of bits used to represent characters or integers limits the range of integer values and mathematical operations; this limitation can result in overflow or other errors.
- 2.1.2D - The interpretation of a binary sequence depends on how it is used.
- 2.1.2E - A sequence of bits may represent instructions or data.
- 2.1.2F - A sequence of bits may represent different types of data in different contexts.