It is now six years ago that we at USV held our one day mini conference on “Hacking Education.” A lot has happened since then. We have made investments in Codecademy, Duolingo, Edmodo and Skillshare. MOOCs really took off with classes that have been taken by tens of thousands of students. Susan and I started homeschooling for our children. And yet when I think about what is possible in theory it still feels like we are early on.
One of the things that I envision is an interactive learning environment that seamlessly combines math, physics and programming (and possibly a lot more). Imagine that when you learn about coordinates, you have a coordinate system where you can either drag a point around and see its coordinates change or change the coordinates and watch the point move. And right there and then you can add some code (e.g. a loop) to animate the point by programmatically changing its coordinates. You can then see how that could quickly be used to show the trajectory of a ball that is thrown in the air.
Ideally, these learning objects would be fully embeddable inside other content (e.g., inside this blog post) and would also allow links to be attached inside of them, for instance a link out to the wikipedia entry on Cartesian coordinates. If these components themselves were open source with a permissive license then people could not only use them any which way they wanted but also contribute their own components and help extend and further develop existing ones.
The learning system itself would then take care of presenting various paths through knowledge and providing continuous testing of knowledge to wind up with a completely individualized learning experience (much like Duolingo provides for language learning). The system would know what you have mastered, where you need re-enforcement and offer you potentially new things to learn. It would also begin to understand whether you learn better by reading a text or watching a brief video. And if you don’t grok a concept in one presentation it will surface other ones for you automatically.
One of the closest things to the level of interactivity I envision is the incredibly well done Desmos graphing calculator that’s available on the web and as apps. At present its components seem proprietary though and it is not a full on learning system yet. But if you graph a line for instance, all you have to do is enter y = mx + b and it automatically provides you with sliders to adjust the value of the slope m and intercept b. This shows nicely what is possible. None of I have described above cannot be built. If this is something you are working on or interested in working on I would love to hear from you (including connections to the Desmos team).