Aug 01, 2013

Video Lesson Documentation

Over the last year, I’ve been developing two video series about learning to program, one for beginners based on my Learning Processing book and one for advanced based on The Nature of Code.

The landscape of possibilities to learn to program these days is rich. There are interactive learning sites (Code Academy, Khan Academy CS), Moocs (Udacity, Coursera), as well as innovative ideas in the design of languages and interfaces for computational thinking (Bret Victor, Toby Schachman).

With such a wide variety of choices, I often hear the question: “What is the best way to learn programming?” (Along with related questions like: “What language should I learn?” etc.) I don’t pretend to have any idea what the answer is for everyone or even for one person. I like to think that the best way to learn programming is the way you are learning programming right now. If you are doing it, if you are giving it a shot, if you are excited about it then you’ve picked a good way. This might be a book, a kitchen table workshop, a video series, an interactive web site, or an actual class at some sort of insititution.

We at ITP became interested in contributing to this world of online learning. With the help of Shawn Van Every and Craig Protzel, I began to experiment with streaming and recording my classes themselves. This worked technically, but it was hard to get the details right (capturing the computer screen, a good shot of the whiteboard, being able to hear the student questions) and the videos ended up being very long. It also felt a bit odd to release course content, but not have a way for those watching to participate.

With the idea of a live audience it mind, we put together a “lesson broadcasting studio” in my office. One thing I do know (or at least I think I know) is that people matter. A great way to learn something is to have to explain it to a friend. This has certainly been the case for me, I’ve done all my best learning in a panicked state getting ready for class. And so in our recording studio all of the camera and screen capture inputs pass through Wirecast, software designed for streaming. This wwould finally allow us to broadcast lessons and come up with a way for those watching to interact in real time.

The thing is, as you may have noticed, I got a little side tracked. Along the way to broadcasting live, I started uploading recorded lessons. And now I have hours and hours of them. It’s quite unclear to me how useful these are given the fact that the videos provide no tools for the viewer to ask questions or interact with the content itself. But this fall, in addition to finishing the beginner series, I’m planning to finally experiment with some live broadcasts.

Following is a recording of a quick and dirty test using Google Hangout. A hangout allowed us to screen share the wirecast window as one of the feeds as well as invite viewers to call in and ask questions. Think of it as open office hours or a “call-in” programming advice show. I’m hoping to do one more test next week and then officially begin once per week in September.