This approach of Pair Programming is popular in the business sphere, mainly in organizations using eXtreme Programming (XP). In this kind of task, two programmers design software together in the same computer, working collaboratively in the same algorithm, design or programming task. The situation is identical to the aforementioned case of teaching practical programming. The Pair Programming model has demonstrated to be beneficial in students of programming. Quantitative and qualitative studies show that the use of this approach in the lessons of Programming Fundamentals improves the students’ learning, increases their satisfaction, reduces their shared frustration and decreases the number of bugs in the programs developed [10]. But when it is not possible for two students to be physically together, computer technology can support collaboration at distance. Thus, the concept of computer Collaborative Programming arises. Collaborative Programming is the application of collaborative strategies and computer support to Pair Programming. This allows, not only two, but three or four users to work in group. Previous studies [7, 11] indicate that Collaborative Programming does not only accelerate the problem solving processes, but rather it improves the quality of the software products. According to Johnson [5], the process of analysing and criticising software artefacts produced by other people is a powerful method to learn programming languages, design techniques and application domains. A system that
[1]
Michael J. Baker,et al.
Modelling Dialogue and Beliefs as a Basis for Generating Guidance in a CSCL Environment
,
1996,
Intelligent Tutoring Systems.
[2]
Laurie A. Williams,et al.
In support of student pair-programming
,
2001,
SIGCSE '01.
[3]
Martin Wessner,et al.
Using Learning Protocols to Structure Computer-Supported Cooperative Learning
,
1999
.
[4]
M. Felisa Verdejo,et al.
Collaborative Discovery Learning of Model Design
,
2002,
Intelligent Tutoring Systems.
[5]
Terry Winograd,et al.
A language/action perspective on the design of cooperative work
,
1986,
CSCW '86.
[6]
Philip M. Johnson.
Reengineering inspection
,
1998,
CACM.
[7]
Micaela Esteves,et al.
OOP-Anim, a system to support learning of basic object oriented programming concepts
,
2003,
CompSysTech '03.
[8]
Laurie A. Williams,et al.
All I really need to know about pair programming I learned in kindergarten
,
2000,
Commun. ACM.
[9]
Terry Winograd,et al.
A Language/Action Perspective on the Design of Cooperative Work
,
1987,
SGCH.
[10]
John T. Nosek,et al.
The case for collaborative programming
,
1998,
CACM.