- By: Ken Gracey Published: 19 July, 2016 4 comments
Parallax is developing a Google Blockly visual coding system for our Propeller multicore microcontroller. Using Blockly a student can arrange visual blocks which writes their code, reducing some early barriers associated with writing code purely in text. To speed the development process with our target audience in mind, we hired three student interns as part of our development team. Blake, Roxy and Carson are students in the Tahoe Truckee Unified School District (TTUSD). TTUSD is well-lead district with established pathway programs in engineering, technology, culinary, fire and medical.
Roxy and Blake used the S2 robot while in middle school and were familiar with Parallax from our support of their robotics program. It was so refreshing to have 14-year-olds ask me on their own [without their parents] to work all summer. While I tried to talk them out of it because the Blockly project has a firm September deadline timed with the release of the S3 robot, they kept coming back and asking me if they could participate in whatever we’ve got going on at Parallax. So here we are and I'm working with three students, working and laughing our way through summer.
I’ve now seen exactly how Blockly increases student interest in coding - the visual interface speeds their progress by replacing technical syntax with graphical code blocks.
This isn’t much of a surprise, though. A favorite customer of mine Dr. Vikram Kapila of New York University Tandon School of Engineering published a study about student interest in coding with Blockly. Visual programming has brought fun into many classrooms for several years, but seeing students learn multicore programming with sensors, motors, RF and sound using Blockly is something new, especially when the hardware they're programming lets them think beyond sequential processing.
As Blockly developers our interns developed new skills quickly. Working with our team they quickly became familiar with professional workflows in Blockly GitHub. They learned to create and track issues. They communicated examples (in writing/Google Hangouts/Skype) of how a programming should should be created or improved. They tested their solutions and reported back with modifications. Soon they were creating blocks from other examples. Since software projects in development guarantee many things “don’t work” until we make them work, they also learned to program in C much faster than expected. Blockly-generated code modified into our C editor, Simple IDE, provided the translation but they had to figure out why things didn't work.
This morning I asked them a few questions about their opinions of Blockly. Keep in mind they’ve installed and used all the alternatives. Roxy tells me that Parallax Blockly is “straightforward to use and it should bridge the gap between people who likely to go into engineering and those who want to experiment. It gives the teacher more to teach, and I can see a middle school teacher putting Blockly on their computers because the setup is easy”. Carson tells me that “it’ll need tutorials that show how things work together because there are two or three ways to do anything,” and that he can easily see it being used in high school levels.
Now that our demo system is mostly working (http://demo.blockly.parallax.com) we’re doing further testing by creating some projects. A couple of examples of their projects:
- Intruder Alert with RFID. Blake created a wireless Intruder Alert system. A person entering the building lobby is recognized and has 10 seconds to scan an acceptable RFID card. A Propeller Activity Board with a PIR sensor, RFID Reader and an XBee RF Module are in the lobby. A second Propeller Activity Board with an XBee RF Module, LED and speaker sits on his desk, 50’ feet away. Next step is to document the project steps so it can be duplicated and improved upon.
- M&M Color Identification. Sorting M&Ms by color is a full robotics project - a sensor, data, logic and a basic (yet challenging) mechanical system. Roxy is building the basic Blockly code so students could build such a system from our tutorials. The only problem is that we’re eating the M&Ms faster than our project development. Enhancements could include adding *.wav file playback so they system could also talk to the user.
Carson is currently developing the blocks for this 0.95” RGB OLED from Matt Matz’s C library. This will allow students to create games, display sensor data and have a terminal feedback without a computer:
Students simply see things developers don’t. Maybe it's their device-oriented upbringing coupled with expectations for a highly-evolved interface. There’s nothing like hearing directly from the intended audience: they don’t like to read a wall of text; every software feature must be intuitive and totally functional (they don’t accept a Terminal window closing for no reason and cryptic error messages); and "this sensor is much more fun than that one." They show the importance of learning by doing and explain exactly how they’d like to see concepts presented in tutorials, too.
Parallax’s Blockly for Propeller will be released early September. The S3 robot, the Propeller Activity Board, and Hackable Electronic Badge will be supported.
We’ll be disappointed when these students need to return to school in September. But we're very thankful for having them on our development team and excited that they can use their experience in a classroom.
P.S. While I focused this article on our student interns, their success is only possible because of efforts from our entire Blockly team. Thanks also to Parallax’s education staff, Vale (a high school student in Virginia), Dr. Corey Brady (Northwestern University) and Michel Lampo (our project lead in Belgium).