Teaching Kids Coding Fundamentals With Tangible Interaction
What if a computer wasn't necessarily the best place to learn the fundamentals of coding? My master's thesis at Umeå Institute of Design is an exploration as to how we can make learning basic coding as intuitive as building with blocks.
In June 2017 this project won the Core77 – Open Design Student Award.
20 Weeks - Individual Thesis
Skills - Ethnographic Research, Rapid Prototyping, Electrical, Arduino, Story Telling, Filmmaking, Story Boarding, UX, Experience Design, Toy Design, Academic Research
Final Result Video
Code Roads is a re-positionable marble track, that, through the arrangement of modules, can be programmed. The system reacts to inputs and directs marbles through using intelligent modules that function like specific coding concepts. Kids can then use this system to solve problems in their own lives by creating custom tracks that can intelligently be programmed to react to different real world stimuli.
Meet the System
Each arrangement of the system starts with an "INPUT", these function like an "If" statement. If CONDITION is true, then DO SOMETHING. This example shows a motion detector, and its paired marble deployer. If the motion detector senses movement, it sends a message to the deployer which launches a marble into the system. A number of different detectors can be introduced, such as sound detecters, temperature or timers. Each input has its own dedicated launcher so many inputs can be used simultaneously.
These modules make the system intelligent, allowing kids to change how it reacts to the different inputs. Each module represents a different logic concept in coding. In this case, a boolean operator concept of "AND" is articulated by a Y shaped track. Through the use of IR Beams, the module knows when a ball has arrived from the left or right track. When a marble from both is detected, IE Condition 1 AND Condition 2 are true, then the module reacts by opening a door, allowing both balls to pass through. Additional logic elements are "OR", "RANDOM"
These modules are the "doers" of the system. They are composed of two paired components similar to Inputs. Whenever a marble passes through the "reader" portion, it sends a signal to the "reactor" module which then activates. The reactor can be placed anywhere within signal range and can be used to interact with the environment around them.
Using the System (Video)
Other coding education platforms introduce concepts through small example exercises; typically making a small robot move and behave in a certain way. However that process teaches concepts in a bubble. Code Roads brings the learning back into the physical world, which is where many of the challenges kids face every day are. By essentially giving kids a toolbox, they can then invent their own uses for the system. This means that the final goal is a bespoke creation, tailored around the real problems that kids have.
What kids can make with it
Here a kid has created: If (a dog barks) and (the dog is near the door) then (open the door).
Exhibition/ Thesis Defense
I successfully defended this thesis on May 17th, 2016. The project was later summarized for display at UID 16 and a works like prototype was developed for visitors to play with.
Testing Generation Videos
This testing session was the first proof of concept back in march. I needed to see whether kids could successfully manipulate the modules, predict where marbles would fall, and have the kid explain back concepts of the system accurately.
First functioning packaged prototype of an "input". Here it reacts to sound, and launches a marble when sound is detected.
First functioning packaged prototype of "AND" Boolean Operator.
First functioning packaged prototype of an "output". Made using a SAM labs prototyping module for compactness.
This project involved a heavy prototyping phase that ran from the first day. Initially I just wanted to discover what kinds of concepts from coding I could translate into a physical form. Later once a more defined direction was chosen I focused on using and testing the technology that I thought could power the final system. Here is a selection of progress videos showing each of the components being brought to life.