Institute for Personal Robots in Education Blog

Doug Blank's blog

The Pyjama Project

The Pyjama Project is a framework for learning, doing, and playing with computation. At its core is an integrated editor, interactive console, and social interaction framework for exploring computer science through modern, dynamic languages. It is designed to be a simple, yet powerful, integrated development environment (IDE) for students, teachers, researchers---and regular humans, too! It runs on most any operating system, including Linux, Mac OS X, and Windows. All sources for the Pyjama Project are open and free---freely available and you are free to use them in various ways.


Pyjama has three main types of users in mind: the educator, the learner, and the scripter.

Pyjama for the Educator

Pyjama is a framework for educators to instruct, gain insight, and to explore better methods of teaching.

Pyjama is ready to use for instruction, and includes useful functions for teaching in the laboratory setting:

  • Start with a drag and drop language, like Dinah, and smoothly migrate to a more sophisticated text-based language, like Python, and continue to a type-based language, like Boo or C#, and end with a sophisticated language, like Scheme, all in one environment
  • Context modules (like Graphics and Robotics) are the same across languages
  • Integrated Chat - students and teachers can communicate whenever they are working
  • Script Blast - users can Blast code to each other, both to just run, or to pop up in their editors
  • Checkpoints - using Script Blast, instructors can send students interactive questions to get feedback on understanding. A simplified version of Classroom presenter is possible
  • Follow along instruction - using Script Blast, instructors can send their lecture "slides" so students can follow along (or rewind) on their own screens
  • Window design - windows designed for easy presentation on projected screens
  • Script submission - code can be submitted easily to instructor
  • Logging - instructors can analyse logged data to explore time-on-task and other concepts
  • Development - teachers can create their own languages (at various levels of abstraction) to test their pedagogical effectiveness

Instructors can use the user checkpoint question feedback, chat questions, and log analysis to adapt, even on the fly.

Instructors can extend the Pyjama framework by developing their own languages, visualizations, or interfaces. For example, an instructor develop a new text-based language, or a language like Scratch; or they could develop an interface to objects, like BlueJ.

Pyjama for the Learner

Pyjama is designed for students:

  • choice of languages, from the simple, to the sophisticated
  • embraces social communication
    • chat with others, in their own conferences, or with everyone
    • chat with the instructor one-on-one
    • share code, by allowing others to run it, or see it
  • color syntax high-lighting for all languages
  • easy support for submitting assignments
  • integrated web page for exploring HTML and making a public space
  • code blast to help getting answers and asking questions

It is planned that Pyjama will support extended assistance for getting help with particular errors.

Pyjama for the Scripter

Pyjama is a nice environment for writing code, in general. It is planned to make Pyjama be an environment for exploring (and researching) ideas in computer science. For example, one can write in multiple languages, sharing data between them.

The Pyjama Project now embraces social interactions

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.

Ada Lovelace Day: Dedicated to the Next Generation

Today is Ada Lovelace Day! In her honor, writers around the world have pledged to publish a note about a woman in technology who they admire. See FindingAda.com for more info. It is impossible for me to only pick one woman in technology! For me, there are so many to choose from, including:

  • Lisa Meeden - professor at Swarthmore College who may be the best teacher in the world
  • Laura Blankenship - free-lance geeky mom/educational technological evangelist, who may be the best techno-geeky-mom/wife/friend in the world
  • Jane Prey - has made so many great things happen in my (and many people's) career

But, instead of picking just one woman, I'm going to cop-out and vote for the entire Next Generation of women who will change the face of computing, and take the field in exciting new directions. This includes:

To all of the women in the Next Generation, we salute you!

Robots killing people

In a recent article in GOOD magazine, Chris Csikszentmihalyi (pronounced "cheek-sent-me-hi") noted:

Among the many changes in U.S. policy after 9/11 was one that went unnoticed by everyone except a few geeks: The military quietly reversed its longstanding position on the role of robots in battlefields, and now embraces the idea of autonomous killing machines. There was no outcry from the academics who study robotics—indeed, with few exceptions they lined up to help, developing new technologies for intelligent navigation, locomotion, and coordination. At my own institute, an enormous space is being out-fitted to coordinate robotic flying, swimming, and marching units in preparation for some future Normandy.

Researchers study software gender gap

Two computer scientists have found an interesting difference between how men and women use software. From an MSNBC report:

Laura Beckwith, a new computer science Ph.D. from Oregon State University, and her adviser, Margaret Burnett, specialize in studying the way people use computers to solve everyday problems — like adding formulas to spreadsheets, animation to Web sites and styles to word processing documents.

A couple of years ago, they stumbled upon an intriguing tidbit: Men, it seemed, were more likely than women to use advanced software features, specifically ones that help users find and fix errors. Programmers call this "debugging," and it's a crucial step in building programs that work.

Robot Conflict

In the past, the Franklin Institute has invited us here at Bryn Mawr College to participate in demonstrations of our interesting robotics projects. We have always been very happy to take a group of robots on a nice Saturday morning in the Fall and have some fun showing kids of all ages our toys, er, I mean, "research opportunities."

However, this year I am hesitating. This year, the FI is bundling their robot demonstrations with an event called Robot Conflict. They describe it this way:

A Talk on the Philosophy of Computer Science

Bryn Mawr College Department of Philosophy, Department of Computer Science, The Center for Science in Society, and the Delaware Valley Distinguished Lecture Series in Computer Science presents:

William J. Rapaport
University at Buffalo

Title: Philosophy of Computer Science

William J. Rapaport is an Associate Professor in the Department of Computer Science and Engineering, an affiliated faculty member in the Departments of Philosophy and of Linguistics, and a member of the Center for Cognitive Science, all at State University of New York at Buffalo. His research interests are in cognitive science, artificial intelligence, computational linguistics, knowledge representation and reasoning, contextual vocabulary acquisition, philosophy of mind, philosophy of language, critical thinking, and cognitive development. His research has been supported by the National Science Foundation and the National Endowment for the Humanities.

The Subtlety of Gender Bias: robots, classrooms, and Top Chef

Here at the IPRE, we are working on developing hardware, software, and course materials based on robots for use in teaching introductory computing courses.

One aspect of the project that we are very conscious of is how the students might perceive robots in the classroom. One of our goals is to develop materials that will attract students into computing. If we use a device that some students find alienating, then we will, of course, have failed. So, we are sensitive to such perceptions, specifically those that have gender correlations.

How can one develop materials that are sensitive to gender biases? The same way that you write good software: you need to test. Feedback is the only way that you can know for certain, and then you revise and test again. We all have biases and, even when we are aware of that fact, these biases can still pop-up and have adverse affects.

iRobot Create challenge

John Billington from iRobot has just announced a robot challenge, and the winner gets $5,000!

I am writing to let the robotics and education community know that
iRobot is offering up free Create robots to students who want to enter
the iRobot Create challenge. Please let any students or interested
parties know that all they need to do is post their idea here before the
end of June:

www.instructables.com/group/iRobot

The contest deadline to make your robot is the end of August. We are

The Philosophy of a Good Robot Assignment: Competitions in the Classroom?

One of the first ideas that comes to mind as an assignment using robots in the classroom is to have a competition. Sounds fun, doesn't it? Create a buzz on campus, get people talking about your course! Get students hooked, and engaged! Motivate them to spend some time on the subject! Sounds like you can't go wrong.

But I think that there can be problems with competitions in the classroom. However, you can tweak a competition to avoid problems. What could possibly be wrong with a good-natured, friendly competition? Of course, some students might not do well with the stress. But even beyond that, there might be subtle issues even if everyone wants to participate. Consider the following.

Syndicate content