In all previous years, First Lego League has required that missions be programmed only using the official EV3 Mindstorms app. This is good because it has created a level playing field among teams and it ensures that teams don’t get hung up on idiosyncracies (Ev3 is guaranteed to work across platforms and doesn’t require special programming knowledge).
However, as time has gone on and computer science education has moved younger in schools, the flaws in the Mindstorms system have become more pronounced. There are a few major issues:
It requires native software, and files are saved in nonstandard binary format, so it is difficult for teams to share easily or collaborate. Other systems may have web sharing.
More complex programs can be quite difficult to manage; for example, the only modularity is “My Blocks”, which suffer from an inability to nest (you can’t call a My Block from within a My Block). Larger programs have a sparse visual layout - a single if/then block can take up the whole screen. Modern languages are more dense.
This past spring, our team experimented with a few different alternative programming languages, including:
- Python (via ev3dev)
- Open Roberta
- Microsoft MakeCode
For this season, we are going to try out the MakeCode pilot and see how it turns out.