The International Arab Journal of Information Technology (IAJIT)

..............................
..............................
..............................


Pair Programming for Software Engineering Education: An Empirical Study

As an iterative and incremental methodology, agile software has helped a lot in evolving solutions from self- organizing, cross-functional teams. Pair programming is a type of agile software development technique where two programmers work together with one computer for developing the required software. This paper reports the results of a pair programming exercise carried out with a set of one hundred and twelve post graduate students, who developed small applications as a part of their software development laboratory course at Kumaraguru College of Technology (KCT) during the academic year 2012-2013 and 2013-2014. The objective of this research is to investigate the effect of adopting pair programming as a pedagogical tool in Indian higher educational setting. Purposeful pair programming modules were deployed in various phases of software development and the results revealed that pair programming is not only an useful approach in teaching computer programming but also facilitate effective knowledge sharing among students. Further, the effectiveness of pair programming was realized to a greater extent during the designing and coding phases of software development. Practicing pair programming also enables the students to develop their collaborative skills, which is crucial to an industrial working environment.


[1] Akerkar R. and Sajja P., Knowledge-Based Systems, Jones and Bartlett Publishers, 2010.

[2] Arisholm E., Gallis H., Dyb T., and Sjoberg D., Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise, IEEE Transactions on Software Engineering, vol. 33, no. 2, pp. 65-86, 2007.

[3] Beck K., Extreme Programming Explained, Addison-Wesley Langman Publishing, 2000.

[4] Begel A. and Simon B., Novice Software Developers, All over Again, in Proceedings of the 4th International Workshop on Computing Education Research, Sydney, pp. 3-14, 2008.

[5] Bipp T., Lepper A., and Schmedding D., Pair Programming in Software Development Teams- An Empirical Study of its Benefits, Information and Software Technology, vol. 50, no. 3, pp. 231- 240, 2008.

[6] Cockburn A. and Williams L., The Costs and Benefits of Pair Programming, Extreme Programming Examined, 2002.

[7] Faja S., Pair Programming as a Team Based Learning Activity: A Review of Research, Issues in Information Systems, vol. 12, no. 2, pp. 207-216, 2011.

[8] Hannay J., Arisholm E., Engvik H., and Sjoberg I., Effects of Personality on Pair Programming, IEEE Transactions on Software Engineering, vol. 36, no. 1, pp. 61-80, 2010.

[9] Kavitha R. and Irfan A., Knowledge Sharing Through Pair Programming in Learning Environments: An Empirical Study, Education and Information Technologies, vol. 20, no. 2, pp. 319-333, 2015.

[10] Kuppuswami S. and Vivekanandan K., The Effects of Pair Programming on Learning Efficiency in Short Programming Assignments, Informatics in Education-An International Journal, vol. 3, no. 2, pp. 251-266, 2004.

[11] Lui K., Keith C., and Chan C., Pair Programming Productivity: Novice-Novice vs. Expert-Expert, International Journal of Human- Computer Studies, vol. 64, no. 9, pp. 915-925, 2006.

[12] Muller M., Two Controlled Experiments Concerning the Comparison of Pair Programming to Peer Review, The Journal of Systems and Software, vol. 78, no. 2, pp. 166- 179, 2005.

[13] Naufal I. and Hui T., Learning Style, Metaphor and Pair Programming: Do they Influence Performance?, Procedia -Social and Behavioral Sciences, vol. 46, pp. 5603-5609, 2012.

[14] Pikkarainen M., Haikara J., Salo O., Abrahamsson P., and Still J., The Impact of Agile Practices on Communication in Software Development, Empirical Software Engineering, vol. 13, no. 3, pp. 303-337, 2008.

[15] Pressman S., Software Engineering Practitioner s Approach, McGraw Hill, 2010.

[16] Radermacher A. and Walia G., Gaps Between Industry Expectations and the Abilities of Graduates, in Proceedings of the 44th ACM Technical Symposium on Computer Science Education, Colorado, pp. 525-530, 2013.

[17] Salleh N., A Systematic Review of Pair Programming Research-Initial Results, in Proceedings of New Zealand Computer Science Research Student Conference, Christchurch, pp. 151-158, 2008.

[18] Salleh N., Mendes E., and Grundy J., Empirical Studies of Pair Programming for CS/SE Teaching in Higher Education: A Systematic Literature Review, IEEE Transactions on Software Engineering, vol. 37, no. 4, pp. 509-525, 2011.

[19] Scott G. and Wilson D., Tracking and Profiling Successful IT Graduates: An Exploratory Study, in Proceedings of the 13th Australasian Conference on Information Systems, Australasian, pp. 1185-1195, 2002.

[20] Vafadar S. and Barfourosh A., Towards Intelligence Engineering in Agent Based Systems, The International Arab Journal of Information Technology, vol. 12, no. 1, pp. 94- 102, 2015.

[21] Vanhanen J. and Korpi H, Experiences of Using Pair Programming in an Agile Project, in Proceedings of the 40th Hawaii International Conference on System Sciences IEEE Computer Society, Waikoloa, pp. 1530-1605, 2007.

[22] Venkatesan V. and Sankar A., Adoption of Pair Programming in the Academic Environment with different Degree of Complexity in Students Perspective-An Empirical Study, International Journal of Engineering Science and Technology, vol. 2, no. 9, pp. 4791-4800, 2010.

[23] Williams L. and Kessler R., All I Ever Needed to Know about Pair Programming I Learned in Kindergarten, Communications of the ACM, 2000.

[24] Williams L. and Kessler R., Pair Programming Illuminated, Addison Wesley, 2003. Pair Programming for Software Engineering Education: An Empirical Study 255 Kavitha Karthiekheyan received her Master of Computer Applications Degree and M.Phil Degree from Bharathiar University, Coimbatore, India. Currently she is working as an Assistant Professor in the Department of MCA in Kumaraguru College of Technology, Coimbatore. She has 15 years of teaching experience and 4 years in research. She has published research papers in various international conferences and journals. Irfan Ahmed holds his PhD degree in computer science from the Alagappa University, Karaikudi, India. He has more 2 years of industry experience, 18 years of teaching experience and 10 years of research experience. Currently he is working as Director in the Department of MCA in Sri Krishna College of Engineering and Technology, Coimbatore, India. He received the best faculty award in the year 2012. He has presented and published more than 20 research papers in international journals and conferences. Jalaja Jayalakshmi received her Master of Computer Applications Degree from Bharathiar University, Coimbatore, India. Currently she is working as an Assistant Professor in the Department of MCA in Kumaraguru College of Technology, Coimbatore, India. She has 10 years of experience in teaching and 1 year in industry.