Python and CodeBots Dragging Students into STEAM
CodeBot. Image source: Firia Labs
I have a friend. It's true. I'm not joking. Settle down. Look -- I'm not going to continue until you cease squirming in your seat and stop giggling. That's better. Now, if you're quite finished, we'll continue.
We'll call my friend David (because that's his name). David is one of the cleverest guys I know. He has a size-16 brain -- the type with the go-faster stripes painted down the side. He has expertise with all sorts of things, including self-forming, self-healing, low-power wireless mesh networks.
I remember watching David give a presentation on such networks at an Embedded Systems Conference (ESC) a couple of years ago. Many members of the audience already had wireless mesh-enabled badges from an earlier session. Furthermore, some of us were sporting our propeller beanies from an earlier conference in which David and I had orchestrated what is, to date, the largest wireless mesh-network in the world to be implemented in propeller beanies (250 beanies spinning and flashing in synchronization -- my dear old mother was so proud -- I can hear her now, "For this, we sent you to university?").
While giving his presentation showing how the time-of-flight of radio signals in wireless mesh network nodes could be used to provide a crude distance measurement (using the period of a flashing light on a beacon to reflect the distance), David noticed the badges and beanies in the audience. He became captivated by an idea and start coding on the fly in real-time while still giving his presentation. Before long, the badges were flashing in time with the beacon while the speed of the beanies' propellers varied in proportion to the beacon's rate.
But we digress... David used to be the chief technical officer (CTO) at a company that did all sorts of cool stuff. In fact, David was the mastermind behind the lighting effects on the costumes in the Tron: Legacy movie. The thing is that David and his wife Geri are passionate about educating kids, so -- a couple of years ago as I pen these words -- David left his comfortable CTO position to form an educational company with Geri. The company in question is called Firia Labs.
Geri (left) and David (right) Image source: Firia Labs
I remember when David and Geri were starting Firia Labs. David was talking about how when kids are starting to learn to read and write, they commence with picture books that contain a lot of images accompanied by very few words. Over time, the pictures get fewer and farther between, while the words come to dominate. Unfortunately, when it comes to computer science (CS) education in K-12 schools, most of the students are still at the picture book stage using drag-and-drop graphical programming techniques.
I actually have great sympathy for the teachers, many of whom are only slightly more knowledgeable than their students. Imagine trying to teach a language like Python to a bunch of beginners, with 20 hands desperately waving in the air because their code doesn’t work.
In order to address this, Firia Labs provides a fully integrated solution that helps students teach themselves while teachers provide high-level supervision. On the hardware side of things, they've re-thought robotics with a focus on embedded programming, as opposed to constructing convoluted mechanical contraptions. Thus, we have the CodeBot, along with a suite of micro:bit based kits, where the micro:bit is a teeny-tiny single-board computer that is 70 times smaller and 18 times faster than the original BBC Micro computers used in schools. The micro:bit has 25 red LED lights that can flash messages and be used to create games. Also, there are two programmable buttons that can be used for control purposes.
Now, there are a lot of robots and nifty little microcontroller development boards around. One thing that differentiates Firia Labs is CodeSpace, which is like an integrated development environment (IDE) on steroids. As we see in this video, CodeSpace provides each student with their own self-paced suite of tutorials, which start with quick-and-easy examples and work their way up to more sophisticated applications.
CodeSpace also features a state-of-the-art integrated debugger that detects errors as the students type them in real-time and provides immediate feedback explaining what the problem is, thereby freeing up the teachers.
In order to make all of this a success, the team at Firia Labs banded together with educators to address the need for an authentic, real-world, project-based curriculum to teach CS.
- Problem: How to overcome student frustration when the code doesn't work (it never does the first time...)?
- Solution: Develop the world's first embedded Python debugger.
- Problem: Schools are using Chromebooks. What's the development environment?
- Solution: Leverage new WebUSB browser standard, directly drive Python debugger on embedded system from the browser.
- Problem: Teachers by-and-large aren't trained in CS and text-based code can be intimidating.
- Solution: Team with educators to provide a complete set of teaching resources, including pacing guides, rubrics, etc.
Now, with regard to CodeBot, you may be thinking: "What? Yet another robot? Aren't robots already being used in schools? Hasn't this been going on for years?" Actually, the state of affairs is pretty dire in most cases because the electronics is a "black box" and the software is a "necessary evil" in most of these programs. As a result, students are not coming out of existing programs with an appreciation for coding. By comparison, students working with CodeSpace and CodeBot gain low-level coding expertise and hands-on robotic experience. Consider this video of a student watching a CodeBot execute a program she's just created.
You can see the elation on the student's face when the robot completes the sequence as she intended (I'm sure I will feel the same way when I finally get one of my own programs to do what I want it to do).
I have to take my hat off to Geri and David. It's easy to say you have a passion for educating kids, but giving up your job to do so requires a lot of commitment. Also, breaking into the educational market requires a huge amount of effort and perseverance. Its not just a case of saying, "Hey, look at us, we have something really cool here!" Instead, you have to attend large numbers of educational conferences and spend a lot of time in classrooms to understand what teachers and students are going through on a daily basis.
As David just told me, "All of this hard work is now paying off -- not only in terms of business success, but in each and every joyful teacher and student interaction that we are privileged to see and be a part off." I only wish this sort of thing had been around when I was at school. How about you?