I’ve come across some environments built to help people (and especially kids) to learn programming.
Sonic Pi is perfect for people with an interest in music. It’s a live coding synthesizer that lets you perform music using code (a Ruby DSL). Check out the demos – it’s pretty cool. One of the authors actually uses it for live gigs in nightclubs.
Pharo is a Smalltalk implementation designed for learning. Very cool features and live code browser. When you run it, it starts a tutorial to learn Smalltalk.
Finally iPython started off as an improved REPL for Python. The notebook module added the ability for a web browser to display an interactive environment that supports the display of cells with Markdown rendering, editable code blocks that you can edit and run in the browser and graphics libraries to draw dynamic graphics. Notebooks are JSON files, so you can download lots of pre-made ones including a couple that teach Python programming. There are some videos which show off the features available.
The Jupyter project is forking from iPython to provide the same feature set but allowing code engines that support other languages like R, Ruby, Go, etc. Installing and getting it all working is more involved than the above options so I can’t recommend it as highly, but it’s worth looking at. I can see it being a useful tool when you are exploring some techniques or munging some data.