I do not think this left lasting traces in pupils' minds.
Then in high school they are taught Python the worst possible way. Similar on how they teach math or physics.
I love my country but how scientific classes are taught is terrible. There is a sadistic obsession with math (this reminds me the way ducks are fed for foie gras) where they teach completely useless stuff (to a point you cannot imagine) born in the minds of tortured 70 years old ministers.
Physics is the same - "how to choose the worse topics to make you hate physics" was on the bedstand of the ones who invented the curriculum.
My son once told me "dad, I do not know how people whose parents cannot explain this stuff manage to go though". This were the words of a top student of a top HS in France. You can imagine how it is elsewhere.
You can actually go into surprising depth with Scratch. For example, I wrote multiplayer game engines using cloud variables to store player position, chat, etc and let people play together live. People have written 3D platforming engines using the "pen" feature, which is like a Python turtle. Hanging out on the "Advanced Topics" forum lead me to hacking with JavaScript and Python, at first to interact with Scratch and then onto bigger things outside of Scratch.
I think that Scratch is really great, if you couldn't tell from my description. Not only is it easy for a kid to get started with a drag-and-drop interface, but you can do so much. It also has a supportive community and it's easy to make friends and collaborate on projects together.
If you want to see Scratch truly at its limits, take a look around Griffpatch's profile: https://scratch.mit.edu/users/griffpatch/
My gf’s two kids were introduced to programming with Scratch. One was utterly frustrated and gave up on it after the course. The other liked the idea of programming and is now taking a Java based class in school.
There’s some hope that the last kid won’t like Java and may be willing to switch to something better, else it’s 0/3 in my opinion.
Scratch is great as a first introduction because it lets kids get something working almost immediately. From there, they mostly self-motivate.
One big issue I have is with Scratch's 'deliberate, because, pedagogy' limitations with the language.
I find there's a big gap to jump between just tinkering around with moving things around, playing sounds, very simple games (catch the falling apple etc), and getting into 'real' programming.
IMHO, as an example, the fact blocks cannot return values (functions are such a fundamental concept in programming) is inexcusable. And there are just so many hacks required to work around other features or lack-of-features. Eg, adding parameters to messages and maybe clones, would clear up whole areas that currently need complex hackery.
For the really motivated/talented, most of these limitations can be overcome, but they're an unnecessary barrier for everyone else, and kind of lead to a 'haves' and 'have-nots' split.
My second language was python. But I just wanted to make cool games, and Python’s graphics were too low-level and verbose (compared to Scratch at least where you get a canvas with 0 code), so I wrote much more in Scratch until later on (my third language was Objective-C and a big part of that was Interface Builder, so I also had “graphics-for-free” there more or less)
We went through a number of lessons via a website (which escapes me right more) and she was really into it. So much so, that we ended up downloading Scratch Junior and let her run free with it.
She uses it to make little interactive stories, with movement, audio recordings and the like. It’s pretty neat!
Now, whether that translates into her having more interest: I’m not sure. Her eyes kind of glaze over when she sees a wall of code on my screen when working from home.
—-
Side note: There is a board game called Robot Turtles that is supposedly good at teaching very basic programming concepts to kiddos, but she has had very little interest in ever playing it.
Scratch shields you from learning how data is represented even more than Python, and at that age all I wanted to do was make video games. My first "wow" moment was learning how Scratch platformers changed the "offset" to bring objects into view but didn't actually move my characters left and right.
In high school (2010s) I was familiar with programming from the outside in. I remember knowing that Ruby on Rails was a big thing. I had tried to learn ruby a handful of times and got lost in the process. I was super excited about wine because it helped me play boot leg video games on my old MacBook. I liked to try and read about how wine worked, but it was way over my head.
Enter scratch: the first real program I wrote was a scratch game in a high school computer science class called “glub run”! It was a little Mario like side scroller in which a little green blob (the glub) would run along the and try to get little coins.
It was a lot of work to get it all setup, and definitely went way beyond what was expected of us for the class, but I just had so much fun with it! Building a whole interactive 2d world from just a bunch of linear gui code blocks was mind bending to me. To be honest, the block based gui code was more of a hindrance than a help.
That was pretty much the extent of my time with scratch, we quickly moved to using a canned version of Java with some other little GUI attached. To be honest, it took me a long time to write another program of that same complexity as glub run. Maybe it was my magnum opus.
Why was scratch so great: Reflecting on it now, the best advantage of scratch was that there was no setup involved. You just clicked new and were off and going! (This is what I imagine BASIC was back in the day). Every other programming language had way too much fluff around it that made it really hard to get started. You needed a system for managing dependencies, you needed a system for managing versions of the language, then everyone said you needed all these libraries to go with the language. As a beginner, it was a total non-starter. For the longest time, I didn’t understand where the lines were between the language, the framework, and the tooling. Scratch avoided all of that and let you actually just build a program!
So even though I never returned to it, scratch is where the rubber hit the road for me so to speak! First time I had that feeling that I could actually create something novel with software! Been happily programming for the petter part of the last decade since!
I think it's a great way (especially for kids) to get into the thinking of building out logic and learning to abstract problems, etc.
I hated Scratch. I saw it as childish and simplistic. I wanted to play with the big boy stuff.
I was able to make a 2D platformer with it. Writing the game logic for a small game was not that hard to do in a visual programming language since it was mostly just moving and rotating sprites.
https://archive.org/details/My_Computer_Likes_Me_When_I_Spea...
I have taught it at her school. Think it is miles ahead of how people learned in the past. Kids still get stuck on certain concepts.
For myself, it was basic programming on a green screen typing out line by line in the early 80s.