Can't believe how good Blockly is

43 views
Skip to first unread message

Steven Francis

unread,
Jul 8, 2024, 11:13:18 AMJul 8
to Blockly
Just wanted to say thanks to the team at Blockly for creating such an amazing free resource. In Australia, most kids do Scratch projects from 8-13 years old. While I am mainly a Maths teacher, I teach some IT classes when there is a shortage of IT teachers. For 3 years now I have taught a physical computing course for 14-15 year olds based off Arduinos, with the end game being the students make a product by choosing their own sensors and actuators required for what they want it to do. As the focus was supposed to be on the coding, we chose to use Grove Modules as it just make the wiring trivially easy, and left the ins and outs of electronics to be learnt in Electronics classes. But I found students really struggled with the C++-based Arduino code, even with simple tutorials, and really struggled to try and create their own project... I initially tried standardising the structure by making the whole thing object-oriented, with every Grove module having its own Library of methods. This made some improvements on how many students found success, but still too many were struggling with syntax and making small typos everywhere and constantly frustrated. Then, over the summer in Australia (6 months ago), I played around with Blockly a little, from just following the tutorials, to reading through the API. was able to build a web app with Blockly. I did need to read up a lot early on, as I had very specific criteria I wanted, but between forums, the API, and occasionally ChatGPT, was able to get it working pretty smoothly in a few days. Now I have just finished the first semester testing it with the students and was really pleased in the results. Nearly every student got comfortable using Blockly from the get-go (they had done Scratch before), and so were a lot more creative and experimental with writing programs and making little devices with the sensors and actuators. Some students used it as a base and quickly moved on to just coding on the Arduino IDE, a lot liked using Blockly to get the basics of any project started, and then pasted the generated code into IDE and went from there, and some just didn't want to leave Blockly and were still able to do some reasonably complex code (involving a few sensors, actuators, a screen, buttons and rotary angle sensors to control things, and some had XBee radios so the product had a remote control). The key thing was the students were way more independent and asked for help much less, yet made a lot more progress than the previous years with the projects they were designing and completing. As I said earlier, I had very specific ideas of how I'd like a drag-and-drop Arduino app to work, and none of the ones out there matched what I wanted. The App begins using Jquery UI with a bunch of draggable little elements that represent all the different Grove components the students find in their kits. On the left was a stylised version of the Grove shield with all the pins/ports you can plug the components into which will all made droppable elements. Students first drag and drop the components they want into the allowed pins for that component. They could also rename each component (which had default names like led1, button1 etc.) and change the colour (for Blockly blocks relatedto that component). Blockly then dynamically changes to add categories to the toolbox based on what components the students had made active (connected to a pin), and the blocks change colour based on student choice. Once the category is clicked on, all the code required for that component is made in blocks (adding the Library, declaring the object (with the name automated as Blockly just looked up a variable based on what the students called it when dragging the Jquery UI elements) and the pin to attach it to automated from where they dropped it in. It was amazing how Blockly just had all this flexibility built into it. Finally, I didn't want students accidentally adding a Library twice because they were using multiple instances of the same class... so Blockly could just disable blocks once used more than once. I did this for object declaration too. So easy! If students watned to change the name/handle for an object, they did it in the build, and the Blockly blocks all just updated, including the generated code!!! And I had an non-deletable template block for 'Add Libraries', 'Declare Objects', 'Declare Variables', "Setup', and 'Main Loop' and certain blocks can only go in the appropriate section, again, all the stuff needed to do this was just there ready to use with Blockly! Then the Blockly Block Factory was really useful making blocks at the start, and then once I got the hang of it, it was a lot of copy and paste and just edit the bits needed for all the other bits... and the method to generate Arduino code from the blocks was very easy, just following the API. Anyway, for someone with no coding background (although I have taught basic coding to juniors for 10 years including Scratch and basic web design (HTML, Javascript, a little bit of PHP and SQL so I should have learnt a few things in that time), was amazed at how versatile and accessible Blockly was (the first part was a steep learning curve because in order to understand some things I had to go back and learn some basics before returning to what was going on with Blockly). Anyway, thanks to the Blockly Team!!! It made teaching that Arduino course so much easier and way more rewarding. If you want to see an earlier version (no server side, so no login, but no saving or loading) you can see it here: https://avyr9wd.opalstacked.com/grove/. The later versions now save onto a database with a project name and userid attached and then can be loaded by the user (again, so easy with Blockly and JSON!!!) and fixed up a few bugs from the first version.
https://www.avila.vic.edu.au



https://www.facebook.com/avilacollegemelbourne/ 

Avila College acknowledges the Wurundjeri People as the Traditional Owners and custodians of this land and pays respect to their Elders past, present and emerging. 

The information contained in this email and any attachments are confidential and are intended solely for the use of the addressee or someone authorised to receive the addressee's email. If you have received the email in error, please notify the sender by return email, delete the email from your computer systems and destroy any hard copies. There is no warranty that this email is error or virus free. It may be a private communication, and if so, does not represent the view of Avila College.


Mark Friedman

unread,
Jul 8, 2024, 3:43:41 PMJul 8
to blo...@googlegroups.com
Steven,

  Grove Blocks and the work you're doing with your students is pretty cool!

-Mark

P.S. It would make your post a little easier to read if it had some paragraph breaks :-)


--
You received this message because you are subscribed to the Google Groups "Blockly" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blockly+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/blockly/d9719f6b-3d53-4c05-97ef-4ec5e5fd442an%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages