2020 · 23 citations · 10 references
ComputingComputer ScienceTeachingInstruction In Higher EducationProgramming LanguagesSoftware EngineeringCollaborative LearningComputer Science EducationSmall-group LearningCoding InstructionExtreme ProgrammingExtreme Programming TeamsPrior Experience In LearningProblem-solving DevelopmentProgramming ConceptsProgramming InstructionTransfer Of Problem-solving Skills
Pair Programming is a recent development in education designed to enhance the student's learning experience through teamwork. Specifically, it involves the students undertaking and completing some aspect of their programming work as a team of two. In engineering it is generally utilized for computer coding projects, such that partners work conjointly on the same design, algorithm, code, or assignment. For this study, this approach was used in a first programming course entitled "Engineering Problem Solving with Computation" by adapting the XP: eXtreme Programming method that is used in industry. The objective of this course is to teach first-year engineering students logic and problem solving skills through algorithmic programming. The programming language in the course of interest was C++. Pair programming was a voluntary element of the course and the students, under certain conditions, could opt in or out of it. The primary objective in offering this option was to reduce students' frustration when programming for the first time, as this often causes them to abandon attempts to understand the nuances of programming logic and syntax, and thereby the intended educational value of the course is lost. Pair-programming methodology requires that participants assume specified roles in a partnership. The course is administered and this option is selected with this understanding. Through various assessment tools, it was found that pair programming inspired confidence in the students, specifically in their ability to achieve the task at hand. Students reported that they benefited from being exposed to their partner's ideas and suggestions, and that they therefore broadened their understanding of the assignments' requirements. The students indicated that it was easier and quicker to complete their work and there was an overwhelming belief expressed that it helped them identify errors more readily and consider alternative approaches to problem solving. Objective analyses taking into consideration the students' grades and timesheets support, at a prima facie level, the students' accounts of their experiences. From a pedagogical perspective, pair programming offered better use of the university's facilities, whereby fewer workstations were required, and the instructors' time was better utilized, reducing the number of potential inquiries and improving the quality of inquiry to be addressed. Foremost, the students themselves also reported a positive experience of being able to solve minor problems, such as syntax errors, by the immediate presence of their partner, which enabled higher levels of learning to be achieved. In addition to the qualitative and quantitative advantages of pair programming, this paper will discuss challenges and difficulties that surfaced and will outline the projected future of this methodology for engineering education.
10
Strengthening the case for pair programming
Laurie Williams, Robert R. Kessler, Ward Cunningham et al. · IEEE Software · 2000 · 782 citations
The case for collaborative programming
John T. Nosek · Communications of the ACM · 1998 · 381 citations · Full text
The effects of pair-programming on performance in an introductory programming course
Charlie McDowell, Linda Werner, Heather E. Bullock et al. · 2002 · 353 citations
In Support of Pair Programming in the Introductory Computer Science Course
Laurie Williams, Eric Wiebe, Kai Yang et al. · Computer Science Education · 2002 · 270 citations