Having taught 8th graders programming in Scratch and now building an introductory curriculum for high school freshmen with it, I can say that Scratch does an incredible job of honing in on the major algorithmic and data-based abstractions without having to worry about students comfort level with typing or even how much exposure they've had to computing at all. It also makes these concepts very visual, which serves as great reference once you start working with text based code. I'm a huge, huge fan.