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:
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
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.