The critical thinking required for effective programming and computer science is increasingly being recognized as a fundamental 21st-century skill. As experts around the world began to ask how to present concepts like decomposition, abstraction, algorithmic solutions, and debugging, one of their first steps was to make the act of coding more accessible to younger and more diverse learners. Now, we’re used to seeing such programs as Scratch and Cubelets Blockly in elementary and middle school. These color-coded pre-built code blocks allow students to drag and drop to build a program without needing to memorize the vocabulary and syntax of a programming language first. We all agree this is more developmentally appropriate for young learners who are simultaneously still grasping the fundamentals of their primary language through reading and writing instruction. But what about students who are pre-literate or are struggling with reading in their native language? That’s where Cubelets come in. Cubelets are block-based programming. Literally. Each Cubelet is itself a color-coded block of programming. We also refer to this as Tactile Coding, since Cubelets program robot behaviors without a screen. For example, the Inverse Cubelet is equivalent to an inverse block in Cubelets Blockly. Continue reading
Using Cubelets Blockly, you can code every single Cubelet within your robot construction. But what does this mean? And how does it compare with coding in other contexts?
User InterfaceCubelets Blockly functions very similarly to other visual programming languages like Blockly or Scratch by using a drag and drop functionality of function blocks that hook together like puzzle pieces. Cubelets Blockly has a few of its own blocks, however, that you won’t find anywhere else. That’s because Cubelets are such a unique robot-building experience. Check out Episode 9.1 of our Create with Cubelets series to learn more! Continue reading
Have your students already built it all? Is it time to make your Drive Cubelets move in both directions? Ever wanted your Flashlight to blink in Morse code? Or your Bar Graph to show you binary counting? It might be time to Personality Swap™ your Cubelets. Personality Swaps are a scaffolded introduction to coding. When we are ready to take our students from using default Cubelets to creating their custom codes, Personality Swaps will be the next step for them. Personality Swaps are also a great way to introduce the concept of software versus hardware. They give students ideas about what can be changed within a Cubelet’s software and how those changes might improve their robot constructions. NOTE: To get started with Personality Swap you will need a Bluetooth Hat or Bluetooth Cubelet, as well as the new Cubelets app. Continue reading
Indeed you can! Do you know what a Turing Machine is? It’s a type of a computer, or, well, it’s a model of a computer. A simplified computer, with a memory tape and a read/write head that moves back and forth along the tape. It’s a funny little type of a computer, but it’s interesting in that with a Turing Machine, you can do any kind of digital computation that we can think of. Maybe not in a super optimized fashion, but… LOOK! Here’s a Turing Machine made with Cubelets and some LEGO bricks: This construction was built by Genaro J. Martínez and students and collaborators at ALIROB (Artificial Life Robotics Lab) in Mexico. I think it’s brilliant. There’s a web site with a few more videos and all of the code has been published there too. You’ll see a ton of neat little programming features in these robots: Rotate Cubelets, for example, can only be controlled by specifying a speed, not a position. Check out how they use a distance Cubelet as a “stop” to recalibrate the little swinging arm after each swing. Most of the Cubelets we make end up in elementary or middle school classrooms. So we spend a lot of time working on making Cubelets accessible, educational, and intriguing: focusing on the low-threshold aspects more than the high-ceiling aspects. It’s nice to be reminded that Cubelets are actually a universal computational material, a medium, capable of supporting some pretty advanced thought experiments.
I wrote a couple of weeks ago about programming for MOSS. We had just gotten an explosion of attention from our launch on Kickstarter, and the alpha-geek, early-adopter community started asking about programming. I didn’t have a good answer, but since then, we’ve had some time to decide what we’ll build first. We just announced two programming tools as stretch goals for the campaign. MOSS Flash. At a base level, we want our hacker friends to have full capability to reprogram, repurpose, and remix MOSS to accomplish whatever they want. The first thing we’re going to build is MOSS Flash, and it’s a desktop application that lets you reprogram the microcontroller inside any MOSS Bluetooth or MOSS Brain module in C. We’re not going to build an IDE yet, you can use whatever editor and file management tools you like, but you’ll be able to start with a few sample programs, modify them or write new ones, and just drag the files onto the super-simple MOSS Flash window to compile and reprogram a connected MOSS module via Bluetooth. We’ll probably build this in Node.js and much of the code is already written for our own use at modbot testing and debugging new MOSS programs. The code for basic functionality won’t be the hard part in building MOSS Flash, though. Documentation and designing the tutorials and materials that support open-ended programming will be hard, and building tools to help with debugging (regular C compiler output is often not particularly helpful) will be hard. MOSS Scratch. With low-level access for the die hard programmers covered by MOSS Flash, we also want to create a second way to program MOSS robots, something higher-level that can serve as an entry point for young inventors or for those who don’t get off on semicolons. We picked Scratch, and we’ve already started working on a MOSS Scratch extension that will provide MOSS blocks that you can integrate with the normal Scratch blocks and a custom online compiler that will customize a Scratch script to run natively on the micro inside of a MOSS module. The mechanism for adding extensions to Scratch is in beta right now but it looks really promising and the Scratch team has expressed enthusiasm and support for the integration with MOSS. I think the progression of creating on-screen animations and then behaviors for a physical robot could be a pretty effective learning tool, and honestly, my mind is a little blown right now thinking of the cyclical nature of progress what with Grey Walter’s turtles, then Logo, then Scratch, and now back to robots. Want to program your MOSS robots? Me too. We have some work to do building and testing these development tools, but we also have a pretty amazing engineering team. If the Kickstarter campaign hits the $564k mark, we’ll plan to have both of these tools ready in June 2014 and ideally we’ll put up a beta of MOSS Flash right around when we ship the first MOSS kits.