A few weeks ago my oldest son (age 7) came up to me and asked one of those questions that many parents dread — “Dad, can you teach me to program?” While I’m half-kidding, I’m also half-serous. I’m not a programmer! I have some training (mainly in college, but some self-taught) and I’m comfortable hunting down a book when I need it, but, when it comes to teaching my son, I’m really at a loss. What I’d like to do is find a way to make programming fun and interesting, but also something he can do on his own or at least with me watching over his shoulder but providing minimum assistance.
For these reasons, I’ve got high hopes for a new Kickstarter called Bitsbox. It’s a subscription service that aims to teach kids to program by providing them with a monthly box of programming training, challenges, and a few other surprises. Tucked in each monthly box will be a challenge booklet (typically around 16-20 pages) that has a unique theme — one month might be space while another might be vehicles. Whatever the theme, the team at Bitsbox is matching the contents of the box to work with an online app that will allow a child to learn at their own speed, take on challenges (and share them via Challenge trading cards), and even create their own games and immediately play them on a mobile device.
If you like, you can take a look right now at four sample challenges by pointing a web browser to bitsbox.com and clicking on the Try It Now For Free button.
Go ahead and let your child take it for a spin — I did, and I can confirm that my 7-year-old needed little explanation for how it works. On the screen will appear a mini-tablet with four apps on it. Instructions appear on the screen as pop-ups, and the language has been carefully selected to ensure that the youngest of children with reading ability will be able to read and follow along. Here’s a sample of how the instructions appear on the tablet:
Once your child is in the app, what those of us experienced with programming will see is a line/text editor on the right, the tablet on the left, and the step-by-step instructions displayed at the bottom as shown below.
Your child types in the code displayed in the instruction box near the bottom of the screen. At any time, your child can press the Play button (small green box with left-pointing arrow) to execute the code on the (virtual) tablet’s screen.
Below you can see that my son was able to follow along and figure out how to change the background (command word is fill) from red to green to yellow. When he asked about the parentheses and apostrophe marks, I told him to remove them and see what happens. A non-threatening, non-insulting error message lets the young user know that something has gone wrong…
Once your child has correctly done the simple programming task, the instructions will begin to ask for modifications and experiments to be made to see how one can change the code. My son was able to get immediate results by simply clicking the little Play button.
Further apps teach a few basics about on screen controls (the kind found by touching a tablet screen, for example), and students are prevented from going too far forward — trying to click an app challenge that requires information found in an earlier app won’t run, and a message will inform the user as to which app needs to be completed first.
Point a browser to the Bitsbox Kickstarter project, and check out the video and other details found there. You’ll see a picture of the Bitsbox that will be sent out each month (this is a mockup, so it’s possible things may change slightly) starting in April 2015. I spoke with one of the Bitsbox crew today, Aidan, and we talked about the goals of the project and what would be included each month. I asked about the stickers and tattoos — funny enough, his answer was right on the money. My 7-year-old has a little brother (age 4) and these are perfect little items to pass along to a younger sibling who might be upset at not getting his/her own box. Smart thinking!
The Challenge cards are meant to be traded with friends who might also be subscribers to Bitsbox. These challenge cards will contain additional programming challenges from a mix of themes (the cards will be randomly inserted, as I understand it) and students can use or ignore them as they see fit.
Finally, each month’s box will come with a number of coupons for discounts on other products that parents might find useful for encouraging their children.
A few things that Aidan mentioned that I wish to pass along include:
* The programming environment and the command words have been carefully selected to make sense to young programmers. The fill command, for example, went through a few iterations that include background, reset, and more. Ultimately, Fill was selected because it is a simple word that can be sounded out (phonetically) and is related to what it ultimately does — fill the screen with a color. Here’s some more specific info that Aidan emailed to me that is really impressive and gives some behind-the-scenes details about how this group is developing this product:
The other section lists what I think of as verbs: .move, .rotate, .explode and .dance are all commands that you can use to tell the computer to make something happen to an element that’s already on the screen.
It’s important to note that we don’t ever plan to put a glossary like this in front of a student. We’d much rather introduce this language as it appears in apps that kids are building; it’s all about learning in context.
We talked about the fill() command earlier; the other words we considered were “clear”, “reset”, and “background”. Believe it or not, it took us awhile to get to “fill”. Sometimes the most obvious answers are only obvious in hindsight : )
Another example of a command whose name we agonized over is random(). We considered “dice” and even “rand”, but decided on the longer version because it’s 1) a real word that has 2) specific meaning that 3) kids will need to learn sooner than later. When a beginner sees it in code, they know exactly what it does. In this case, clarity trumps type-ability.
* After an online app has been modified or created, there will be a small QR code that can be photographed with a tablet or mobile phone — this will “launch” the game that the child has programmed, and allow them to play it on the mobile device. COOL! And any changes made on the fly (on the web app) will be instantly updated to the phone or tablet. That’s a pretty slick way to entice kids to start thinking about app programming and moving on to more advanced programming environments to create even more advanced apps.
All in all, I’m pretty excited about this project. My experiences with subscription services in the past have been hit or miss, but I can’t quite shake the feeling that my oldest son will love to get a monthly surprise package that will challenge him to learn some new skills. And it appears that a lot of other parents feel the same way — the project has already managed to raise almost $8000 (at the time I’m writing this) in the first 8 hours of the project going live (I was backer 100! Woot!).
If you’ve got a young child that is showing an interest in programming (or would find it fun), this may be just the product you need. As a parent, I like the goals of the project and the deliverables, but I also appreciate the design of the programming environment being done to minimize direct parent involvement. I’m sure my son will have questions, and hopefully I’ll be able to help him… but ultimately I want him to move at his own speed and learn on his own, gaining confidence in his own self-training skills.
The Bitsbox Kickstarter ends on January 22, 2015. Note also that the project is offering Classroom Bundles for teachers looking to introduce the idea to the classroom as well as School Kits for larger rollouts.