I'm preparing to teach coding to students in grades 4–5 who have little or no programming experience. I want something free, beginner-friendly, and engaging enough to keep their attention. Scratch and Processing.js came to mind, but I'd love to hear about other platforms or teaching approaches that might work better for this age group.
5 Answers
Scratch is probably the strongest starting point for this age group. The visual blocks let students focus on concepts like loops, conditionals, variables, and events without getting stuck on syntax. They can make games and animations quickly, which helps keep the lessons fun.
Typing practice can be a useful supplement, especially if students will eventually use Python or JavaScript. Some typing courses include short coding exercises, but I wouldn’t treat them as a complete programming curriculum. Game-based tools, including coding games where students control a character or robot, can also make practice more engaging.
PixelPad could be a good fit for grades 4–5. Scratch is often ideal for younger students, while PixelPad gives older elementary students a little more structure and room to create. p5.js is another nice next step once they’re ready to move from blocks into text-based JavaScript.
A gradual path might work best: begin with Scratch, then introduce simple HTML, CSS, or JavaScript projects. Starting with text-based code immediately can be frustrating for beginners, so I’d use small visual projects first and transition when they understand the basic programming ideas.
I’d be cautious about relying on quick-reference tutorial sites as the main curriculum. Some have outdated or inconsistent explanations. For this age group, guided projects with immediate visual feedback are usually more effective than asking students to read documentation on their own.

That’s why I’d use those sites only as occasional references, not as the foundation of the course. A teacher-led project sequence would give students much more context and support.