Cultures deal with their environments by adapting to them and simultaneously changing them. This is particularly true for technological cultures, such as the dynamic culture of computer users. To date, the ability to change computing environments in non-trivial ways has been dependent upon the skill of programming. Because this skill has been hard to acquire, most computer users must adapt to computing environments created by a small number of programmers. In response to the scarcity of programming ability, the computer science community has concentrated on producing general-purpose tools that cover wide spectrums of applications. As a result, contemporary programming languages largely ignore the intricacies arising from complex interactions between different people solving concrete problems in specific domains.This dissertation describes Agentsheets, a substrate for building domain-oriented, visual, dynamic programming environments that do not require traditional programming skills. It discusses how Agentsheets supports the relationship among people, tools, and problems in the context of four central themes: (1) Agentsheets features a versatile construction paradigm to build dynamic, visual environments for a wide range of problem domains such as art, artificial life, distributed artificial intelligence, education, environmental design, and computer science theory. The construction paradigm consists of a large number of autonomous, communicating agents organized in a grid, called the agentsheet. Agents utilize different communication modalities such as animation, sound, and speech. (2) The construction paradigm supports the perception of programming as problem solving by incorporating mechanisms to incrementally create and modify spatial and temporal representations. (3) To interact with a large number of autonomous entities Agentsheets postulates participatory theater, a human-computer interaction scheme combining the advantages of direct manipulation and delegation into a continuous spectrum of control and effort. (4) Metaphors serve as mediators between problem solving-oriented construction paradigms and domain-oriented applications. Metaphors are used to represent application semantics by helping people to conceptualize problems in terms of concrete notions. Furthermore, metaphors can simplify the implementation of applications. Application designers can explore and reuse existing applications that include similar metaphors.
Cited By
- Lewis C Why can't programming be like sketching? Companion Proceedings of the 3rd International Conference on the Art, Science, and Engineering of Programming, (1-6)
- Scaffidi C, Dahotre A and Zhang Y How well do online forums facilitate discussion and collaboration among novice animation programmers? Proceedings of the 43rd ACM technical symposium on Computer Science Education, (191-196)
- McDirmid S Coding at the speed of touch Proceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software, (61-76)
- Dahotre A, Zhang Y and Scaffidi C A qualitative study of animation programming in the wild Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, (1-10)
- Dörner C, Pipek V, Weber M and Wulf V End-user development Proceedings of the 4th international workshop on End-user software engineering, (71-75)
- Zhou Z, Chan W and Chow J (2007). Agent-based simulation of electricity markets, Artificial Intelligence Review, 28:4, (305-342), Online publication date: 1-Dec-2007.
- Seals C Visual programming for novice programmer teachers Proceedings of the 2005 conference on Diversity in computing, (26-27)
- St. Amant R and Christian D Environment modification in a simulated human-robot interaction task: Proceedings of the 8th international conference on Intelligent user interfaces, (174-180)
- Averbukh V (2019). Visualization Metaphors, Programming and Computing Software, 27:5, (227-237), Online publication date: 1-Sep-2001.
- Smith D, Cypher A and Tesler L (2000). Programming by example: novice programming comes of age, Communications of the ACM, 43:3, (75-81), Online publication date: 1-Mar-2000.
- Cypher A and Smith D KidSim Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, (27-34)
- Fischer G, Lindstaedt S, Ostwald J, Stolze M, Sumner T and Zimmermann B From domain modeling to collaborative domain construction Proceedings of the 1st conference on Designing interactive systems: processes, practices, methods, & techniques, (75-85)
- Ambach J Directing pictures with Art Pals Conference Companion on Human Factors in Computing Systems, (93-94)
- Smith D, Cypher A and Spohrer J (1994). KidSim, Communications of the ACM, 37:7, (54-67), Online publication date: 1-Jul-1994.
- Repenning A and Sumner T Programming as problem solving Proceedings of the workshop on Advanced visual interfaces, (182-191)
Index Terms
- Agentsheets: a tool for building domain-oriented dynamic, visual environments
Recommendations
Agentsheets: a tool for building domain-oriented visual programming environments
CHI '93: Proceedings of the INTERACT '93 and CHI '93 Conference on Human Factors in Computing SystemsVisual programming systems are supposed to simplify programming by capitalizing on innate human spatial reasoning skills. I argue that: (i) good visual programming environments should be oriented toward their application domains, and (ii) tools to build ...
Agentsheets: a tool for building visual programming environments
CHI '92: Posters and Short Talks of the 1992 SIGCHI Conference on Human Factors in Computing SystemsVisual programming systems are supposed to simplify programing by capitalizing on innate human spatial reasoning skills. We claim (a) that good visual programing environments should be oriented toward their application domains and (b) tools to build ...
Agentsheets: A Medium for Creating Domain-Oriented Visual Languages
Visual programming languages strive to simplify the intricate process of programming by capitalizing on innate human perceptual skills. However, visual representations of general-purpose programming constructs provide little support to end-users in ...