This is my third year coaching a First Lego League (FLL) team, and I think it will help everybody follow how the team is doing if I regularly collect and share notes, so I intend to write updates regularly throughout the season. Team updates and plans will be near the top part of the notes. I also intend to incorporate more general information about relevant educational goals and trajectories after the initial update section. So the first few notes will cover what we’ve done in the past so we know where we are in terms of our skills and abilities. For instance, this note will discuss the using the Scratch platform as it relates to our team.
Regarding some updates, The FLL website says the season will launch on Tuesday, August 6, so that’s when we’re expecting the building instructions for the missions to appear online. We’ve got all of the new mission pieces here still sitting in their bags, but we can’t do anything with them until the instructions are released. The kids will be able to start building the missions on our first meeting Saturday, August 10. The kids will not need their computers for this meeting, as we will first set up the board and plan out the season before we start programming. I’ve also been cleaning up the garage to accommodate our steadily increasing stock of Lego pieces and organizing boxes. A schedule of our classes for this season has also been updated on our website.
In terms of what we’ve done, I first want to introduce some of the activities my daughter and I did in the years prior to FLL that helped to get acquainted with the robotics and STEM skills relevant to the team. These projects translated directly into FLL competition skills, but also helped with the more general goal of appreciating “mechanical arts” through practical experience with physics, math, and logic, as well as fostering working habits like sustained focus, problem solving, patience, and creativity.
The activities we did can be split into two types: (1.) programming with Scratch and (2.) making different types of Lego machines. We also used Scratch to program some Lego robots. The activities were fun for both of us, and I recommend that the kids work on similar projects on their own, especially if they have free time outside of class. My daughter and I would keep doing similar projects, but have been more committed to the FLL competition itself.
Scratch
(https://scratch.mit.edu/; My daughter’s scratch page https://scratch.mit.edu/users/liliiflower/)
The kids have been programming their FLL competition robot using the Lego Spike set’s own language, and this programming language is about 90% derived from Scratch:
[Scratch is a] “visual programming language and website aimed primarily at children as an educational tool, with a target audience of ages 8 to 16…. Scratch was conceived and designed through collaborative National Science Foundation grants …[, was] developed by the MIT Media Lab and has been translated into 70+ languages, being used in most parts of the world.” (wikipedia)
I think the kids should still use Scratch for several reasons. One reason is the variety and complexity of programs that can be made using the platform. My daughter and I spent looked through the website and dedicated some time to appreciating the breadth of programming possibilities available. Even without getting into actual coding, Scratch programs are sometimes amazing to simply watch, as the platform provides users with an easy outlet for creativity. While most of the programs that are shared reflect the limits of little kids simply playing around with uncomplicated programming, there are more concerted attempts at projects. Talented users copy and adapt classic video games, animate cartoons, produce music, and experiment with code. There’s even a working replica of the entire Scratch coding platform itself as a program within Scratch. There are few limits, as users can even upload their own photographs and sounds to incorporate into their programs, as we did in a basic video game featuring some of our own art.
A better reason to use Scratch is that each of these programs can be opened up to see how the coding actually works. Clicking on the “See Inside” button of any program shows the complete code, which can subsequently be adapted and saved into your own version of the program. The process is very easy, but learning to program this way can be overwhelming for kids, as sometimes programs open up into a difficult wall of code. My daughter needed a more practical guide to figuring out the basics of the language, so we looked through a lot of the exercises in published books dedicated to learning Scratch. We got a lot out of Coding Games with Scratch by Jon Woodcock. The exercises guide learners through programs of increasing complexity, but also feature varied types of programs that cater to different interests. It was easy to adapt these basics into varied types of programs, which present different forms of creative expression.
A screenshot of my daughter’s breakdancing fortune cookie game.
One of the best features is the Scratch programming language itself, which is composed of blocks that are easier to use than having to type every line of code out, as we intend to do with Python this season. The blocks let kids easily visualize the steps needed for complex programs without having to deal with the exact spelling and syntax of text-based programming languages. I mentioned that the Spike programming language is mostly derived from Scratch, and you can see this for yourself below.
Here’s Lego Spike:
Here’s Scratch:
Both operate via colored blocks that can be dragged and snapped together in the work area. More complex blocks incorporate mathematical procedures, and the Lego Spike program we’ve been using for team requires the kids use the blocks to compute distance measurements and basic geometrical equations. The robot needs to turn precisely, so the kids need to figure out the code that will allow them to enter precise degrees of rotation along multiple planes, experimenting throughout the process. A very similar process is involved in reproducing movement on the Scratch platform. Distance, rotation, and acceleration of onscreen objects can also be programmed mathematically along a coordinate plane. Sequences of blocks have to be in the correct order. There is logic required in the use of conditional statements. If the kids are good with Scratch, they will be good at using more complex programming commands, at checking long strings of code to see if there are any problems, and at optimizing code to make it more concise and more efficient.
With Scratch, the kids’ sense of how to construct a working program will also help them to advance to more robust programming languages like Python, which is a more difficult text-based language that can be used on to operate the Spike Prime set. One issue with Scratch is that its programs don’t easily translate off the Scratch platform, so that while we can download a Scratch program, it would require some effort to convert that program into any other language, such as Python. Another issue is that the copying and repetition of code can be much faster on Python than Scratch, so it is in the team’s interest to use Python to make our FLL routes faster. I think we will incorporate both Lego Prime’s block language and Python in our routes this year.
Despite Scratch’s limitations, I would like to see the kids to set up their own Scratch accounts so that they can practice programming outside of class, using a language they are already fairly comfortable with using, and so that they can participate in a community of creative programmers.
Next time I want to discuss some of the Lego projects we worked on, including Lego WeDo and Lego Boost, and how these projects compare to Spike.