How I Use It
I have used Scratch for the last couple of years as a way to not only introduce programming to my middle-schoolers, but also to take things to a higher level. Students have made everything from very simple animations to complex, multi-level games. They can start from scratch (no pun intended!) or remix others' work, which is encouraged by the Scratch community. A little guidance is helpful for students to start, but most can just take it and run with it. And when they do, it's amazing what they create.
It is easy for students to get sidetracked. You do need to stay on top of them, especially those with limited attention spans, as they'll just spend their time playing games created by others in the community.
I can't say enough about this product. I love how engaged the kids are, and it almost seems like I'm pulling something over on them: they learn while having fun.
A few things that would make it better:
~the ability to set up and monitor class progress
~a way to see inside the code blocks - to show the actual underlying script
~offline player capability
No matter the above - I LOVE Scratch, and so do my students!