We have been busy working on the Pyjama Project, our next version of our educational environment, and the Myro API to interact with robots.
As we have been redesigning the entire scripting environment from the bottom up, we have asked ourselves: what should a modern environment look like for learning about computing? There are many aspects to think about, but one that we have always considered was the social perspective.
Of course, most students are very familiar with social media: Twitter, Facebook, IM, IRC, and a host of other technologies designed to share and network. What could a programming environment do in this domain?
We have two answers: Chat, and Blast. Chat is fairly straight forward: allow students to easily communicate with the instructor and each other as they program. They are probably already doing that, so why not build it into the environment? We have experimented with this idea in the past, by designing a chat interface into Myro. This has allowed students to write programs that can coordinate with people, robots, and other programs (I just added a chess engine to Pyjama, so students can write the brains and play each other's chess programs over the Chat protocol). Students can send pictures taken from their robot to their associated webpage. It is really using the chat infrastructure as a networking protocol. We use XMPP, aka Jabber. It is a little slow as far as networking goes, but dependable and extendable. And pervasive! You can write a program to chat with your phone.
The second answer, Blast, is quite innovative, I think. The basic idea is that teachers have the ability to send programs directly to each other, or to a group of people. You can Blast a script to a student so that it shows up in their editor, centered on the line number you're discussing. Or you can Blast a program so that it just executes in the other's environment.
Want a checkpoint of the classes current understanding with a poll? Blast them an interactive survey question script, which gives you feedback. Want them to follow along with your lecture? Blast them an interactive set of executable "slides". Think of this as a sort of Classroom Presenter, but over chat.
But Blasting need not be only a teacher affair. What would students do if they could Blast code to each other? Would this end up being a cheating nightmare? What about security? Can we prevent people from sending destructive scripts? Or would Blasting be a really good way to learn? Would it drive motivation, and increase interest, attention, and knowledge?
We will see.
You can download Pyjama and try it out, in a variety of languages, including Python, Ruby, C#, Boo, and Scheme, at http://PyjamaProject.org.
|Screenshot of Pyjama Chat||22.21 KB|