I’m thinking of starting a local group for kids (8-12 yo) to learn programming using Scratch.
Do you have any pointers that I might consider?
For reference, I’m a senior developer and architect, the programming part will probably be the easiest of it all.
When I was a kid Lego mindstorm was the shit but I don’t know if Lego even sells that anymore. But my advice is find some robot kit with a building block scripting language.
Alternatively download unreal engine 4, learn how to use blueprints and show them how to make simple games, as that is another “building block” scripting language.
Edit: oh, not “from scratch”, “using Scratch” haha oops. My bad.
There’s a minecraft mod called ComputerCraft Edu which is lovely and works on older versions of Minecraft if you’re willing to set that up!
When they “get” it, it also has Lua in addition the the graphical scratch nodes
Get some robots. Big marketing thing and another point of fun and learning. And the results are visible IRL.
Lego Mindstorms! We did that stuff as cub scouts, but I dont think we were the ones to program the bot.
They are fun, especially with the motorized arms, but they are crazy expensive last I checked. There are cheaper options, for Arduino and microbit. But even those are not cheap. They run at at least $30, without the microbit or arduino, for a couple of motors, IR and ultrasonic sensor.
I genuinely don’t know if scratch is the right choice or a simple text based language would be better, especially for the older kids. Just from my personal experience, I started programming in BASIC at 12 and don’t think I would have had as much fun and continued programming if i had used scratch instead.
It’s meant for absolute beginners and while there are quite a few talented people, you can’t really expect 12yo kids in general to understand and, more importantly, enjoy writing BASIC.
I would use python instead of BASIC, if it was me. I also started with BASIC as a kid, but I remember each step up language wise (BASIC -> Pascal -> C) being a big satisfaction of “hey, it seems like this language is a lot better and I can do more with it.” I would echo the recommendation to use actual code though. Language is pretty deeply hard-wired into human beings, and I suspect that the kids that will do well with breaking tasks down into scratch primitives would do equally well with python, and the kids who find python “too hard” or something would also not be able to do too much with scratch. Maybe I am wrong, but that’s my guess.
My only other thought is to have some kind of graphical / game you can play / real world robotics angle to it. Maybe there’s a little graphical ecosystem pre-provided, and they can write agents that can interact within the ecosystem and then see a visual representation of what everyone’s agents are doing. I would definitely recommend to have a bunch of code that they can read, though; that was where my programming as a kid took a big step forward, was when I got a big disk filled with programs I could analyze and break down.
Scratch is great but make sure to let them know that they can see the actual code that runs underneath the drag-drop UI.
I can also recommend hourofcode.com where there are a ton of good tutorials ranging from scratch-level coding in a game setup (e.g. minecraft) to actual coding in python.