ABSTRACT
Industry, particularly those following the eXtreme Programming (XP) methodology [2], has popularized the use of pair-programming. The pair-programming model has also been found to be beneficial for student programmers. Initial quantitative and qualitative results, which will be discussed in this paper, demonstrate that the use of pair-programming in the computer science classroom enhances student learning and satisfaction and reduces the frustration common among students. Additionally, the use of pair-programming relieves the burden on the educators because students no longer view the teaching staff as their sole form of technical information. We explore the nature of pair-programming, then examine the ways such a practice may enhance teaching and learning in computer science education.
- 1.G. Salomon, Distributed Cognitions: Psychological and Educational Considerations, Cambridge: Cambridge University Press, 1993.Google Scholar
- 2.K. Beck, Extreme Programming Explained: Embrace Change. Reading, Massachusetts: Addison-Wesley, 2000. Google ScholarDigital Library
- 3.J. T. Nosek, "The Case for Collaborative Programming," in Communications of the ACM, vol. March 1998, 1998, pp. 105-108. Google ScholarDigital Library
- 4.L. A. Williams & R. R. Kessler, "The Effects of "Pair-Pressure" and "Pair-Learning" on Software Engineering Education," presented at Conference on Software Engineering Education and Training, Austin, TX, 2000. Google ScholarDigital Library
- 5.L. Williams, R. Kessler, W. Cunningham, & R. Jeffries, "Strengthening the Case for Pair- Programming," in IEEE Software, vol. 17, 2000. Google ScholarDigital Library
- 6.L. Williams & R. Kessler, "Experimenting with Industry's "Pair-programming" Model in the Computer Science Classroom," Journal of Computer Science Education, vol. December 2000, 2000.Google Scholar
- 7.A. Cockburn & L. Williams, "The Costs and Benefits of Pair Programming," presented at eXtreme Programming and Flexible Processes in Software Engineering -- XP2000, Cagliari, Sardinia, Italy, 2000. Google ScholarDigital Library
- 8.L. A. Williams, "The Collaborative Software Process PhD Dissertation," in Department of Computer Science. Salt Lake City, UT: University of Utah, 2000. Google ScholarDigital Library
- 9.W. S. Humphrey, A Discipline for Software Engineering. Reading, Massachusetts: Addison Wesley Longman, Inc, 1995. Google ScholarDigital Library
- 10.L. Williams & H. Erdogmus, "An Economic Analysis of Collaborative Programming," submitted to Metrics 2000, London, England, 2001.Google Scholar
- 11.A. Bandura, Self-efficacy: The Exercise of Control. New York: Freeman, 1997.Google Scholar
- 12.R. Wood & A. Bandura, "Social Cognitive Theory of Organizational Mangement Special Issue: Theory development Forum.," Academy of Management Review, vol. 14, pp. 361-384, 1989.Google ScholarCross Ref
- 13.J. R. Hayes & J. G. Nash, "On the Nature of Planning in Writing," in The Science of Writing: Theories, Methods, Individual Differences, and Applications. Mhway, NJ: Lawrence Erlbaum, 1996, pp. 29-55.Google Scholar
- 14.M. E. Fagan, "Advances in software inspections to reduce errors in program development," IBM Systems Journal, vol. 15, pp. 182-211, 1976.Google ScholarDigital Library
- 15.P. M. Johnson, "Reengineedng Inspection: The Future of Formal Technical Review," in Communications of the ACM, vol. 41, 1998, pp. 49- 52. Google ScholarDigital Library
- 16.W. S. Humphrey, Introduction to the Personal Software Process. Reading, Massachusetts: Addison- Wesley, 1997. Google ScholarDigital Library
- 17.P. Pirolli & M. Reeker, "Learning Strategies and Transfer in the Domain of Programming," Cognition and instruction, vol. 12, 1994.Google Scholar
- 18.B. Berardi-Colletta, L. S. Buyer, R. L. Dominowski, and E. R. Rellinger, "Metaeognition and Problem Solving: A Process-Oriented Approach," Journal of Experimental Psychology: Learning, Memory, and Cognition, vol. 21, pp. 205-221, 1995.Google ScholarCross Ref
- 19.M. Chi, N. de Leeuw, M. Chiu, & C. Lavancher, "Eliciting Self-Explanations Improves Understanding," Cognitive Science, vol. 18, pp. 439- 477, 1994.Google Scholar
- 20.R. L. Upchurch & J. E. Sims-Knight, "In Support of Student Process Improvement," Proceedings of CSEE&T'98, February 22-25, 1998, Atlanta, Georgia. Los Alamitos: IEEE Computer Society Press. p. 114- 123 Google ScholarDigital Library
- 21.R. L. Upchurch & J. E. Sims-Knight, "Integrating Software Process in Computer Science Curriculum," Proceedings of the Frontiers in Education Conference, Pittsburgh, PA, November 5-8, 1997.Google Scholar
- 22.N. V. Flor & E. L. Hutehins, "Analyzing Distributed Cognition in Software Teams: A Case Study of Team Programming During Perfective Software Maintenance," presented at Empirical Studies of Programmers: Fourth Workshop, 1991.Google Scholar
- 23.A. Whimbey & J. Lochhead, Problem Solving and Comprehension. Philadelphia: Franklin Institute Press, 1980.Google Scholar
- 24.J. R. Anderson, F. Conrad, & A. Corbett, "Skill Acqisition and the Lisp Tutor," Cognitive Science, vol. 13, pp. 467-505, 1989.Google ScholarCross Ref
- 25.P. Pirolli, "Effects of Examples and Their Explanation in a Lesson on Recursion: A Production System Analysis," Cognition and Instruction, vol. 8, pp. 207-259, 1991.Google ScholarCross Ref
- 26.J. E. Sims-Knight & R. L. Upchurch, "The Acquisition of Expertise in Software Engineering Education.," Proceedings of Frontiers in Education, November 4-7, 1998, Tempe, AZ. Google ScholarDigital Library
Index Terms
- In support of student pair-programming
Recommendations
In support of student pair-programming
Industry, particularly those following the eXtreme Programming (XP) methodology [2], has popularized the use of pair-programming. The pair-programming model has also been found to be beneficial for student programmers. Initial quantitative and ...
First-year students' impressions of pair programming in CS1
Pair programming, as part of the Agile Development process, has noted benefits in professional software development scenarios. These successes have led to a rise in use of pair programming in educational settings, particularly in Computer Science 1 (CS1)...
Pair2 learning = pair programming × pair teaching
WCCCE '12: Proceedings of the Seventeenth Western Canadian Conference on Computing EducationPair programming is a frequently cited method for retaining students and improving student learning in introductory Computer Science courses. When pair programming is employed early in the curriculum, students work together to learn to program more ...
Comments