Computers today use digits to represent information - that's why they're called digital systems. The simplest and most common way to represent digits is the binary number system, with just two digits (usually written as 0 and 1). It is called binary because there are only two different digits used, or two states.
A bit is usually stored in a memory cell inside a computer, which is an electronic circuit that can be set to a high voltage level (1) or a low voltage level (0); on disks they are represented by magnetism or optical reflection.
There are billions of these bits on a typical computer, and they are used to store text, numbers, images, video, and anything else that we need to store or transmit. On computer networks the bits are communicated by light, voltages or sound. Anything that can have two different values can represent a bit!
The binary number system plays a central role in how information of all kinds is stored on computers. Understanding binary representation can lift a lot of the mystery from computers, because at a fundamental level they’re really just machines for flipping binary digits on and off. Computers are simple machines, and they need very exact instructions to make them do complex tasks.
Teaching binary numbers as an introduction to computational thinking introduces students to algorithms and decomposition, as they learn to break down the problems of calculating binary numbers and converting between binary and decimal numbers, into step by step processes that they can follow to solve these problems; it also introduces abstraction, as students learn that two different things can be used to represent any and all information. It shows them that a computer isn’t actually that complex, and we use simple concepts in a clever way to make computers do extraordinary things!
Each zero or one is called a bit. Bit is an abbreviation for Binary Digit.
8 bits grouped together are called a byte, and computers store data in bytes. A byte is a convenient number of bits as it can store things like simple characters, small numbers, and a useful range of colours, although usually information is stored using groups of bytes.
The binary number system is base 2, so there are only two digits before you need to move to the next place value: 0, 1.
Humans normally use the decimal number system, which is base 10, so there are ten digits before you move to the next place value: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
The number of bits used to represent characters in text affects the range of characters available; a short representation is more compact, but can't represent characters from all languages.
The number of bits used to represent colours in images affects how accurate the colours are.
The number of bits used to store sound samples affects the quality of the sound or images.
When designing a new application (perhaps storing genetic data or representing smells), the right number of bits to store a symbol needs to be selected - enough to be accurate, but not so many that it's wasteful.
In encryption and security applications, the more bits in a security key, the more secure it is.
When you purchase a device, measurements in bits relate to how much memory it has and how much data can be stored on different external storage devices.
Working with only two digits makes it much easier to build reliable circuitry for digital devices.
Throughout the lessons there are links to computational thinking. Below we've noted some general links that apply to this content.
Teaching computational thinking through CSUnplugged activities supports students to learn how to describe a problem, identify what are the important details they need to solve this problem, and break it down into small, logical steps so that they can then create a process which solves the problem, and then evaluate this process. These skills are transferable to any other curriculum area, but are particularly relevant to developing digital systems and solving problems using the capabilities of computers.
These Computational Thinking concepts are all connected to each other and support each other, but it’s important to note that not all aspects of Computational Thinking happen in every unit or lesson. We’ve highlighted the important connections for you to observe your students in action. For more background information on what our definition of Computational Thinking is see our notes about computational thinking.
There are several important algorithms for students to learn and follow in this unit. These algorithms are solutions to the problems “How do we convert between decimal and binary numbers?”, “How do we represent letters using binary numbers?”, and “How do we convert a message written in a binary code back to letters?”. Students will be tasked with following these algorithms accurately, articulating them, and explaining them.
Binary number representation is an abstraction that hides the complexity of the electronics and hardware inside a computer that store data. Abstraction helps us simplify things because we can ignore the details we don’t currently need to know.
An example of decomposition is breaking the conversion of the number to binary into one bit at a time. The questions "Should this be 1 or 0" for each of the dot cards is decomposing the problem to a series of questions.
Recognising patterns in the way the binary number system works helps give us a deeper understanding of the concepts involved, and assists us in generalising these concepts and patterns so that we can apply them to other problems.
Logical thinking means using rules you already know and using logic to deduce more rules and information from these. Once we know what number each of the binary cards represents then we can use this knowledge to figure out how to represent other numbers with the cards. If you memorise how to represent the numbers we can make with 5 cards, does that mean you understand how to represent any number with any number of bits? It doesn’t, but you can understand how to do that if you understand the logic behind how these numbers with the 5 cards are made.
An example of evaluation is working out how many different values can be represented by a given number of bits (e.g. 5 bits can represent 32 different values), and vice versa (to represent 1000 different values, you need at least 10 bits).