Editor's note: Last week, we at EdSurge were a tad dismissive of Khan Academy's newly launched computer science program. Boy, did you let us have it! Dan Meyer, who has been sharp-tongued about Khan's math curriculum, lavished praise on Khan's programming modules, calling them "really something special." One or two readers came up to us last week at the Meetup and told us off. Okay! We get it! Here's a very thoughtful explanation by Minerva's Ari Bader-Natal about why the programming module really rocks--and how Khan can make it even better.
While it’s not going to revolutionize education (or even computer science education), the Khan Academy’s new Computer Science program marks a great step forward for the Academy by making the lessons open-ended and tinker-ready. Critics take note: Khan Academy is on the move.
that features an unusual interface merging a recorded screencast with
an interactive programming environment.
Even if you’ve already read
John’s post, you should try a programming tutorial
to better understand the experience. Like all Khan Academy lessons, you
begin by pressing the play button, and then you watch and listen to
explanations of new concepts and a few worked examples. But since most
explanations and worked examples about programming can take the form of
computer code (rather than free-hand drawings), there is really no
reason for the visuals to be locked up inside a high-bandwidth pixelated
video. With some technical magic, you can have the code “playback”
happen directly in the webpage, no flashy youtubes necessary.
break the code out of the confines of a video, all sorts of new
possibilities open up. John and team demonstrate a few: their codecasts
are viewer-editable, code changes are auto-evaluated, everything is
forkable and shareable.
Why does this matter? It lets students
effortlessly switch between instruction and experimentation, encouraging
tinkering as a mechanism for learning. In the Khan Academy system
of template-generated, machine-graded practice problems, this open-ended
messiness is a breath of fresh air.
I have to admit, part of the reason that I’m excited about this new platform is that I could have penned a near-replica of John’s announcement to describe my own recent work on Studio Sketchpad.
In 2010, I began building this website based on a similar concept of
tinkering, using code that generates interactive graphics as a fun way
to learn to program.
There are many such sites around today (and Sketchpad certainly wasn’t the first), each of which has a different specialty: OpenProcessing is portfolio-oriented, Scratch is drag-and-drop simple, Kodu and PlayMyCode are game-oriented, AppJet was webapp-oriented, Codea is iPad-classy, JSBin is developer-functional, Mozilla Thimble is webmaker-targeted, Programr, TryRuby, jsdo.it, wonderfl, sketchpatch,
and the list goes on.
Earlier this year, I organized a panel discussion at the Digital Media and Learning conference solely to compare notes with some of the other people building these tools: Building four communities for learning, tinkering, and remixing with code.
Motivated by John Seely Brown’s argument for the atelier model of learning (JSB inspired the open Studio
in Sketchpad), Sketchpad is deeply collaborative and visually
interactive: it builds on the real-time collaborative Etherpad text
The Etherpad-based code that’s powering Sketchpad is now old and quite creaky, but several college courses and programming workshops use it, and I still try to push its limits every now and then.
Thanks to a flash grant from the Shuttleworth Foundation (via Philipp Schmidt of P2PU fame), I was able to take a few weeks off between my time at Grockit and the Minerva Project to build something brand new: sketchcasting. What I built — inspired by an experience I had running a P2PU course using Sketchpad in 2010, and enabled by the great Mozilla Popcorn project — functions a lot like the new interactive code-casts on Khan Academy. Watch the code being typed as you listen to an accompanying audio narration, pause playback to fork and experiment yourself with the code at any moment, then show and share what you create (an example). The best part is that anyone can record a sketchcast, not just me. Here’s how this works:
Sketchpad’s sketchcasting is technically inferior to Khan Academy’s interactive code tutorials, but sketchcasting does have three great things going for it that I’d love to see the Khan Academy incorporate in the future:
Anyone can record a sketchcast. Open the normal code editor, press “record”, and talk as you code. You’ll get a unique URL to share with others.
Sketchcasting is collaborative. Groups of people can code together while recording a sketchcast, and groups of people can code together while experimenting with forked versions of existing sketchcasts.
All viewer comments and Q&A are automatically time-coded. While I’ve argued for and hand-built time-anchored Q&A learning tools in the past, I got it here for free as a part of the excellent Soundcloud audio player. Thanks, Soundcloud!
Hats off to Sal, John, and team at Khan Academy. It’s great to see this new approach of weaving together instruction with open-ended experimentation. True, it’s not true scaffolding that fades, but modding/tweaking/remixing are arguably a new form of structured support: letting learners choose their starting point and their own goal. This is a common thread in learn-to-code community websites: Finding and tweaking existing work acts as a great entry point for later creating original work. I’m excited to see Khan Academy enable this sort of structured experimentation. I look forward to hearing status updates from Sal, John, and team in upcoming months and, if all goes well, hope to see more open-ended messiness make its way into other parts of Khan Academy.