2012-06-30

Are classroom lectures doomed?

I just finished recording an online course on software debugging at Udacity.  The format is superior to anything I could ever deliver in a classroom.  Universities should worry.


Udacitya startup aiming to "democratize university-level education", offers free online courses on various subjects of higher-level education.  At this point, it is mostly computer science: artificial intelligence, programming languages, software testing – and soon: software debugging.  The Udacity format is pretty unique; what you see for the most time is my hand as it is writing, drawing, and doodling on an electronic sketchpad, while I explain and deliver the material.  Every two to three minutes, you get a quiz (which is checked automatically), and you can only proceed if you answered it correctly.

The nice thing about this course format is that it combines the best aspects of the classroom and the textbook experience.  When I was a student, I have sat through many hours of lectures where math professors delivered one proof after the other.  I usually lost track after 10-15 minutes, so what I got from the lecture was a mental note to work through the textbook proof later at my desk.  I always thought that this was just my own experience, but I recently found this was actually shared by many of my current PhD students (who happen to be among the best of their class, including math).  Simply videotaping such lectures and making them available online will not make them more attractive, and I never felt this to be a viable alternative.

With the Udacity format, this is very different: As I am demonstrating a proof, I can come up with a quiz for every step, thus making sure the student really understands what is going on.  The fast students will quickly answer the questions, while the slower students will be able to repeat the unit at will until they are ready.  In the future, one could even imagine additional explanations for students who keep on failing the quiz, or extra challenges for students who come up with quick correct answers.  The course would thus automatically adapt to the weaker as to the stronger students – which is way superior to having a "one-size-fits-noone" classroom lecture.

Yes, preparing an online lecture in this format is quite some work; it is like preparing a textbook and its presentation at the same time. But then, your lecture scales to an unlimited number of students.  And if the students find the online format more attractive than the classroom format, this will have far-reaching consequences for higher-level education.

One could hope that professors will have much more time for face-to-face interaction – in seminars and lab projects, for instance –, and for inspiring and judging the creativity of their students.  What I see, though, is that lectures as we know them may face the same fate as the CD, as the DVD, or as the encyclopedia – namely to be replaced by well-done digital offers.  That alone is not so much of a problem.  But think of the fate of record stores, video rentals, or soon book stores – and you may get an idea of what universities should be fearing.

2012-06-13

Coming soon: an online course on debugging

In the past weeks, I have been preparing an online course on software debugging for Udacity, the Silicon Valley startup that aims to "democratize education".  The course will be highly interactive, in seven 60-minute units with quizzes every 2-4 minutes, and deliver a systematic approach to debugging.  During the course, I will have the participants build automated debugging tools in Python, such as
  • an interactive debugger,
  • delta debugging on inputs,
  • inferring dynamic invariants,
  • statistical debugging, or
  • mining software archives.
Preparing these tools in Python was amazingly straight-forward (less than 45 minutes each – but then, I'm an expert); Python offers simple, yet effective tracing facilities that grant access to all events and states during execution.  (My only gripe is the lack of easy static analysis.)  Since systematic debugging is not frequently found in computer science curricula, I hope to cater to students as well as to professionals who are looking for additional training – and, of course, to improve the state of the practice in debugging.

I will be spending the next two weeks with Udacity in Palo Alto to record the units.  The format will be Udacity-like: Most of the time, you'll only see my hand writing, doodling, sketching, and developing the material on the screen while I am talking.  You can always stop and repeat as you like (or fast forward until the next automated quiz).  I am pretty excited about the format, and very much look forward to an exciting course as well.

To see what an online course at Udacity looks like, check out Wes Weimer's CS 262: Programming Languages (Building a Web Browser) and go to "Preview the Class".
To learn more about the recording process, see John Regehr's blog on recording a class at Udacity.
To learn more about my work on debugging, see my book "Why Programs Fail".