Key Reading
High Priority
Further Resources
Possible Interest

Key Reading

Fan, H., Sun, C., & Shen, H. (2012). ATCoPE: Any-time Collaborative Programming Environment for Seamless Integration of Real-time and Non-real-time Teamwork in Software Development. In Proceedings of the 17th ACM International Conference on Supporting Group Work (pp. 107–116). New York, NY, USA: ACM. doi:10.1145/2389176.2389194

The author describes the ATCoPE system for collaborative programming that allows for real-time collaboration and non-real-time collaboration concurrently. Definitions for real-time and non-real-time collaborative programming are provided followed by a description of "any time programming". Four design objectives are outlined, Compatibility and transparency in supporting non-real-time collaborative programming, Capability of supporting advanced real-time collaborative programming, Capability of supporting any-time collaborative programming, and High performance and scalability leading into a discussion about the System Architecture and Functional Design.

Schmid, O., Lisowska Masson, A., & Hirsbrunner, B. (2014). Real-time collaboration through web applications: an introduction to the Toolkit for Web-based Interactive Collaborative Environments (TWICE). Personal and Ubiquitous Computing, 18(5), 1201–1211. doi:10.1007/s00779-013-0729-0

The author describes a general Toolkit for Web-based Interactive Collaborative Environments (TWICE) using current standards for web technologies allowing for forward compatibility and spontaneous interaction. The author provides the context of research into "the possibilities of collaboration in multi-user, multi-display and multi-device environments in semi-public settings, and in particular in cases where the collaboration occurs spontaneously" along with related research in which TWICE emerges. The author describes the issues of API resuse ( supporting heterogeneous devices), load balancing, eventing and messaging, multi-user support (multiple pointers, multi-focus widgets, collaborative web browsing, and dynamic layouts and managed modules. The author concludes "Although we do not claim that our toolkit solves all issues involved in the development of collaborative applications, we believe that we have built a solid base for further development of solutions for specific issues arising in this domain. We strongly believe that all of the important work that has been done over the years by many researchers in the field of collaborative systems needs to be integrated into an open structure based on standardized, future-safe, extensible and platform-independent technologies to simplify the development of collaborative applications and therefore to improve the way in which traditional collaboration can be supported by technical means in general."

Schmid, O. (2013). TWICE A Toolkit for Web-based Interactive Collaborative Environments. PhD Thesis. University of Fribourg.

High Priority

1059_cmdaap.pdf. (n.d.). Retrieved from

Ang, S., Rzadca, K., & Datta, A. (2010). SharedMind: A tool for collaborative mind-mapping. In Multimedia and Expo (ICME), 2010 IEEE International Conference on (pp. 1154–1155). IEEE. Retrieved from

Baheti, P., Gehringer, E. F., & Stotts, P. D. (2002). Exploring the Efficacy of Distributed Pair Programming. In Proceedings of the Second XP Universe and First Agile Universe Conference on Extreme Programming and Agile Methods - XP/Agile Universe 2002 (pp. 208–220). London, UK, UK: Springer-Verlag. Retrieved from

Bailey, J., Swigger, K., & Vanecek, M. (1995). Computer-supported Collaborative Work and Its Application to Software Engineering. In Proceedings of the 1995 ACM SIGCPR Conference on Supporting Teams, Groups, and Learning Inside and Outside the IS Function Reinventing IS (pp. 249–250). New York, NY, USA: ACM. doi:10.1145/212490.213720

Barthelmess, P., & Anderson, K. M. (2002). A view of software development environments based on activity theory. Computer Supported Cooperative Work (CSCW), 11(1-2), 13–37.

Bhattacharya, P., Guo, M., Tao, L., Fu, Y., & Qian, K. (2011). A Collaborative Interactive Cyber-learning Platform for Anywhere Anytime Java Programming Learning (pp. 14–16). IEEE. doi:10.1109/ICALT.2011.12

The author provides a brief overview of the open source real-time Java cyber-learning platform ACE (Anywhere, anytime, Cyberspace for CS programming Education). A brief account of related works is given followed by an overview of the ACE platform that includes a three layered system: "The bottom layer is the service supporting layer to provide user management, resource allocation andmanagement, integration module with social networks,and the supporting functionality for upper services.The middle layer of ACE is a collection of web services designed and implemented in Representational State Transfer (REST) architectural style, providing an online interactive real-time Java program development environment.The top layer of ACE is a set of learning spaces, each of which employs a personalized learning approach to tailor the pedagogy, curriculum and learning support to meet the needs and aspirations of individual learners in ACE. Three learning spaces are currently identified in ACE for personalized learning – visualization leaning space, collaborative learning space, and computational thinking and learning space." This is followed by a description of a four-step learning cycle for computational thinking (algorithmic thinking, visualized demonstration, conceptualized learning with pseudo code, and source code implementation), and discussions on visualized learning and collaborative learning.

Benford, S., & Giannachi, G. (2009). Temporal Convergence in Shared Networked Narratives: The Case of Blast Theory’s Day of the Figurines. Leonardo, 42(5), 443–448.

Biehl, J. T., Baker, W. T., Bailey, B. P., Tan, D. S., Inkpen, K. M., & Czerwinski, M. (2008). Impromptu: a new interaction framework for supporting collaboration in multiple display environments and its field evaluation for co-located software development. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (pp. 939–948). ACM. Retrieved from

Bogdan, C., & Mayer, R. (2009). Makumba: the role of the technology for the sustainability of amateur programming practice and community. In Proceedings of the fourth international conference on Communities and technologies (pp. 205–214). ACM. Retrieved from

Boyer, K. E., Dwight, A. A., Fondren, R. T., Vouk, M. A., & Lester, J. C. (2008). A development environment for distributed synchronous collaborative programming. In ACM SIGCSE Bulletin (Vol. 40, pp. 158–162). ACM. Retrieved from

Bravo, C., Duque, R., & Gallardo, J. (2013). A groupware system to support collaborative programming: Design and experiences. Journal of Systems and Software, 86(7), 1759–1771. doi:10.1016/j.jss.2012.08.039

The author presents the collaborative programming environment COLLECE, "a groupware system to support collaborative edition, compilation and execution of programs in a synchronous distributed fashion, which includes advanced tools for communication, coordination and workspace awareness" that focuses on teaching-learning purposes . An overview of related work pair programming, distributed pair programming, and collaborative programming is provided noting the importance of awareness in distributive programming. An overview of the program COLLECE is provided followed by the results of numerous studies conducted on the usability on functionality of the program with a particular focus on 'awareness'.

Cao, N. V., Laribi, A., Léonard, M., Parchet, O., & Zellweger, C. (1996). Integrating CSCW in a cooperative learning environment to teach information systems. In
ACM SIGCSE Bulletin (Vol. 28, pp. 125–129). ACM. Retrieved from

Castelli, V., Bergman, L., Lau, T., & Oblinger, D. (2010). Sheepdog, parallel collaborative programming-by-demonstration. Knowledge-Based Systems, 23(2), 94–109. doi:10.1016/j.knosys.2009.06.008

Chan, S. C., Leung, C. W., Yeung, C. Y., Chow, T. C., Tsui, E. W., & Ng, V. T. (2005). Supporting real-time collaborative learning with web-based groupware. Innovations in Education and Teaching International, 42(4), 349–362.

Cook, C., Irwin, W., & Churcher, N. (2005). A user evaluation of synchronous collaborative software engineering tools. In Software Engineering Conference, 2005. APSEC’05. 12th Asia-Pacific (p. 6–pp). IEEE. Retrieved from

The author presents an empirical evaluation that investigates the benefits of using designed tools for collaborative source code development - the first known evaluation known to the author. A brief overview of Collaborative Software Engineering (CSE) and related tools is given followed by an overview of the tools used in the evaluation. The evaluation method is described followed by the full results from the user trial.

Cortes, M. (2000). A coordination language for building collaborative applications. Computer Supported Cooperative Work (CSCW), 9(1), 5–31.

Damian, D. (2002). An Empirical Study of a Multimedia Group Support System for Distributed Software Requirements Meetings. E-Service Journal, 1(3), 43–60.

Divoli, A., Potena, D., Diamantini, C., & Smari, W. W. (2014). Special Issue on Advances in Computer Supported Collaboration: Systems and Technologies. Future Generation Computer Systems, 31, 105–110. doi:10.1016/j.future.2013.11.001

Domino, M. A., Collins, R. W., Hevner, A. R., & Cohen, C. F. (2003). Conflict in collaborative software development. In Proceedings of the 2003 SIGMIS conference on Computer personnel research: Freedom in Philadelphia–leveraging differences and diversity in the IT workforce (pp. 44–51). ACM. Retrieved from

Draxler, S., & Stevens, G. (2011). Supporting the Collaborative Appropriation of an Open Software Ecosystem. Computer Supported Cooperative Work (CSCW), 20(4-5), 403–448. doi:10.1007/s10606-011-9148-9

Extreme programming: a more musical approach to software development? (n.d.). Retrieved from

Fan, S. B., Robison, T., & Tanimoto, S. L. (2012). CoSolve: A system for engaging users in computer-supported collaborative problem solving. In Visual Languages and Human-Centric Computing (VL/HCC), 2012 IEEE Symposium on (pp. 205–212). IEEE. Retrieved from

Fernaeus, Y., & Tholander, J. (2006). Designing for Programming As Joint Performances Among Groups of Children. Interact. Comput., 18(5), 1012–1031. doi:10.1016/j.intcom.2006.05.004

Geist, G. A., & Sunderam, V. S. (1991). The PVM system: Supercomputer level concurrent computation on a heterogeneous network of workstations. In Distributed Memory Computing Conference, 1991. Proceedings., The Sixth (pp. 258–261). IEEE. Retrieved from

The PVM (Parallei Virtual Machine) sytem enables supercomputer level concurrent computations to be performed on interconnected networks of heterogeneous computer systems. Specifically, a network of 13 IBM RS/SOOO powerstations has been used to run superconductor modeling codes at more than 250 Mjlops. This paper describes the PVM system and two example applications running on it.

Getto, G. (2013). Networked knowledges: student collaborative digital composing as communicative action. Communication Design Quarterly Review, 2(1), 33–58.

As Information and Communication Technologies (ICTs) utilized in workplaces, classrooms, and community organizations continue to proliferate, it follows that the kinds of knowledge necessary to assemble those technologies in order to engage in effective professional communication are becoming increasingly complex. This article details a study conducted of two student teams engaged in a service-learning class in which they were tasked with producing high-quality digital products—a mini-documentary and a simple, but interactive website—for client organizations—an art classroom in a local public school and a mentoring initiative within a local non-profit. The main findings of this study are that students mobilized a variety of resources and created a flexible network of technologies, knowledges, people, and modes of communication in order to address issues pertinent to their clients. In addition, I argue that the most important resource students mobilized was knowledge itself, indicating that one of the most important aspects of digital composing may be in-depth, practical knowledge of technologies, modes, and the genres they involve. Ultimately, the implications of this limited, classroom-based case study are that a situated understanding of how to assemble knowledges for the effective design of communication within a given communication infrastructure may be more important than access to the most cutting-edge modes and technologies, especially when working with resource-poor organizational clients.

Giannachi, G., & Benford, S. (2008). Temporal Expansion in Blast Theory’s Day of the Figurines. PAJ: A Journal of Performance and Art, 30(3), 60–69.

Gray, P. A., & Sunderam, V. S. (1999). Developing technologies for broad-network concurrent computing. Journal of Systems Architecture, 45(15), 1279–1291.

Recent developments in networking infrastructures, computer workstation capabilities, software tools, and programming languages have motivated new approaches to broad-network concurrent computing. This paper describes extensions to concurrent computing which blend new and evolving technologies to extend users' access to resources beyond their local network. The result is a concurrent programming environment which can dynamically extend over network and ®le system boundaries to envelope additional resources, to enable multiple-user collaborative programming, and to achieve a more optimal process mapping. Additional aspects of the derivative environment feature extended portability and support for the accessing of legacy codes and packages. This paper describes the advantages of such a design and how they have been implemented in the environment termed ``IceT''.

Holloway, S., & Julien, C. (2006). Developing Collaborative Applications Using Sliverware. In R. Meersman & Z. Tari (Eds.), On the Move to Meaningful Internet Systems 2006: CoopIS, DOA, GADA, and ODBASE (pp. 587–604). Springer Berlin Heidelberg. Retrieved from

Horstmann, T., & Bentley, R. (1997). Distributed authoring on the Web with the BSCW shared workspace system. StandardView, 5(1), 9–16.

James, D., & Stanton, J. (2011). Beyond Being (T)Here: The Social and Personal Implications of Making Music at a Distance. In Proceedings of the 2011 iConference (pp. 686–687). New York, NY, USA: ACM. doi:10.1145/1940761.1940870

Jara, C. A., Candelas, F. A., Torres, F., Dormido, S., Esquembre, F., & Reinoso, O. (2009). Real-time collaboration of virtual laboratories through the Internet. Computers & Education, 52(1), 126–140. doi:10.1016/j.compedu.2008.07.007

Jeffery, C., Dabholkar, A., Tachtevrenidis, K., & Kim, Y. (2005). A Framework for Prototyping Collaborative Virtual Environments. In H. Fukś, S. Lukosch, & A. C. Salgado (Eds.), Groupware: Design, Implementation, and Use (pp. 17–32). Springer Berlin Heidelberg. Retrieved from

Lauche, K. (2005). Collaboration Among Designers: Analysing an Activity for System Development. Computer Supported Cooperative Work (CSCW), 14(3), 253–282. doi:10.1007/s10606-005-5413-0

Little, G., Lau, T. A., Cypher, A., Lin, J., Haber, E. M., & Kandogan, E. (2007). Koala: capture, share, automate, personalize business processes on the web. In Proceedings of the SIGCHI conference on Human factors in computing systems (pp. 943–946). ACM. Retrieved from

Lotufo, R. A., Machado, R. C., Körbes, A., & Ramos, R. G. (2009). Adessowiki on-line collaborative scientific programming platform. In Proceedings of the 5th international symposium on Wikis and open collaboration (p. 10). ACM. Retrieved from

Matthiesen, S., Bjørn, P., & Petersen, L. M. (2014). “Figure out how to code with the hands of others”: recognizing cultural blind spots in global software development (pp. 1107–1119). ACM Press. doi:10.1145/2531602.2531612

McAlpine, K., & Golder, P. (1993). A new architecture for a collaborative authoring system. Computer Supported Cooperative Work (CSCW), 2(3), 159–174.

Oleksik, G., Milic-Frayling, N., & Jones, R. (2014). Study of electronic lab notebook design and practices that emerged in a collaborative scientific environment (pp. 120–133). ACM Press. doi:10.1145/2531602.2531709

Rittner, L., Saude, A. V., Silva, A. G., Machado, R. C., Bento, M. P., & Lotufo, R. A. (2011). Adessowiki: Collaborative Scientific Programming Environment. In Proceedings of the 2011 24th SIBGRAPI Conference on Graphics, Patterns, and Images Tutorials (pp. 56–62). Washington, DC, USA: IEEE Computer Society. doi:10.1109/SIBGRAPI-T.2011.12

Salinger, S., Oezbek, C., Beecher, K., & Schenk, J. (2010). Saros: an eclipse plug-in for distributed party programming. In Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering (pp. 48–55). ACM. Retrieved from

The author introduces Saros, an Eclipse plugin for simultaneous collaborative software development. An overview of pair-programming, distributed pair-programming, and distributed party programming is provided followed by the technical aspects of Saros. A discussion on awareness in distributed programming is provided highlighting areas that were implemented into Saros such as colours representing different programmers, highlighted work flows, relative positions of users, awareness data synced between files, information regarding what program is in the foreground for each user, and the importance of audio connections between users. This is followed by an overview of scenarios which benefit from using Saros including introducing code to novices, reviewing code, distributed pair programming, and distributed party programming. Results of a survey regarding users experiences is provided which leads into a discussion of the ongoing work to improve Saros.

Schmidt, K., & Bannon, L. (2013). Constructing CSCW: The First Quarter Century. Computer Supported Cooperative Work (CSCW), 22(4-6), 345–372. doi:10.1007/s10606-013-9193-7

Schümmer, T., Lukosch, S., & Haake, J. M. (2005). Teaching distributed software development with the project method. In Proceedings of th 2005 conference on Computer support for collaborative learning: learning 2005: the next 10 years! (pp. 577–586). International Society of the Learning Sciences. Retrieved from

Sharrock, W., & Button, G. (1997). On the Relevance of Habermas ‘Theory of Communicative Action for CSCW. Computer Supported Cooperative Work (CSCW), 6(4), 369–389.
Shen, H. (2008). Collaborative Programming on the Internet: Environments. Saarbrücken, Germany, Germany: VDM Verlag.

Spoon, L., & Guzdial, M. (1999). MuSwikis: a graphical collaboration system. In Proceedings of the 1999 conference on Computer support for collaborative learning (p. 72). International Society of the Learning Sciences. Retrieved from

Tian, L., Chen, J., Wang, Q., Hao, W., & Tong, B. (2007). CoDesign Space: a collaborative design support system in a network environment. International Journal of Computer Integrated Manufacturing, 20(2-3), 265–279. doi:10.1080/09511920601150636

Trevor, J., Rodden, T., & Blair, G. (1994). COLA: A lightweight platform for CSCW. Computer Supported Cooperative Work (CSCW), 3(2), 197–224.

Vandeventer, J., & Barbour, B. (2012). CodeWave: a real-time, collaborative IDE for enhanced learning in computer science. In Proceedings of the 43rd ACM technical symposium on Computer Science Education (pp. 75–80). ACM. Retrieved from

Villegas, H. C. (1998). A Study of Awareness-enhanced Tools for Collaborative Programming. University of Lowell, Lowell, MA, USA.

Wei, S. X. (2002). Resistance Is Fertile: Gesture and Agency in the Field of Responsive Media. Configurations, 10(3), 439–472. doi:10.1353/con.2004.0006

Williams, L. (1999). But, isn’t that cheating?[collaborative programming]. In Frontiers in Education Conference, 1999. FIE’99. 29th Annual (Vol. 2, pp. 12B9–26). IEEE. Retrieved from

Xiao, W., Chi, C., & Yang, M. (2007). On-line collaborative software development via wiki. In Proceedings of the 2007 international symposium on Wikis (pp. 177–183). ACM. Retrieved from

The author discusses the project Galaxy Wiki, an on-line collaborative software development environment that utilizes the affordances of wiki technology - collaboration, rich context, open and easy to access, and wiki names dynamic links. The author reviews some basic concepts of wiki-based programming ('literate programming in wiki') and page-oriented software engineering (wiki pages being exactly like classes in an object oriented programming language) before providing an overview of the Galaxy Wiki development environment.

Xiao, X., & Ishii, H. (2011). MirrorFugue: Communicating Hand Gesture in Remote Piano Collaboration. In Proceedings of the Fifth International Conference on Tangible, Embedded, and Embodied Interaction (pp. 13–20). New York, NY, USA: ACM. doi:10.1145/1935701.1935705

Further Resources

Possible Interest