We call it tactile coding, but you may have heard it called “physical computing”, and it’s becoming a movement.
As computer science becomes a pillar of K-12 learning standards across the country, many of the early adopters are realizing the concepts underlying computer science often live outside the computer. When we look at the standards and practices embedded into the K12 CS standards, as well as NGSS, helping students demonstrate the underlying skills and processes behind computer science are actually better addressed away from the screen.
There’s also something else that’s important to consider, especially for our elementary teachers. When we think about how the brain develops, some of the more abstract concepts that support computer science are beyond our youngest students’ developmental levels. Sure, we can train them to repeat some movements on a screen and call it coding, but when it comes to understanding how and why computers really work, we need to look for more concrete examples of fundamental concepts.
Let’s anchor ourselves in a Piagetian developmental approach to computer science. While Piaget tied his stages to general age ranges, children all develop at different paces. Plus, it’s acknowledged that exposing children to increasingly complex ideas aids in their development. Please consider references to ages or grade-levels to be generalized, as they may not fit your experiences or students exactly.
Pre-K and Kindergarten
We begin diving into Piaget’s developmental stages with our youngest learners in PreK and Kindergarten, who are in the Preoperational Stage. This stage of development is characterized by students exploring their surroundings. Most educational conversations are intended to build students’ vocabulary and encourage an understanding of fundamental language patterns.
Obviously, many screen-based coding programs require basic reading skills and therefore inappropriate for students this young. Thus, tactile coding (physical computing) is a necessity for young students. Think about the power of students being able to create strings of computer functions without needing fine motor skills, all while building the vocabulary underlying computer science.
This vocabulary can be sequencing (first, second, last) or cause and effect (if, then, or when).
Students can also begin to understand very basic models and diagrams. In this case, showing students a picture of a 3-Cubelet robot and asking them to try to build their robot to match the image is a great exercise to practice and prepare them for computer science in a developmentally appropriate way.
ROBOT CHALLENGE: Build a robot that moves toward an object when it sees one.
HINT: You’ll only need a Distance SENSE, a Battery, and a Drive ACT Cubelet.
EXTENSION: Build a robot that spins in a circle. How many different types of spinning robots can you design?
SKILLS USED: Decomposition, Pattern Recognition, Abstraction, Algorithmic Solutions
Elementary
For our 1st through 5th graders, most of them are in Piaget’s Concrete Operational Stage. This means students are able to understand a wide array of concepts, but to really understand them best, they need physical, concrete models to hold and manipulate. This is where tactile coding really makes its mark.
For instance, to understand how functions layer together to form programs, students can use Cubelets to change a physical model of a lighthouse into a lighthouse that actually behaves the way it should (by turning on at night and turning off during the day).
ROBOT CHALLENGE: Design a lighthouse that turns on when it is dark and turns off when it is light.
HINT: Start by designing a lighthouse that rotates and lights up in the most accurate way. Then revise your design to respond to light.
EXTENSION: Use the Discovery App or Blockly to program your light to blink in a unique way.
SKILLS USED: Decomposition, Pattern Recognition, Abstraction, Algorithmic Solutions
What is a lighthouse?
This particular design challenge, in a guided classroom, is a great first introduction to the decomposition stage of computational thinking: breaking down the larger problem into smaller pieces.
- A tower
- Has a light on the top
- The light rotates – but the whole building does NOT rotate, just the light.
- The light is on when it’s dark outside, and off when it’s light outside.
Once students have had a guided approach to decomposing the lighthouse design challenge, they can apply the same concept to a steering robot. First, they might research with basic blocks or brick-building sets to observe how objects turn at all (they’ll learn that during a turn, one wheel moves slower than the other). Then, using this knowledge, they might decompose the problem into building a robot with two separate halves, then attaching them together.
ROBOT CHALLENGE: Design a robot that can turn left AND right without changing the directions of the wheels yourself.
HINT: Cubelets turn like tracked vehicles as opposed to a car (which uses an axle). This means one wheel moves slower than the other when the vehicle is turning.
EXTENSION: Can you revise your steering robot to be able to solve a simple maze?
SKILLS USED: Decomposition, Pattern Recognition, Abstraction, Algorithmic Solutions
Part of what makes these challenges appropriate for elementary-aged students is how teachers scaffold the experiences. By providing specific challenges that build on each other, and pausing student work time to facilitate conversations about the steps of computational thinking (decomposition, pattern recognition, abstraction, and algorithmic solutions), teachers protect the time elementary students need to wrestle with some of these new thinking processes.
The two tactile coding challenges we listed in this section help students meet a myriad of goals. In the CSK12 standards alone, students are addressing:
Computing Systems
- Grades 3-5 Together, devices and components form a system of interdependent parts that interact for a common purpose.
Algorithms
- Grades 3-5 Different algorithms can achieve the same result. Some algorithms are more appropriate for a specific context than others.
Variables
- Grades 3-5 Programming languages provide variables, which are used to store and modify data. The data type determines the values and operations that can be performed on that data.
Modularity
- Grades 3-5 Programs can be broken down into smaller parts to facilitate their design, implementation, and review. Programs can also be created by incorporating smaller portions of programs that have already been created.
Program Development
- Grades 3-5 Design often involves reusing existing code or remixing other programs within a community. People continuously review whether programs work as expected, and they fix, or debug, parts that do not.
Middle and High School
Middle and High School students transition into Piaget’s last developmental stage, known as the Formal Operational Stage. This is defined by the ability to understand, manipulate, and communicate about abstract concepts without needing physical objects to facilitate understanding. When students are ready to think in the Formal Operational Stage, they are able to plan and imagine in their mind’s eye alone.
At this stage, students can be introduced to computer networks and models of biological and sociological concepts. Cubelets were originally designed to represent complex, emergent biological behaviors. With this in mind, students in the Formal Operational Stage may be designing robot systems that interact with each other. This could include more literal computer science applications such as robots that sense each other (looping behaviors or conditional statements) as well as designing robots that model animalistic group behaviors.
Formal Operational students can abstract challenges more easily, so it’s fitting to invite older students to design a robot that can find a lightbulb in a dark room. While similar to a maze-solving robot (often introduced at the intermediate or early-middle school level), this robot involves several other layers of abstracting and decomposition that may be beyond the developmental stage of younger students.
ROBOT CHALLENGE: Design a robot that can find a bare lightbulb in a dark room.
HINT: This robot is similar to a maze-solving robot.
EXTENSION: Use Blockly to program a robot that can perform two different tasks
SKILLS USED: Decomposition, Abstraction, Algorithmic Solutions