The Digital Technologies Syllabus emphasizes designing algorithms, testing, evaluating and refining them. I find block-based coding environments very effective for this. I also developed this workshop for years 5-6, so text-based coding is not stressed particularly.
The limitations of Scratch, also, only serves to emphasize the validity of text-based coding as the destination. For example, Scratch does not have For loops, so Repeat Until loops need to be utilized; and then there is no > than or = to facility. This workshop is all about turtle graphics, but there is no fill block or function; necessitating turtle python or processing.
Logo (for those old enough to remember) was my first introduction to programming and it really got me hooked; so I’m hoping it does the same for my students.
I also purchased a Makelangelo Art Robot as one way to output their designs. I also plan on 3D printing, Laser and CNC Etching and Machine Embroidery with Inkstitch. Maybe I will get back with the results.
For younger students, we use BBC Micro:bit to introduce them to programming and connecting the physical inputs and outputs needed with embedded systems. We do this mainly based on the learning resources we have access to, which generally target younger students. Otherwise, the BBC Micro:bit is very comparable to the Circuit Playground Express.
The Circuit Playground Express (CPX)
The reason we use the CPX for years 9-10 is because Adafruit provides such good support via MakeCode , CircuitPython and their own learning system. Their projects are also a little more advanced and challenging.
From Blocks to Text
I have recently written a unit for year 7, to transition them from block coding to text-based coding in Python. In years 8-9, I continue this somewhat by using block coding as my algorithm designer. Here, students can design their solution, test it and then refine it to make it more efficient. For example, instead of a series of sequenced commands that repeat, students can get the sequence working and then refine the algorithm with loops; and then test it again. I find the drag and drop nature of block coding to be a better environment for prototyping because you can work on several iterations of a design quite quickly and its a more visual experience as well. In particular, its probably a superior environment for beginning with embedded systems, such as the BBC Micro:bit or The Circuit Playground Express. In fact, these environments have a text coding view as well; facilitating the transition to text-based coding.
In this unit, I introduce students to python via turtle graphics. Here is my Unit; enjoy!