As those of you who follow such things will tell you, the world of online teaching has been heating up lately when it comes to computer science. New courses are coming online at a greater and greater pace, and their quality is improving by leaps and bounds.
One of the pioneers here was MIT with their OpenCourseWare. Their Introduction to Computer Science course not only included all the class materials, but also video lectures, allowing anybody with a computer and internet connection to take the same course taught in the #1 Computer Science school in the world. But it is a tough course, moving very quickly, and the videos are just of the lectures, impersonal, not terribly engaging.
Kahn Academy, in some ways the grand daddy of alternative online learning and pioneer of the 'first person doodle' style of teaching, started their Python Lessons this summer. This provided a very different approach to computer science, much less formal, much more personal, you feel a certain connection to the teacher. But it still required you to download and install a Python interpreter and editor, a small barrier, but a barrier nonetheless.
Meanwhile, a little revolution was taking place with Codecademy, which took the wholly different approach of teaching by doing, immediately throwing students into a programming environment built right into the web page. Codecademy's courses provide no videos, no lecture notes, rather they are programs themselves, guiding you through principles by having you code. This was something entirely new, though some credit belongs to Stanford's CS101 course which also included web page programming, albeit in not as sophisticated a fashion.
This brings us to Udacity, which takes all the best parts of the above approaches and marries them into an incredible teaching tool. Udacity combines the personal, approachable first person teaching style of Kahn Academy, but then backs it up with interactive programming in Python, all right in the browser.
The teachers are ex-Stanford professors, so they have decades of experience teaching this material, which really shows in how they present it. So far in the first week of class, they have done a great job of covering fundamentals without getting bogged down in details, getting students to start learning intuitively, by doing, while still giving them the founding blocks to know why things work the way they do.
Perhaps most importantly, Udacity has structured their CS101 course around a brilliant concept, building a search engine in eight weeks. That single act makes the course not about learning, but about doing. The class never has to answer the question 'why are we doing this?', because each topic is directly tied to the overall goal of building your own little Google, every piece is practical.
To me, this marks the first time where online learning not only matches, but actually exceeds the classroom equivelant. Each student can work at their own pace, and if the material continues to be as well thought out, each student will succeed.
And that's available to anyone, anywhere in the world, for free. Absolutely Incredible (tm).
To me, having lived in Rwanda for a couple years now and having my reservations about the quality of the CS curriculums in the region, Udacity is a revolution.
Suddenly, the very best education is available to everyone. Suddenly it doesn't matter if you live in America or Rwanda, the opportunity is yours. And that's why I think the greatest effect of Udacity will be felt not in America, not in Europe, but in developing countries like Rwanda. Because the improvement in quality over what is offered here is astronomical.
I fully expect that everybody who finishes the eight week Udacity course will be better prepared than those who finish four year university programs in Rwanda. And that's not unique to Rwanda. Every developing country suddenly got a world class computer science school donated to them.
The effect that will have remains to be seen, but I think this is the start of something much, much bigger. The printing press brought us affordable books, driving a renaissance in learning across the world. The internet has done the same, bringing information access and instant communication to virtually every corner of the globe.
Looking fifty years into the future, I think it is clear we are on the cusp of yet another revolution, in learning, where not only will incredible educational programs be available to all, but that those programs will be superior to every teaching tool that came before them. The consequences of that, of having an entire world educated at that level, is beyond imagination.
I often marvel at the luck I've had to live during this era. To be present for the birth of the internet, to programming languages, to see them grow and evolve, but I have a feeling we haven't seen anything yet.