Learning how to program is tough. In several decades of research, end-user programming tools and methods have been developed to lower the learning barrier and make programming accessible to wider range of users. However, learning and using programming has remained a solitary activity to end users. As a result of lack of computer support for collaborative learning of programming skills, collaboration is limited to face-to-face and general-purpose computer communication channels such as forums and instant messaging.
My goal is to leverage the social dimension of end-user programming both for educational and general purposes. My approach is to employ participative culture of Web 2.0 to cultivate social programming. By incorporating an online end-user programming environment into the existing online social networking Websites, users will be able to learn, create and share their own programming artifacts within the communities they belong to. I focus on enabling online users to program computer games. Games are known as highly engaging applications to motivate end users in learning programming skills throughout the game design process.
I will demonstrate three software components I have been developing throughout my research to enable online social EUP:
1-Â Online Game Design:Â AgentWeb, a fully Web-based game design and programming environment. Targeted for the masses, AgentWeb provides visual programming language and runtime system for developing games inside the browser. Built using open Web technologies, AgentWeb is a cross-platform end-user programming environment, accessible on all hardware and OS platforms.
2-Â Asynchronous Collaborative Game Design:Â An early version of a social game design Website with AgentWeb at its core which lets users develop, share, explore, learn, and customize games as they play, skipping the upload/download barrier. When completed, the Website fully integrates into Facebook, allowing users to program within their own existing communities. This also helps me lower down the difficulties of community building in my research.
3-Â Synchronous Collaborative Game Design:Â An early prototype of a real-time collaborative AgentWeb which enables multiple users to remotely design and program a game at the same time. Using a similar approach to Google Docs, any changes made by one users are received by other users at real time. Users are informed of changes through an awareness component. The real-time collaborative environment enables exploring distributed peer learning scenarios in end-user programming, an area which has remained unexplored.
I will present some of the pilot studies on AgentWeb and discuss further study plans and challenges.
Bio: Navid Ahmadi has been a Ph.D. student since November 2006 in the faculty of Informatics, at University of Lugano, Switzerland. He is interested in enabling collaborative and social end-user programming on the Web. His research relies upon Web 2.0, Domain-specific languages, CSCW, and end-user programming. He is also interested in Visual Interfaces, Ubiquitous and Pervasive Computing, Semantic Web, and Service-Oriented Computing. He has initiated WEUP (End-User Programming on the Web), an open-source project to develop an infrastructure for enabling end users to build their own interactive applications on the Web.