Imagine a world where playing Pong and Minecraft gives people the power to program their computers. That world is Kano.
A crowdfunded startup, it took the idea behind Lego to teach computer programming by playing first-generation computer games. Kano launched on Kickstarter in November 2013. More than 13,000 people from some 50 countries raised US$1.5 million in 30 days. Barely one year later, Kano is getting ready to deliver 18,000 preordered kits purchased for $129 each.
The idea behind Kano Blocks, a collection of Lego-like shapes with embedded programming code, came from the then 6-year-old son of cofounder Saul Klein. Two other cofounders, Yonatan Raz-Fridman and Alex Klein, head the team of software developers at the company’s headquarters in London.
The innovative programming language lets kids drag and drop blocks into the code window to create Python or JavaScript code. The Kano Kit is powered by the Debian Linux derivative distro and a suite of apps.
The Kano Kit comes with a Raspberry Pi, a custom case, covers, a wireless keyboard with trackpad, HDMI and MicroUSB cables for display and power, a USB WiFi dongle, power sockets, and an 8-GB SD card carrying the Kano OS.
In this exclusive interview, Alejandro Simon, Kano’s head of software and leader of the Kano OS, discusses the process of letting anyone discover the power of computer programming without actually teaching them how to write code.
LinuxInsider: Why do we need a new approach to teaching computer programming?
Alejandro Simon:
The idea was to give tools to a whole new generation of creators. So rather than consuming and playing games, they could create something useful. In our case, we create code. We create music. You can share everything you create with the community.
LI: What does Kano actually run on as an OS?
Simon:
The OS is something that anyone can use. We did not want to create something different. It does not overwhelm beginners. We started working with the Raspberry Pi Linux distro. I started coding in that. But we wanted to modify that foundation to make it something more accessible. We wanted to make it easier for the very beginners.
LI: Why is it so important to teach kids computer programming skills?
Simon:
The same thing happens with people who drive a car. They learn the basics like putting oil in the car. So why not learn about how computers work for anyone who has a computer in his or her pocket? We do not want to convert every kid into a programmer. That is not the idea. The aim is to teach the basics. Teach how a computer thinks. How a computer reads the code, and what does code mean. What is a script.
LI: What language does Kano teach?
Simon:
We do not want to teach a specific language. Our approach is not to teach Python, for example. Our approach is use a blocking approach for the language. We built a language into a series of blocks using an open source library. We modified it to be consistent with our own ecosystem of tools.
LI: What makes this approach revolutionary?
Simon:
This is a brilliant tool. You work with blocks which generate some code. You connect them in sequence to create commands. Each block has an embedded code in it for a specific purpose. You put them together in a correct order and you create a language that the computer can follow. In our case, we decided to base it on Python.
LI: Why base it on Python?
Simon:
Good question — but I do not know. We just decided that it worked well for our purpose. Python is real easy to read and is real easy to learn. It is very friendly, I think. We could have used other languages, but Python seemed reasonable to teach programming nowadays.
LI: What is the connection between blocks and structured coding?
Simon:
The magic comes from using blocks. It is difficult to see the connection between strings of code if you are not a programmer. We color-code the blocks. We put the code right next to the color. Then it is easy to see the relationship. You can see how the code changes dynamically when you connect another block. As you look at what happens, your mind suddenly goes: “Whoa! Those blocks actually mean this code.”
LI: How much computer knowledge does a person need to learn to program with Kano?
Simon:
With the blocks you do not need to know the semantics. You just have to know that if this happens you just have to do that. It is language-agnostic. But that is how every single computer thinks in the world. If this, then do that.
LI: Can kids and others actually see the code, or do they just play with blocks?
Simon:
We first did Pong. Everything is open source so we include the full code in a very easy place to find it. We generate an entire Pong book for the script. Anyone can see the code. But we do not start with it right away because it could be overwhelming. It is over 300 lines of code. That is not the first thing you want to see. So at first we start with the blocks. You connect the blocks and instantly see your changes straight away in the game itself. So you change the speed or change the colors. You can change a rule of the game. You will see the changes in the new game instantly. If you want to dive deeper, then all the code is generated.
LI: What comes next?
Simon:
Minecraft is the second programing project. It is the same concept. But obviously it is a bit more advanced. You have to take into account three coordinates so it is a bit more complex. You have blocks that generate a certain code. But this time you actually see the code side by side. You can switch code view on and off. There you see the code coming to life directly. You put on Make a statement. The words will appear directly into the statement. When you click Make, then the statement executes into the game. That is really powerful. Your brain makes an instant connection. At some point, you won’t need the blocks.
LI: Is the ultimate aim to form an army of game-playing young programmers?
Simon:
We have not taught them how to code in Python. We have not taught the semantics. But just by using the blocks, they will instantly know how to write code. When that time comes, we have an advanced mode. Without leaving the program, it is another level in the app that they can enable. This lets users modify code directly on the screen. So at some point, users will be writing Python code without applying the block connections. Click Make, and it will execute into the code directly.
LI: How do you ensure that kids will not feel limited to a finite number of blocks?
Simon:
With that design, we open the learning to every type of learner. Beginners can have fun building in blocks. Different block kits are available. They can actually learn Python or any language. When they are ready, they can put the blocks aside and enter code directly with the text editor. So it is not just about beginners. It is a tool to create.
LI: How does Kano bridge the gap between learning in isolation and group interaction?
Simon:
Everything you create can be shared with our community. Anyone can download what others have created and make it themselves.
LI: At what point does the user get limited by the hardware kit itself?
Simon:
It is a full computer by itself by definition. So you can program on your own. With our kits, you build real things. You can build more on your own, basically. We provide examples. All our apps that we created, and all the scripts to change the settings are written in Python. We use Raspberry Pi. It is all open source. Anyone can contribute and modify. We expect users, once they learn, will go into the code and improve things.
LI: Is that just a hoped-for result when the kits become more widely distributed?
Simon:
It is already happening. For example, we have a user in Texas that is still learning but has made useful contributions. We have talked. He continues to help improve things and make contributions. That is the power of the community.
LI: How widespread is the distribution of the kits at this point?
Simon:
The OS has been available since February. It is open source. We tried to release a new version of it every two or three weeks. Anybody who runs Rasperry Pi can use it. So we already have users. They share content and discuss features and exchange idea on our forums. So far, we have sold 18,000 kits since last year, through the Kickstarter campaign via preorder. We are now in production and have most of the different pieces in place. We will start shipping by the beginning of September, hopefully. We do the materials and the hardware and the components and the packages ourselves. Finally, it is all coming together.
LI: How large is your staff to accomplish all of this from a startup posture?
Simon:
The task is massive. We are a small company — all based in London, England. One year ago I joined the two founders. Then we started building teams. Right now we are 24 people. We started in a small office and have moved to a large facility. Nine people work on the OS projects. What is very impressive is the 10 nationalities that came together to make this work.
LI: What is next on the horizon for the company?
Simon:
Our first goal is to satisfy our Kickstarters. They believed in us when there was no product. Then we will focus on selling more units and improving the whole experience that we have. We also want to expand our content. We want our users to have tons of games and playing and coding. We hope that can be provided for free.
Stay tuned for Part 2: A hands-on review of the Kano Kit.