Now the Khan Academy has its cheerleaders and detractors and it certainly isn't perfect. But beyond its sheer number of tutorial videos there is also the whole interactive practice section that is pretty good. However, there have been those who have pointed out some of the problems with the actual tutorial videos (pedagogical and technical). It started with this video and has spawned the MTT2K Prize (Mystery Teacher Theater 2000) for the best video commentary on a Khan video.
But I digress, this is not what this post is about. This is what it's about:
Each lesson starts with a topic and three important things: the code, the output and the audio description of what to do. But there are two real reasons this is so neat:
- The code is dynamic. That is, in classic programming, you would write your code and when done you would compile it or click run and then see what it does. Here, there is an interactive engine that runs over top the main coding engine that lets you see the code and edit it at the same time you see the output. And thus you see the results of code changes immediately as they happen. Furthermore, the parameters are editable by both traditional (typing numbers in) and dynamic (using sliders) methods. You can see more of this from this talk by Bret Victor (its long but very good).
- The tutorials are interactive. This means that you can see the code change automatically as the tutorial goes on (just as if you are watching a video) or you can actually click in the code, in real time, and change it as the tutorial is happening.