What good references have people found for a grade school intro to programming? The kiddo already worked through game builder garage, and is familiar with scratch.
Ideally, it would be available in dead-tree form, and assume an offline programming environment, but those aren’t hard requirements.
It doesn’t really matter if it’s a modern programming environment or not; we have dos, win 3.1, linux, etc.
He also experimented alot with scratch.
Now he's 9 and learning intermediate Python through community classes taught by our area hi-schoolers.
He recently made a summer holiday project called "Story Machine" which takes 5 nouns, calls a generative AI API to create a story, uses Spacy to find nouns and randomly replaces those nouns with another set of random nouns - creating a funny story in the process. UI input using tkinter :-)
I helped him to learn concepts like API calls, JSON, generative AI, UI, event based coding etc - he google searched himself to figure out how to use those concepts.
Once you teach them the basics, they will fly!
One thing that worked for me is to let them guide me. When they stopped being interested I'd wait a few months and try again
One tool that we found to be a very deep learning ground: an iPad app called Tynker. It is another block-based env like Scratch, though we found Tynker to have stronger primitives (e.g., you wind up forced to use globals to pass state around less often). Some big advantages: 1) iPad is super portable, so works when travelling 2) has an excellent physics engine built in - we made an Angry Birds clone 3) was strong enough to support making a piano app that can play concurrent tones. 4) Lots of samples shared by community for inspiration.
Yes, QBASIC. Back to the 1990s. DOSBox or something similar needed for it to work under Windows 10. But: the syntax is easy to grasp even for children who are not native English speakers, and the full-screen IDE with Large Friendly Letters On A Blue Screen seems to help the kids in maintaining focus. Modify your code, hit F5, repeat. For teaching/learning the absolute basics of programming, QBASIC still seems a really good option.
Going through this book with my son just these days, and I think he's doing great. It's a really well written book, too. Careful wording, empathetic towards the child-learner. A prime example of "new is not always better".
When we're done with the introductory book, we'll probably move foward to "Sprites in QBASIC" by the same author: http://tedfelix.com/qbasic/sprites.html
"Invent Your Own Computer Games with Python, 4th Edition."
https://inventwithpython.com/invent4thed/
I feel like it has been going pretty well so far.
I have taught Scratch to different grades at my kids school. I have found third grade to just barely grasp Scratch.
ScratchJr on the other hand can be picked up by kids as young as 4 but ideally at 5.
I have a whole curriculum designed around it that pushes the boundaries of what you can do with it.