I've been talking about BlueJ and Greenfoot for years. They're tools for teaching people to program who have never programmed before. BlueJ is a special-purpose IDE that's all about teaching. Greenfoot is a collection of scenarios layered on BlueJ that provide the framework for assignments based on simulations and games. They each have books (bluej and greenfoot) that are designed for classroom or independent use.
It's summer and one of the items on my to-do list has been to teach my youngest daughter how to program. I was planning to spend some time in the evenings with her. But before I could get started, my wife handed her a copy of the greenfoot book and my daughter started reading. While I was off at work she downloaded and installed the IDE and started using the book the way it was intended: reading it cover-to-cover doing the exercises as they came along. I've helped her a couple of times when she got stuck, but mostly she's just plowed ahead on her own and is having a great time. The exercises are all very visual and engaging. Greenfoot makes it fun to learn programming. It starts out with very logo-ish exercises (moving a wombat around via method calls to find food), then automating the characters so that they can find their own food, and progressing to a variety of video games. The scenarios really absorb kids.
Thanks to everyone on the GreenFoot team!! You've made a difference in at least one young girl's life.