LightGames
LightGames is a set of challenges to learn programming in a fun way. The challenges are simple JavaScript games, and each game has a glitch that needs fixing. You download the code, open it in LightTable, run the game side-by-side with the code, fix the issue, and win the game.
Then, if you feel adventurous, you can dive into the game's code, hack on it, and publish your own version online, so anybody can play in their web browser.