How I Use It
I use Hopscotch to introduce students to principles of coding and design when I am in an iPad environment. [If I'm in a laptop environment, I would most likely use Scratch.] Similar to Scratch, the app uses a block like pseudo code to mimic all the key elements of coding - variables, functions, loops, if/else statements, etc.
I usually use introduce the the major types of blocks in Hopscotch to the whole class via the white board and then give them a short time to mess around and see what they can make. I go around and answer basic questions while they are doing that.
After a session of exploration, I start to introduce challenges to the class with clear parameters. For example, I might say, "Make two characters move randomly around the screen. When they collide, one of them has to disappear." Even students who are experienced with Hopscotch often have difficulty with simple challenges like this because they have not learned to break down a problem and then build code around it (computational thinking and design).
We figure the challenges out by working together and fixing each other's code. Over time, students design challenges for the rest of us.
Scratch has more in the way of a community with a huge range of projects that people save and share, but Hopscotch is more than adequate for those working only with iPads (because Scratch does not run on an iPad). There are tutorials for anyone (teacher or student) who wants to learn independently.
Most importantly, the app does a very good job of introducing the elements of coding/design and computational thinking WHEN PAIRED WITH GOOD INSTRUCTION. Without the instruction, it's still good, but not as good.