Comment by jll29

3 months ago

I had a long debate whether a graphical programming environment like Scratch was better than typing out a classical language such as Python, my friends sided with Scratch but I ended up teaching (a bunch of 11-year-olds in a school) Python using the pyturtle library for simple graphics.

The advantage of Python includes being a "real" language - you can literally make money with what you learn. Also, the program as textual artifact means in can be read out and discussed.

[Python is great; my comment is only within block-based languages] For those actively teaching¹, consider Snap! (https://snap.berkeley.edu/) over/after Scratch. It's nearly a superset, similarly "low-floor" but much "higher ceiling" powerful language.

Data structures, control structures/message passing, functional programming... It's really "Scheme in Scratch clothing" under the hood.

In particular, its "build your own blocks" facilities are powerful enough (including macros i.e. custom control structures receiving "body" arguments as unevaluated lambdas) for you to build any scaffolding they need to focus on concepts you want them to learn at this stage.

¹If you don't have much time to sit with them, Scratch may win on "go find tutorials on youtube".