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
Is Pair Programming More Effective than Solo Programming for Secondary Education Novice Programmers?: A Case Study
The teaching and learning of programming are often considered a difficult topic for both teachers and students, due to its complexity and abstract nature. The traditional teaching approaches are unable to contribute substantially to the development of ...
Three Years of Student Pair Programming: Action Research Insights and Outcomes
SIGCSE '16: Proceedings of the 47th ACM Technical Symposium on Computing Science EducationIn the software engineering industry the technique of pair programming can be used as a means of enhancing programmer productivity and the quality of the software development process. Pair programming has also been used in computer science education as ...
Comparing novice programing environments for use in secondary education: App Inventor for Android vs. Alice
Coding is part of logical thinking and is one of the basic skills which are known as '21st-century skills'. Coding acquisition is necessary as it is used in a wide range of occupations. However, computer programing is difficult to learn and programing ...
Comments