Sunday, February 13, 2011

Programming Play


This project is similar to the Program a Person project from a few years ago. The main idea is to create a format for teaching programming through combining storytelling and object oriented code.

The participants in this project would be students/learners who don't know much about code, but are familiar with stories. Any age group could work. If there were participants who knew a bit more about programming, that would be great. This is also a great way to combine the disciplines of theater, writing and programming.

Everything that exists in the story has to be defined/instantiated/called as an object in the code.

Some objects would be:
theStage
theAudience
aCharacter
aHouse

For example, if the story were The Three Little Pigs, there would be calls for:
theStage = thisStage //stages can be given a variety of attributes, small, large, classroom, with lights, etc
theAudience = thisAudience //adult, children, deaf, blind, etc
aCharacter = littlePigOne aCharacter = littlePigTwo, aCharacter = littlePigThree, aCharacter = bigBadWolf,
aHouse = strawHouse, aHouse = stickHouse, aHouse = brickHouse
etc.

As the story develops and unfolds, the code would be displayed, highlighted, spoken to the audience. This could be be a line or block of code that is shown on a card. It could be shown on a display on a screen adjacent to the stage. It could also be spoken by a narrator (also an object instantiated above). Audience members could have a copy of the program or script, or they could write the program as they see the show.

Actions would be defined by a line of code:
littlePigOne build stickHouse;
bigBadWolf printf "I will huff and puff and blow your house down";

Desired outcomes:
The end result would be that participants would have a better knowledge of how code works, and could start to see the way programming applies to everyday situations. A pretest and posttest could identify learning that results from this technique.
This experience could be followed up by:
  • A more elaborate play programmed by participants
  • Type based programming projects
  • GUI based programming projects
  • Discussions of how aspects of a program could be acted out
  • Allowing the language of programming to be used in conversation to explain how things work in the world
If you are interested in helping develop the idea, keep the conversation rolling. If you have a teaching situation, try it with your students. I'm not aware of other projects that are similar to this, but surely somebody has done something along these lines.

Programming Play

This project is kind of similar to the Program a Person project I wrote a few years ago.

The main idea is to create a format for teaching programming through combining storytelling and object oriented code.

The participants in this project would be students/learners who don't know much about code, but are familiar with stories. Any age group could work. If there were participants who knew a bit more about programming, that would be great. This is also a great way to combine the disciplines of theater, writing and programming.

Everything that exists in the story has to be defined/instantiated/called as an object in the code.

(my syntax is sloppy below...)

Some objects would be:
theStage
theAudience
aCharacter
aHouse

For example, if the story were The Three Little Pigs, there would be calls for
theStage = thisStage
theAudience = thisAudience
aCharacter = littlePigOne aCharacter = littlePigTwo, aCharacter = littlePigThree, aCharacter = bigBadWolf,
aHouse = strawHouse, aHouse = stickHouse, aHouse = brickHouse
etc.

As the story develops/unfolds, the code would be displayed/highlighted/spoken to the audience. This could be be a line or block of code that is shown on a card. It could be shown on a display on a screen adjacent to the stage. It could also be spoken by a narrator (also an object instantiated above)

Actions would be defined by a line of code:
littlePigOne build stickHouse;
bigBadWolf printf "I will huff and puff and blow your house down";

The end result would be that participants would have a better knowledge of how code works, and could start to see the way programming applies to everyday situations.
This experience could be followed up by:
  • A more elaborate play programmed by participants
  • Type based programming projects
  • GUI based programming projects
  • Discussions of how various aspects of a program could be acted out
  • Allowing the language of programming to be used in conversation to explain how things work in the world

If you are interested in helping develop the idea, keep the conversation rolling. I have a teaching situation in Pembroke where we could test it out, or you may have a venue that you'd like to work with. I'm not aware of any other projects that are similar to this, but surely somebody has done something along these lines.