(the connection parameters should be passed to the
constructor) and starts a chat-listener thread. The in-
stantiated Olshed object should later be told about the
actual Document object on which shared editing will
be conducted. At that time, the Olshed main class’s
instance is also added to the Document object as a
DocumentListener object.
As a proof-of-concept realization of Olshed, Dr-
Java (Allen et al., 2002), a well-known educational
Java IDE, was extended with Olshed for real-time on-
line shared editing. It was easily done by follow-
ing the simple extension strategy described above,
without serious modification to DrJava’s original code
base. Any number of DrJava+Olshed application in-
stances can perform shared editing of a single Java
source code file document as long as they are all con-
nected to the same Olshed chat server. This is a strong
evidence that Olshed can be easily applicable to any
existing Swing-based Java applications.
The development of Olshed is still in its infant
stage. Currently, the document consistency mainte-
nance algorithm is yet to be implemented. The lack
of the feature can possibly result in out-of-sync doc-
uments across Olshed clients at this point. As long
as the current infantile Olshed is used in a purely
driver-and-observer model, this shouldn’t be a big is-
sue for the time being. Currently Olshed can share
only a single document among two or more partici-
pants. The current Olshed chat server implementation
allows only one group of shared editing participants.
Lifting these restrictions should not be difficult.
4 CONCLUSIONS
In this paper, it was informally argued that real-time
online shared editing can significantly benefit not only
general remote collaboration like pair programming
but also teaching and learning of introductory pro-
gramming courses. Available existing online shared
applications were surveyed. Hoping a light-weight
IDE-based shared editing environment for use by stu-
dents and instructors of intro-programming courses,
the author developed and presented Olshed, a simple
Swing-based Java library allowing an easy extension
of existing Swing Java applications with real-time on-
line shared editing. As a proof-of-conceptproject, Dr-
Java, a well-known Java IDE written in Java, was ex-
tended for shared editing with Olshed. The full source
code of Olshed and Olshed-extended DrJava is avail-
able as an open source project.
There are many needed future work topics for Ol-
shed. The most imminent feature that’s needed is
to maintain document consistency under concurrent
write access to a single document. An OT (Opera-
tional Transformation)-based algorithm (Sun and El-
lis, 1998) will be soon implemented and integrated.
Other desirable features would be related to the Ol-
shed chat server, such as supporting multiple con-
current editing groups and supporting multiple doc-
uments editing per each concurrent editing group.
REFERENCES
0x539 Dev Group (2009). Gobby. http://gobby.0x539.de/.
ACE Project Team (2006). Ace - a collaborative editor.
http://sourceforge.net/projects/ace/.
Allen, E., Cartwright, R., and Stoler, B. (2002). Drjava: A
lightweight pedagogic environment for java. In Pro-
ceedings of ACM SIGCSE Symposium 2002.
Beck, K. (2005). Extreme Programming Explained - Em-
brace Change. Addison-Wesley, 2nd edition.
Cockburn, A. and Williams, L. (2000). The costs and
benefits of pair programming. In Proceedings of the
1st International Conference on Extreme Program-
ming and Flexible Processes in Software Engineering
(XP2000).
Fraser, N. (2009). google-mobwrite.
http://code.google.com/p/google-mobwrite/.
Lau, S. (2009). Saros - Distributed Pair Programming for
Eclipse. https://www.inf.fu-berlin.de/w/SE/DPP.
Lewis, S. (2007). RT Shared Editing - Eclipsepedia.
http://wiki.eclipse.org/RT Shared Editing.
Nagappan, N., Williams, L., Ferzli, M., Wiebe, W., Yang,
K., Miller, C., and Balik, S. (2003). Improving the cs1
experience with pair programming. In Proceedings of
ACM SIGCSE Symposium 2003.
Sun, C. and Ellis, C. (1998). Operational transformation
in real-time group editors: Issues, algorithms, and
achievements. In Proceedings of the ACM Conference
on Computer-Supported Cooperative Work.
The Notepad++ Project Team (2009). Notepad++.
http://notepad-plus.sourceforget.net/.
The Sangam Project Team (2008). Sangam - Eclipse Plugin.
http://sangam.sourceforge.net/.
The XPairtise Team (2008). XPairtise - Pair Programming
for Eclipse. http://xpairtise.sourceforge.net/.
CSEDU 2010 - 2nd International Conference on Computer Supported Education
492