<aside> ⚠️ About block coding and Microsoft MakeCode
In 1975, Seymour Papert of the MIT Media Lab created a beginner programming language called LOGO. He developed it based on research that showed that playing with code blocks was a particularly effective way to teach programming concepts. Papert coined the term "constructionism" to describe how learners construct new knowledge by building on established knowledge. MakeCode blocks themselves are models of how new learning occurs through the application of concepts in an open learning environment. Block-based programming languages such as Scratch and MakeCode build on Papert's research and are an excellent way for students to begin learning coding concepts without having to worry about syntax issues and technical problems.
</aside>
Microsoft MakeCode is a free and open-source platform for creating computer learning experiences that promote progress towards real-world programming. It brings computer science to life for all students with fun projects, immediate results, and block and text editors for learners at different levels. Microsoft MakeCode is a joint project between Microsoft Research and Visual Studio that aims to simplify programming for microcontroller-based devices using a modern web application. The tool allows users to learn programming using "blocks" to represent instructions and control structures. It is also possible to convert blocks into JavaScript or Python (and vice versa), allowing for gradual programming learning and discovery. Finally, a simulator allows code testing without the need for a physical electronic board (it, along with sensors/actuators, their behavior, and connections, are simulated).
MakeCode is based on the following main tools:
Simulator | Block Editor | JavaScript Editor |
---|---|---|
An interactive simulator provides students with immediate feedback on the operation of their programme and allows them to test and debug their code. | Students new to programming can start with coloured blocks that they can drag and drop onto their workspace to build their programs. | When they are ready, students can switch to a full JavaScript editor with code snippets, tooltips and error detectors to help them. |
The MakeCode editor offers a relevant ecosystem thanks to its accessibility, interface, ability to program in 3 different languages (thus adaptable to several levels from the beginning of middle school to high school), its multi-card compatibility, its ability to provide a visual simulation of sensor activities (especially interesting in the case of distance learning or a lack of resources to equip students with individual cards), its RGPD compatibility, and above all, the possibility of developing simple to complex projects, which may or may not communicate with the field.
<aside> ℹ️ MakeCode is a free and open-source platform developed by Microsoft that allows users to create interactive computer science learning experiences while advancing through the world of programming. As part of TheDexterLab project, we have developed a specific open-source version (implemented during the Let’s STEAM Erasmus + initiative) integrating specific simulated sensors to incorporate new functionalities into the editor and promote an interdisciplinary approach by integrating scientific-oriented contents to the platform. This version can be found here: https://makecode.lets-steam.eu/
</aside>
When you enter the Let's STEAM MakeCode interface, you will arrive directly on the homepage. On this page, you can create a new project, open an existing project if you have already worked on the editor, view supported cards, and discover inspiring resources.
When creating a project, it is important to name it with a clear and understandable title, allowing you to clearly announce the objective of the program.
On the next screen, you will need to choose the board you will be working on. On the activity sheets of this wiki, all examples have been developed using the STM32 IoT Node board.
Once the board is selected, you will then have access to the editor, presented below. Here are the components of the editor:
In the editor, you can also choose the programming mode:
Here is the list of basic blocks available on Let's STEAM's MakeCode editor.
Extensions in MakeCode are groups of blocks that are not directly included in the basic code blocks found in the editor. As their name suggests, extensions add blocks for specific features. There are extensions for a wide range of very useful features, adding capabilities for game controllers, keyboards, mice, servomotors, robotics, and much more.