JeCo, a Collaborative Learning Tool for Programming Andr´ es Moreno, Niko Myller, and Erkki Sutinen University of Joensuu Computer Science Department P.O. Box 111, FI-80101 Joensuu, Finland {amoreno, nmyller, sutinen}@cs.joensuu.fi Abstract The pair-programming activities in a classroom are found to support learning of the novice students during the first programming courses. However, there are very few tools that could support pair or group programming in dis- tance education courses. We present a concept of collabo- rative program visualization and a tool to realize it, called JeCo that can help the students to work together on a plat- form that supports both collaborative authoring and pro- gram visualization. 1. Introduction There is a growing interest in pair-programming in class- room settings. Furthermore, a large base of positive re- sults in empirical experiments supports the use of pair- programming in programming courses [9]. At the same time, the students are still struggling in the programming course and especially in the distance educa- tion courses of programming [13]. Similar kind of pair- or group-programming could be introduced to distance educa- tion programming courses. However, new tools are needed to accomplish this task as the interaction between the stu- dents should be supported. Algorithm and program visualization have a potential to aid students learning to program. The studies have given contradictory results. The key feature for success seems to be the level of engagement of the students during the visu- alization activities [2, 6]. With our approach we aim to increase the added value of program visualization tool in an educational context by merging it with a collaborative tool. This means that the vi- sualization is used to support the collaboration and to create a context in which the collaboration takes place. In our case we have combined Jeliot 3 [11], a program animation tool, intended for novices, visualization object-oriented Java pro- grams, and Woven Stories [5], a co-authoring and collabora- tion tool for collaborative writing. The integration of these systems has resulted into an environment called JeCo (Jeliot Collaborative) [10]. 2. Related Work Currently, we are aware of two similar systems. The first one is made to support assembly programming where stu- dents can send the program codes the each other and to the teacher through email [7]. Our system is aimed to be more explicit in the collaboration in order to show the whole group and is visible also after the collaboration and have a structure. Another tool focused on group work and programming is Gild [12], a plug-in for the full featured IDE, Eclipse. This tool modifies Eclipse in order to make it more conve- nient for novices. Eclipse, with the Gild plug-in installed, contains several items a learner may need during the pro- gramming process (e.g. a discussion board, a chat and a debugger). 3. Collaborative Program Visualization The collaborative program visualization combines pro- gram visualization and collaboration tools such as collab- orative authoring applications to form a piece of software that can support both collaboration and visualization of pro- grams. This kind of combination of tools can create a con- text where students learning to program can work together. According to the theories of socio-cultural construc- tivism [1, 4] a learner should have a possibility to interact with other peers and to be an active member in a learn- ing community or community of practice. The collabora- tive program visualization helps a learner of programming to interact with other peer learners and form a learning community. In this community, the intra-subjective knowl- edge becomes inter-subjective where the subjective ideas and knowledge of the learners are shared and developed fur-