(Formerly Programming Game)
There is a long history of alternative programming environments for children. Many of these are both fun to use and powerful, allowing the creation of complex interactive programs without the pain typically associate with programming. However, none of these programming models have been widely adopted for real-world tasks, indicating that additional exploration may be needed.
I would like to conduct a survey of past approaches and attempt to identify additional approaches or angles that have not been tried. I have been particularly inspired by the realization that Lemmings constitutes a kind of visual programming language. This kind of language may be related to what Travers (1994) calls "programming with active objects". I am curious: what has been done in this area, why haven't I heard more about it, and what can be done.
If I can specify a kind of active object programming that seems like it would be interesting to try, I will create a game that implements that approach and run a very brief pilot study to get a sense of the experience of the game, what it is capable of and how it may relate to other previous work.
One possible concept is simply to have more complex "lemmings" with more generic behaviors. For example, in a cake sorting factory, you might have a lemming that pushes a button when it sees a chocolate cake. You could then coordinate this lemming with another lemming that pushes things off a conveyer belt to create a sort of if-then statement. The second level of the game might require the player to use a lemming which walks from lemming to lemming activating them in order (a "loop"). Such generic behaviors could be combined to perform more and more complicated tasks.
This design is only offered as the type of game I am thinking about. The actual direction of the project depends entirely on the literature review.
Smith, D. C., Cypher, A., and Spohrer, J. 1994. KidSim: programming agents without a programming language. Commun. ACM 37, 7 (Jul. 1994), 54-67. DOI= http://doi.acm.org/10.1145/176789.176795
curlybot: Designing a New Class of Computational Toys. CHI 2000 Conference on Human Factors in Computing Systems http://tangible.media.mit.edu/papers/curlybot_CHI00.php
Papert, Seymour (1980). Mindstorms: Children Computers and Powerful Ideas. BasicBooks.
The qualitative impact of using LEGO MINDSTORMS robots to teach computer engineering. AB Williams - Education, IEEE Transactions on, 2003 http://ieeexplore.ieee.org/xpl/abs_free.jsp?arNumber=1183685
Abelson H., and diSessa A. (1981). Turtle Geometry. MIT Press.
Resnik A., Martin F., Berg R., Borovoy R., Colella V., Kramer K., Silverman B (1998). Digital Manipulatives: New Toys to Think With. Paper Session, Proceedings of CHI'98, ACM Press, 281-287.
Fenton, J. and Beck, K. 1989. Playground: an object-oriented simulation system with agent rules for children of all ages. SIGPLAN Not. 24, 10 (Oct. 1989), 123-137. DOI= http://doi.acm.org/10.1145/74878.74891
Travers, M. 1994. Recursive interfaces for reactive objects. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems: Celebrating interdependence (Boston, Massachusetts, United States, April 24 - 28, 1994). B. Adelson, S. Dumais, and J. Olson, Eds. CHI '94. ACM Press, New York, NY, 379-385. DOI= http://doi.acm.org/10.1145/191666.191794
Kelleher, C. and Pausch, R. 2005. Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. ACM Comput. Surv. 37, 2 (Jun. 2005), 83-137. DOI= http://doi.acm.org/10.1145/1089733.1089734
Montemayor, J., Druin, A., Farber, A., Simms, S., Churaman, W., and D'Amour, A. 2002. Physical programming: designing tools for children to create physical interactive environments. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems: Changing Our World, Changing Ourselves (Minneapolis, Minnesota, USA, April 20 - 25, 2002). CHI '02. ACM Press, New York, NY, 299-306. DOI= http://doi.acm.org/10.1145/503376.503430
Week 1: A 1-2 page paper summarizing in broad strokes the approaches that have been tried, and identifying one or more possible approaches that have not.
Weeks 2-4: A functional prototype implementing one of these approaches.
Week 5: A report on a pilot study done with the prototype. It's OK if I only have a few Informatics students try it. Just to get a quick sense of A) what the experience is like, B) what is actually possible with the prototype and C) how it may differ from the other approaches mentioned in the lit review.