<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Monitoring an OOP Course Through Assignments in a Distributed Pair Programming System </title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Stelios</forename><surname>Xinogalos</surname></persName>
							<email>stelios@uom.gr</email>
						</author>
						<author>
							<persName><forename type="first">Maya</forename><surname>Satratzemi</surname></persName>
						</author>
						<author>
							<persName><forename type="first">Despina</forename><surname>Tsompanoudi</surname></persName>
							<email>despinats@uom.gr</email>
						</author>
						<author>
							<persName><forename type="first">Alexander</forename><surname>Chatzigeorgiou</surname></persName>
						</author>
						<author>
							<affiliation key="aff0">
								<orgName type="institution">University of Macedonia</orgName>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff1">
								<orgName type="department">Department of Applied Informatics</orgName>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff2">
								<orgName type="department">School of Information Sciences</orgName>
								<orgName type="institution">University of Macedonia</orgName>
								<address>
									<addrLine>Egnatia 156</addrLine>
									<postCode>54636</postCode>
									<settlement>Thessaloniki</settlement>
									<country key="GR">Greece</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Monitoring an OOP Course Through Assignments in a Distributed Pair Programming System </title>
					</analytic>
					<monogr>
						<idno type="ISSN">1613-0073)</idno>
					</monogr>
					<idno type="MD5">AFC7BB25AFD1B38A22EB04D472389320</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T15:32+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>D.2.3 [Software Engineering]: Coding Tools and Techniques -Object-Oriented Programming</term>
					<term>D.2.8 [Software Engineering]: Metrics</term>
					<term>K.3.2 [Computers and Education]: Computer and Information Science Education -Computer science education Education, Measurement Distributed Pair Programming, scripted collaboration, monitoring, metrics</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Distributed Pair Programming (DPP) is widely known to promote collaboration and knowledge sharing among novice programmers, while it engages them in carrying out programming assignments. Moreover, DPP is a means of experiencing agile software development techniques that are considered important in the software market. In this paper, we share some experiences on using the DPP system of SCEPPSys for carrying out assignments in an undergraduate Object Oriented Programming (OOP) course. Specifically, we focus on the information recorded during problem solving and the statistics reported by the system and how this information can be utilized for monitoring both the course regarding the fulfillment of its goals and the programming habits and progress of students. Some proposals are made towards extending the possibilities of SCEPPSys for generating automatically more sophisticated reports that would support instructors in more successfully monitoring a course and students. The ultimate goal of such an enhanced monitoring is to improve students' software quality.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">INTRODUCTION</head><p>Distributed Pair Programming (DPP) systems allow two programmers to collaborate remotely in order to apply the Pair Programming (PP) <ref type="bibr" target="#b1">[Cockburn and Williams 2000]</ref> technique from separate locations. The model of PP originated from the software industry as a part of Extreme Programming (XP) <ref type="bibr" target="#b8">[Williams et al. 2000</ref>]. It involves two programmers working on the same workstation and sharing one computer in order to develop software. In the context of pair programming, the team members adopt two specific roles: one programmer acts as the "driver" and the other one as the "navigator" (also called "observer"). The driver has possession of keyboard and mouse and types the programming code, while the navigator reviews the inserted code and gives guidelines to the driver. Driver and navigator are in constant collaboration in order to design and develop the program code in common, while they should frequently alternate roles. PP is based on close collaboration, continuous knowledge transfer, negotiation and sharing of programming skills. Programmers not only receive the advantages of group work, they also produce high quality software in a shorter time <ref type="bibr" target="#b3">[Sanjay and</ref><ref type="bibr">Vanshi 2010, Zacharis 2009]</ref>. The only difference between DPP and PP is DPP's allowing geographically-distributed teams to collaborate and share program code. However, such collaboration is only feasible if an underlying infrastructure enables for all necessary interactions.</p><p>A considerable number of solutions used to implement DPP were built as plugins for the Eclipse IDE. These plugins support DPP for the Java programming language, within a very popular development environment. A detailed review of all available DPP solutions reveals that most tools lack effective instructional or student support <ref type="bibr" target="#b5">[Tsompanoudi and Satratzemi 2011]</ref>. Although they cover the basic requirements of DPP, they cannot address common problems of PP, such as unequal contributions from each member of the student pair.</p><p>12:98 • S. Xinogalos, M. Satratzemi, D. <ref type="bibr">Tsompanoudi and A. Chatzigeorgiou</ref> For this purpose SCEPPSys (Scripted Collaboration in an Educational Pair Programming System) was developed using an existing Eclipse plugin for DPP. Compared to other plugins like Sangam <ref type="bibr" target="#b2">[Ho et al. 2004]</ref> and XPairtise <ref type="bibr" target="#b4">[Schümmer and Lukosch 2009]</ref>, SCEPPSys saves and analyzes users' interactions, and helps educators in organizing and monitoring DPP classes. To the best of our knowledge only RIPPLE <ref type="bibr" target="#b0">[Boyer et al. 2008]</ref> provides logging capability of users' interactions, allowing researchers to reconstruct user sessions for further study. However, the logged information is provided only as raw data and further processing is required in order to extract useful information.</p><p>In this paper, we share some experiences on using the DPP system of SCEPPSys for carrying out assignments in an undergraduate Object Oriented Programming (OOP) course based on Java. Specifically, we focus on the information recorded during problem solving and the statistics reported by the system and how this information can be utilized for monitoring both the course regarding the fulfillment of its goals and the programming habits and progress of students. Some proposals are made towards extending the possibilities of SCEPPSys for reporting automatically more sophisticated reports that would support instructors in more successfully monitoring a course and students.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">SCEPPSYS</head><p>SCEPPSys is based on a typical client-server architecture and consists of: a server for dispatching messages between the clients; a database for storing user's accounts, information about courses, groups and assignments, shared projects and statistics; a web-based authoring tool used by instructors for scripting DPP <ref type="bibr">[Tsompanoudi and Satrtatzemi 2014]</ref>; and an Eclipse plugin installed by students. In the next sections the process that an instructor applies for setting up a course, as well as a typical DPP session carried out by students are briefly described. Interested readers can find further information in a detailed description of SCEPPSys <ref type="bibr" target="#b7">[Tsompanoudi et al. 2015</ref>].</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Setting up a Course</head><p>The instructor can easily set up a course using the web-based authoring tool of SCEPPSys. First of all the list of learning goals (e.g. constructor definition, object construction, inheritance) that will be used for characterizing the various tasks assigned to students must be defined. Then the assignments can be defined and scheduled in the form of collaboration scripts. A collaboration script involves the definition of: (1) participants -students enrolled to the course; (2) groups or pairs that can be formed randomly, with comparable skill or contribution levels, or freely; (3) assignments that comprise of problem solving tasks or steps characterized by one of the learning goals (not visible to students) and having an accompanying hint that can be optionally consulted by students; (4) task distribution policies -rotating role switching of driver/observer, balanced knowledge switching aiming at achieving symmetry in skill acquisition (learning goals) or free switching. The system monitors the problem solving approach adopted by students and reports various statistics described in the next section.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Carrying out a Typical DPP Session</head><p>Students use an Eclipse plugin for applying DPP. A DPP session starts when group members meet online and request a pair programming session. Then a shared project is automatically generated inside the workspace of both students and the programming tasks are displayed in a separate area. Students solve the tasks by adopting the roles of the driver and navigator and switch roles according to the task distribution policy. During the session a text-based chat provides a means of communication and coordination between the team members. To motivate students, metrics like driving time and individual participation rates are displayed in the workspace and students may retrieve useful hints for each step during the problem solving process. Students may submit the assignment on session close or continue the DPP session at another time.</p><p>Monitoring an OOP Course Through Assignments in a DPP System • 12:99</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">STATISTICS REPORTED BY THE SYSTEM</head><p>SCEPPSys records a variety of information during the problem solving process and calculates statistics for each student per project. The statistics reported are presented in Table <ref type="table" target="#tab_0">I</ref>. Moreover, the mean value of the aforementioned elements is calculated along with the number of projects submitted per assignment for each one of the utilized distribution policies (none/free, rotating roles, balanced). The statistics calculated and reported by SCEPPSys in combination with the projects' grades can be used as metrics for:  monitoring the fulfillment of the courses' goals in general  detecting difficulties with specific OOP concepts/constructs  detecting students' progress in programming  detecting undesirable behaviors (e.g. plagiarism)</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head> detecting problems in collaboration between the members of a pair</head><p>In the following sections the indications provided by the most important of the aforementioned statistics are briefly analyzed.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Total and Driving Time</head><p>Both the total time for developing a project and the time for actually writing code (driving time) provide indications for the level of difficulty of an assignment, as well as the difficulties of students with the underlying OOP concepts. Moreover, the total and driving time of an assignment help realize students' workload that must be in accordance with the ECTS of the course.</p><p>The difference of the total and driving time, or else the driving/total time ratio, helps instructors detect odd or even extreme behaviors. For example, a very small total time or a total time that is approximately equal to the driving time are strong indications of either "copying a solution" or "working offline" (most probably in isolation) and logging in the system just for copying and pasting either the plagiarized or offline solution correspondingly. Both behaviors are problematic and denote non-academic behavior, non-collaborative problem solving or cooperation problems. Instructors can draw safer conclusions if the minimum time necessary to collaboratively solve a specific assignment through the system is recorded. This can be ideally accomplished by having themselves or knowledgeable assistants solve the assignment, or else by estimating the necessary time based on their experience from lab sessions.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Number of Retrieved Hints</head><p>Every step of an assignment can have a corresponding hint, providing support to students. Depending on the difficulty of a specific step and whether it deals with a new OOP concept/construct the help provided can be more or less verbose. Moreover, it can contain small pieces of source code. The number of hints retrieved by students is another indication of the degree of difficulty or students' 12:100 • S. Xinogalos, M. Satratzemi, D. Tsompanoudi and A. Chatzigeorgiou confidence on their solution for an assignment. This means that the more difficult an assignment is, or alternatively the less confident students are for their solution, a bigger number of hints is retrieved.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">Messages Sent During Problem Solving</head><p>One of the main advantages of DPP is the collaboration and exchange of knowledge between the members of a pair. The communication between the collaborators can be accomplished using the incorporated chat tool. The number of messages sent during code development provides indications for the degree of cooperation and communication between the members of a pair, as well as for the difficulty of an assignment. Of course, students can and do use other means for communication during problem solving, such as Skype and Facebook.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4">Number of Synchronized Program Executions</head><p>The number of synchronized program executions (sync runs) provides information regarding the problem solving strategy adopted from students. Instructors always emphasize the advantages of incremental development and testing, but unfortunately students tend to write large portions of a program before they actually test it. When implementing programs in OOP languages this delayed testing is even more prominent due to the fact that usually an important portion of a class or classes has to be implemented along with the main method in order to test the program. Students tend to complete the definition of a class, or even the classes needed, before they write the main method and test their solution. SCEPSSyS can contribute to changing students' problem solving strategies through scripted collaboration. Specifically, students can be asked to incrementally implement and test a class by appropriate steps in the collaboration script and moreover they can be asked to check the results until then by running their project. However, it is clear that students can overlook the script's suggestion and not test their project. So, examining the number of synchronized program executions can help monitor students' problem solving strategies.</p><p>Moreover, the number of sync runs in combination with other statistics, such as the total and driving time, number of hints retrieved and messages sent, can indicate potential difficulties in achieving the goals of an assignment. For example, a large number of sync runs combined with an average (or less than average) total and driving time can indicate the application of the desirable incremental development and testing strategy. On the other hand, a large number of sync runs combined with a large amount of total and driving time (above average) can indicate difficulties in achieving the goals of the assignment.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">CASE STUDY</head><p>SCEPPSys was used during the academic year 2015-16 in a 3 rd semester compulsory course on OOP at the Department of Applied Informatics, University of Macedonia, Greece. Students were taught for 3 hours per week in the lab and had the chance to carry out programming assignments during the 13 weeks of the course. The assignments were optional and their grade was calculated only in the case that students passed the final exams. The previous years the assignments were carried out individually by the participating students as homework. This year students had the chance to select whether they would like to solve the assignments individually, or in pairs using the DPP system of SCEPPSys. Initially 48 pairs of students registered for the DPP assignments, while 47 pairs submitted at least one out of the six projects assigned. At the end of the course a questionnaire was delivered to the participating students in order to obtain their feedback on the DPP assignments.</p><p>The six projects covered the main learning units of the course and utilized small and manageable steps with corresponding hints. The only exception was the sixth project that included just five steps, one for each one of the necessary classes. In Table <ref type="table" target="#tab_1">II</ref> the learning unit covered by each project is presented, along with the mean grade (in the scale of 0 to 10) and the mean values of the metrics briefly analyzed in the previous section. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Grades</head><p>Students' mean grades in all the projects were very good (at least 8.72). Even at the last project the mean grade was 8.76, with the difference that it was submitted by fewer pairs. As already mentioned, the last project was a special case, since it included one step for each class and no hints. Moreover, it included most of the OOP concepts/constructs taught in the course.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Number of projects</head><p>Students tend to give up the effort as the course reaches the end. As can be seen in Table <ref type="table" target="#tab_1">II</ref> the number of projects submitted decreases importantly in the last two assignments (approximately the last three weeks of the course). It is quite certain that instructors teaching programming courses, and especially OOP, would agree that such courses are cognitively demanding and the cognitive overload of students leads a certain percentage of them in dropping out of their responsibilities at some point, such as attending lectures and carrying out assignments. Of course, we must remind that in the specific case, assignments were not obligatory. Moreover, we must mention that 41% of the students that participated in the DPP assignments had not passed the first semester "Procedural Programming" course based on C. It is clear that understanding the reasons for dropping out needs a much deeper analysis of the available data in order to draw solid conclusions.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Duration</head><p>Implementing programs is widely known that is a time consuming activity, especially for novices.</p><p>Based on the data collected by the system, it comes out that students working in pairs spent approximately two to four hours for writing the code for an assignment. However, nearly one fourth to one third of this time was spent on actually writing code. The only exception was the last and most demanding -in terms of the concepts covered, LOC, lack of detailed steps (each step corresponded to a whole class) and hints -project, where just 21% of the total time was spent on writing code. It is reasonable to assume that most of the time was spent on studying the corresponding material, reading hints, communicating with the collaborator and of course thinking about the solution.</p><p>12:102 • S. Xinogalos, M. Satratzemi, D. Tsompanoudi and A. Chatzigeorgiou</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Number of sync runs</head><p>Incremental development and testing, as already mentioned, is an important aspect that should be reinforced among students. However, especially in OOP, this is not always easy. Students tend to implement the classes needed and then write the main method for testing their code. In scripted collaboration the instructor has the chance to reinforce the idea of incremental development and testing by asking students partially implement a class and create objects for testing each method from the very first steps. Moreover, students can be reminded in the textual description of the steps to run their project. Of course, students can just ignore such advice. From the data recorded by the system it turns out that students do run the programs, but it cannot be told in certainty that they do it during problem solving for testing their program, or because they have to make continuous corrections due to raised exceptions and/or logical errors that lead to wrong output. However, at least 8 sync runs were recorded in average for each project, which is an indication of incremental development and testing. If the time of each sync run and its (un)successful completion was recorded we could draw safer conclusions regarding students' problem solving strategies.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Messages sent by each group</head><p>Although several students use alternative means for communication, and especially Skype and Facebook, the average number of messages sent by the members of the pairs was unexpectedly high. Specifically, 86 to 153 messages were sent in average for each project. This is definitely a strong indication of collaborative work and exchange of perceptions and knowledge.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Coverage of syllabus (assignments)</head><p>An important feature of SCEPPSys that helps the instructor to monitor the coverage of the intended OOP concepts/constructs through the assignments, is reporting the frequency that each learning goal has been addressed in the context of the assignments so far. This feature gives the chance to adjust the assignments and the learning goals they aim at. Ideally, this must be done in combination with the recorded difficulty for each learning goal as the course progresses. Since the projects are graded on-line in a step by step manner and each step is characterized by its main learning goal, the average grade per learning goal can be calculated and used for detecting students' difficulties and taking the appropriate actions both in lectures and assignments.</p><p>In the on-line questionnaire that was answered voluntarily by 58 out of the 94 students that participated in the DPP assignments, the majority agreed or completely agreed that the quality of the assignments was good (86.3%) and that the assignments covered in a high degree the content of the course (84.5%).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Difficulty of the assignments</head><p>Based on the assumptions made in the previous section about the various statistics recorded and using the data reported in Table <ref type="table" target="#tab_1">II</ref>, some conclusions regarding the difficulty of the assignments can be drawn.</p><p>Considering the number of projects submitted in combination with the grades of the assignments it is obvious that the last assignment (#6) was the most difficult one. This was anticipated since it combines most of the OOP concepts taught: inheritance, ArrayList, event handling and for the first time concepts from the Collection Framework (Comparator) and binary files. This makes it clear that students should be given more time (usually it is ten days) for this last assignment.</p><p>Based on the reduced number of projects submitted (28) the next most difficult assignment was the one referring to GUI and event handling (#5), which also utilized inheritance. The number of submitted projects decreased gradually from 45/46 to 39, 35 and finally less than 30 in the last two projects. It seems that this is more or less the time point during the course at which the amount of required knowledge overwhelms a number of students. As a consequence, dropping out appears and instructors should pay special attention in finding ways to support and even more motivate students to keep on the effort. However, the performance of the pairs that submitted the last two projects was still very good.</p><p>Although students' performance in the assignment regarding object collections and more specifically the ArrayList collection was very good (average grade 9.15), there are strong indications that it was a demanding assignment (#3) for students, maybe difficult for some of them. Specifically, this assignment demanded more than 4 hours of work in average for each pair, and a big number (153) of messages sent through the incorporated chat tool in order to collaboratively reach a solution. Moreover, 65% of the available hints were retrieved by the students and 25 sync runs of their projects were made. The number of sync runs indicates that various problems came up during problem solving that required correcting and re-running the project. Of course, we must stress that students finally managed to collaboratively reach a good solution, as well as the fact that difficulties with ArrayList collections have been recorded in previous studies <ref type="bibr" target="#b10">(Xinogalos et al. 2008)</ref>.</p><p>The conclusions drawn from the statistics calculated by the system are partially confirmed by students' replies on the questionnaire presented in Table <ref type="table" target="#tab_2">III</ref> Out of the 58 students that filled in the questionnaire:  The last assignment (#6) that demanded the usage of inheritance, ArrayList collections, event handling, the Collection Framework (Comparator) and binary files was the most difficult for students. Specifically, 63% considered this assignment as difficult (32%) or of high difficulty (31%), while another 17.2% did not submit this assignment.  The assignment #5 was the second more difficult assignment. It referred to GUI, event handling and also utilized inheritance. 58.6% of the students considered this assignment to be difficult (43.1%), or even of high difficulty (15.5%).  The next more difficult assignment according to students was the one referring to inheritance and polymorphism (#4). Specifically, 50% of the students considered the assignment of medium difficulty and 15.5% as difficult or of high difficulty. The statistics recorded by the system show that this assignment demanded the less time, while the smallest percentage (56%) of hints was retrieved in comparison with the rest of the assignments. Probably, the assignment demanded off-line studying and preparation.  Finally, the assignment on object collections and ArrayList (#3) was considered by 37.9% of the students to be of medium difficulty, while the statistics recorded indicated a higher degree of difficulty. Despite the insights provided by students' replies, we must mention that the questionnaire was filled in after the end of the course. If students were asked to rate the difficulty of each assignment just after finishing it (for example, by entering the specific information as a comment at the end of their project) and not recalling after several weeks their difficulty with assignments, the results of the specific question would be more trustworthy.</p><p>12:104 • S. Xinogalos, M. Satratzemi, D. Tsompanoudi and A. Chatzigeorgiou</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">CONCLUSIONS</head><p>The benefits of DPP are numerous and have been recorded in the literature. The system of SCEPPSys utilized in this study has the advantage of recording various data and reporting statistics that could be used for monitoring an OOP course based on Java regarding the fulfillment of its goals and taking the appropriate actions in time. Such statistics can be used for detecting difficulties with specific concepts, the quality of collaboration between pairs and potential undesirable behaviors, as well as students' progress in programming. An important extension of SCEPPSys would be the ability to provide more advanced reports towards this direction that would automate the process of detecting:</p><p> potential difficulties with specific OOP concepts/constructs: by calculating the average grade achieved by students for each learning goal in the context of each assignment and all the assignments collectively.  detecting students' progress in programming: by calculating and reporting important changes in the grades of his/her projects, as well as the contribution of a student in the projects.  detecting undesirable behaviors (e.g. copying a solution, or working offline): by comparing the total and driving time for a project (if there is a small difference between them then probably a solution was just entered in the system and not collaboratively developed), and also with a minimum required time defined by the instructor. It is obvious that in order to achieve this goal and provide really comprehensive reports that will save a great deal of time to instructors and give them even more valuable information both for monitoring the course and each student, the system has to be used in real situations. This study had exactly this goal, to start exploring the indications provided by the reported statistics, validating and using them for automatically creating reports that will be a useful tool in the hands of instructors. A step further would be to examine the possibility of incorporating to the system abilities for calculating simple educational software metrics with the aim of enhancing the quality of students' programs <ref type="bibr" target="#b9">[Xinogalos and Ivanović 2013]</ref>.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table I .</head><label>I</label><figDesc>Statistics reported by SCEPPSys.</figDesc><table><row><cell>Status (project submitted, not submitted, not found)</cell><cell>Contribution of first student (in %)</cell></row><row><cell>Task Distribution policy (roles rotating, balanced knowledge,</cell><cell>Contribution of second student (in %)</cell></row><row><cell>free)</cell><cell></cell></row><row><cell>Total time spent to solve a project (min)</cell><cell>Number of steps solved according to role distribution policy</cell></row><row><cell>Driving time spent to solve a project (min)</cell><cell>Driving time of first student</cell></row><row><cell>Driving / Total time ratio</cell><cell>Driving time of second student</cell></row><row><cell>Number of sync runs</cell><cell>Non driving time of first student</cell></row><row><cell>Number of role switches</cell><cell>Non driving time of second student</cell></row><row><cell>Number of retrieved hints</cell><cell>Messages sent by first student</cell></row></table><note>Contribution of first student (number of characters)Messages sent by second student Contribution of second student (number of characters)</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table II .</head><label>II</label><figDesc>Statistics for the Projects</figDesc><table><row><cell>PROJECT</cell><cell>LEARNING</cell><cell>UNIT</cell><cell>NUMBER OF CLASSES (STEPS)</cell><cell>LOC (Lines Of Code)</cell><cell>NUMBER OF PROJECTS</cell><cell>GRADE</cell><cell>(in scale 0..10)</cell><cell>TOTAL TIME (MIN)</cell><cell>DRIVING TIME (MIN)</cell><cell>DRIVING / TOTAL TIME RATIO</cell><cell>NUMBER OF SYNC RUNS</cell><cell>NUMBER OF RETRIEVED HINTS</cell><cell>MESSAGES SENT BY EACH GROUP</cell></row><row><cell>#1</cell><cell>Class</cell><cell></cell><cell>2</cell><cell>90</cell><cell>45</cell><cell cols="2">9.25</cell><cell>190</cell><cell>36</cell><cell>25%</cell><cell>8</cell><cell>9</cell><cell>103</cell></row><row><cell></cell><cell cols="2">definition,</cell><cell>(13)</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell>(69%)</cell><cell></cell></row><row><cell></cell><cell>main</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>#2</cell><cell>Class</cell><cell></cell><cell>3</cell><cell>120</cell><cell>46</cell><cell cols="2">8.72</cell><cell>231</cell><cell>55</cell><cell>28%</cell><cell>13</cell><cell>13</cell><cell>106</cell></row><row><cell></cell><cell cols="2">associations -</cell><cell>(16)</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell>(81%)</cell><cell></cell></row><row><cell></cell><cell cols="2">relationship</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>#3</cell><cell>Object</cell><cell></cell><cell>3</cell><cell>160</cell><cell>39</cell><cell cols="2">9.15</cell><cell>262</cell><cell>63</cell><cell>30%</cell><cell>25</cell><cell>15</cell><cell>153</cell></row><row><cell></cell><cell cols="2">collections -</cell><cell>(23)</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell>(65%)</cell><cell></cell></row><row><cell></cell><cell cols="2">ArrayList</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>#4</cell><cell cols="2">Inheritance &amp;</cell><cell>4</cell><cell>114</cell><cell>35</cell><cell cols="2">9.21</cell><cell>127</cell><cell>40</cell><cell>35%</cell><cell>9</cell><cell>9</cell><cell>86</cell></row><row><cell></cell><cell cols="2">polymorphism</cell><cell>(16)</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell>(56%)</cell><cell></cell></row><row><cell>#5</cell><cell cols="2">GUI, event</cell><cell>6</cell><cell>135</cell><cell>28</cell><cell cols="2">9.36</cell><cell>243</cell><cell>50</cell><cell>25%</cell><cell>18</cell><cell>16</cell><cell>128</cell></row><row><cell></cell><cell cols="2">handling</cell><cell>(24)</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell>(67%)</cell><cell></cell></row><row><cell></cell><cell cols="2">(+inheritance)</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>#6</cell><cell cols="2">Binary files</cell><cell>5</cell><cell>210</cell><cell>25</cell><cell cols="2">8.76</cell><cell>174</cell><cell>34</cell><cell>21%</cell><cell>15</cell><cell>-</cell><cell>100</cell></row><row><cell></cell><cell cols="2">(+inheritance,</cell><cell>(5)</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell cols="2">ArrayList,</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell cols="2">Comparator)</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Table III .</head><label>III</label><figDesc>. Students replies regarding the difficulty of the assignments</figDesc><table><row><cell>PROJECT</cell><cell>LEARNING</cell><cell>UNIT</cell><cell>NOT SUBMITTED</cell><cell>EASY</cell><cell>OF LOW DIFFICULTY</cell><cell>OF MEDIUM DIFFICULTY</cell><cell>DIFFICULT</cell><cell>OF HIGH DIFFICULTY</cell></row><row><cell>#1</cell><cell cols="2">Class definition, main</cell><cell>6.90%</cell><cell>53.40%</cell><cell>29.30%</cell><cell>6.90%</cell><cell>3.40%</cell><cell>0%</cell></row><row><cell>#2</cell><cell cols="2">Class associations -</cell><cell>1.70%</cell><cell>36.20%</cell><cell>51.70%</cell><cell>8.60%</cell><cell>1.70%</cell><cell>0%</cell></row><row><cell></cell><cell>relationship</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>#3</cell><cell cols="2">Object collections -ArrayList</cell><cell>1.70%</cell><cell>17.20%</cell><cell>39.70%</cell><cell>37.90%</cell><cell>3.40%</cell><cell>0%</cell></row><row><cell>#4</cell><cell cols="2">Inheritance &amp; polymorphism</cell><cell>5.20%</cell><cell>8.60%</cell><cell>20.70%</cell><cell>50%</cell><cell>13.80%</cell><cell>1.70%</cell></row><row><cell>#5</cell><cell cols="2">GUI, event handling</cell><cell>15.50%</cell><cell>0%</cell><cell>10.30%</cell><cell>15.50%</cell><cell>43.10%</cell><cell>15.50%</cell></row><row><cell></cell><cell>(+inheritance)</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>#6</cell><cell cols="2">Binary files (+inheritance,</cell><cell>17.20%</cell><cell>1.70%</cell><cell>5.20%</cell><cell>12.10%</cell><cell>32.00%</cell><cell>31%</cell></row><row><cell></cell><cell cols="2">ArrayList, Comparator)</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row></table></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">A development environment for distributed synchronous collaborative programming</title>
		<author>
			<persName><forename type="first">Kristy</forename><forename type="middle">Elizabeth</forename><surname>Boyer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">August</forename><forename type="middle">A</forename><surname>Dwight</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Taylor Fondren</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Mladen</forename><forename type="middle">A</forename><surname>Vouk</surname></persName>
		</author>
		<author>
			<persName><forename type="first">James</forename><forename type="middle">C</forename><surname>Lester</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 13th annual conference on Innovation and technology in computer science education (ITiCSE &apos;08)</title>
				<meeting>the 13th annual conference on Innovation and technology in computer science education (ITiCSE &apos;08)<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="158" to="162" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">The costs and benefits of pair programming</title>
		<author>
			<persName><forename type="first">Alistair</forename><surname>Cockburn</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Laurie</forename><surname>Williams</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Extreme programming examined</title>
				<imprint>
			<date type="published" when="2000">2000</date>
			<biblScope unit="page" from="223" to="247" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Sangam: a distributed pair programming plug-in for Eclipse</title>
		<author>
			<persName><forename type="first">Chih-Wei</forename><surname>Ho</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Somik</forename><surname>Raha</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Edward</forename><surname>Gehringer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Laurie</forename><surname>Williams</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2004 OOPSLA workshop on eclipse technology eXchange (eclipse &apos;04)</title>
				<meeting>the 2004 OOPSLA workshop on eclipse technology eXchange (eclipse &apos;04)<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page" from="73" to="77" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">A Novel Approach for Collaborative Pair Programming</title>
		<author>
			<persName><forename type="first">Goel</forename><surname>Sanjay</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Kathuria</forename><surname>Vanshi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Information Technology Education</title>
		<imprint>
			<biblScope unit="volume">9</biblScope>
			<biblScope unit="page" from="183" to="196" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Understanding Tools and Practices for Distributed Pair Programming</title>
		<author>
			<persName><forename type="first">Till</forename><surname>Schümmer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Stephan</forename><surname>Lukosch</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Universal Computer Science</title>
		<imprint>
			<biblScope unit="volume">15</biblScope>
			<biblScope unit="issue">16</biblScope>
			<biblScope unit="page" from="3101" to="3125" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Enhancing Adaptivity and Intelligent Tutoring in Distributed Pair Programming Systems to Support Novice Programmers</title>
		<author>
			<persName><forename type="first">Despina</forename><surname>Tsompanoudi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Maya</forename><surname>Satratzemi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of CSEDU&apos;2011</title>
				<meeting>CSEDU&apos;2011</meeting>
		<imprint>
			<date type="published" when="2011">2011</date>
			<biblScope unit="page" from="339" to="344" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">A Web-based authoring tool for scripting distributed pair programming</title>
		<author>
			<persName><forename type="first">Despina</forename><surname>Tsompanoudi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Maya</forename><surname>Satratzemi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">14th IEEE International Conference on Advanced Learning Technologies</title>
				<imprint>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="259" to="263" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Distributed Pair Programming using Collaboration Scripts: An Educational System and initial Results</title>
		<author>
			<persName><forename type="first">Despina</forename><surname>Tsompanoudi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Maya</forename><surname>Satratzemi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Stelios</forename><surname>Xinogalos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Informatics in Education</title>
		<imprint>
			<biblScope unit="volume">14</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="291" to="314" />
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Strengthening the Case for Pair Programming</title>
		<author>
			<persName><forename type="first">Laurie</forename><surname>Williams</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Robert</forename><forename type="middle">R</forename><surname>Kessler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ward</forename><surname>Cunningham</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ron</forename><surname>Jeffries</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Softw</title>
		<imprint>
			<biblScope unit="volume">17</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="19" to="25" />
			<date type="published" when="2000-07">2000. July 2000</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Enhancing Software Quality in Students&apos; Programs</title>
		<author>
			<persName><forename type="first">Stelios</forename><surname>Xinogalos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Mirjana</forename><surname>Ivanović</surname></persName>
		</author>
		<ptr target="http://ceur-ws.org/Vol-1053/" />
	</analytic>
	<monogr>
		<title level="m">Proc. of 2nd workshop on Software Quality Analysis, Monitoring, Improvement, and Applications</title>
				<meeting>of 2nd workshop on Software Quality Analysis, Monitoring, Improvement, and Applications<address><addrLine>SQAMIA</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2013-11-16">2013. 2013. 11-16</date>
			<biblScope unit="volume">1053</biblScope>
		</imprint>
	</monogr>
	<note>CEUR workshop proceedings</note>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">An analysis of students&apos; difficulties with ArrayList object collections and proposals for supporting the learning process</title>
		<author>
			<persName><forename type="first">Stelios</forename><surname>Xinogalos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Maya</forename><surname>Satratzemi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Vasilis</forename><surname>Dagdilelis</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 8th IEEE International Conference on Advanced Learning Technologies (IEEE ICALT 2008)</title>
				<meeting>the 8th IEEE International Conference on Advanced Learning Technologies (IEEE ICALT 2008)<address><addrLine>Niigata, Japan</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2007">2008. July 2007</date>
			<biblScope unit="page" from="180" to="182" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Evaluating the Effects of Virtual Pair Programming on Students&apos; Achievement and Satisfaction</title>
		<author>
			<persName><forename type="first">Nick</forename><surname>Zacharis</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">International Journal Of Emerging Technologies In Learning (IJET)</title>
		<imprint>
			<biblScope unit="volume">4</biblScope>
			<biblScope unit="issue">3</biblScope>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
