Improving Learning of Programming Through E-Learning by Using Asynchronous Virtual Pair Programming

The problem of learning programming subjects, especially through distance learning and E-Learning, has been widely reported in literatures. Many attempts have been made to solve these problems. This has led to many new approaches in the techniques of learning of programming. One of the approaches that have been proposed is the use of virtual pair programming (VPP). Most of the studies about VPP in distance learning or e-learning environment focus on the use of the synchronous mode of collaboration between learners. Not much research have been done about asynchronous VPP. This paper describes how we have implemented VPP and a research that has been carried out to study the effectiveness of asynchronous VPP for learning of programming. In particular, this research study the effectiveness of asynchronous VPP in the learning of object-oriented programming among students at Open University Malaysia (OUM). The result of the research has shown that most of the learners have given positive feedback, indicating that they are happy with the use of asynchronous VPP. At the same time, learners did recommend some extra features that could be added in making asynchronous VPP more enjoyable.

___

  • AIKEN, J. (2004). Technical and Human Perspectives on Pair Programming. ACM SIGSOFT Software Engineering Notes. 29(5).
  • BAHETI, P., Gehringer, E. & Stotts, D. (2002) Exploring the efficacy of distributed pair programming. XP Universe 2002, Chicago.
  • BAHETI, P., Williams, L, Gehringer, E. and Stotts, D. (2002). Exploring Pair Programming in Distributed Object-Oriented Team Projects. Educator's Workshop, OOPSLA 2002, Seattle.
  • BAHETI, P., Laurie Williams, Edward Gehringer, David Stotts, and Jason Smith. (2002). Distributed Pair Programming: Empirical Studies and Supporting Environments. Technical Report TR02-009, Department of Computer Science, University of North Carolina at Chapel Hill.
  • CRISPIN, L., House, T. (2003). Testing extreme programming. Boston: Addison-Wesley.
  • HANKS, B. F. (2004). "Distributed pair programming: An empirical study". Extreme Programming and Agile Methods - XP/ Agile Universe 2004, Proceedings. 3134, pp. 81-91.
  • HANKS, B. F. (2003). Virtual Pair Programming. (2003). Doctoral Symposium at the International Conference on Software Engineering (ICSE 2003), Portland, OR.
  • CARBONE, A., John, H, Ian, M & Dick, G. (2000). Principles for Designing Programming Exercises to Minimize Poor Learning Behaviors in Students. Proceedings of the Australasian conference on Computing education.
  • COCKBURN, Alistair & Williams, Laurie. (2000) The Costs and Benefits of Pair Programming. eXtreme Programming and Flexible Processes in Software Engineering XP2000.
  • EDELSON, D. C., Pea, R.D. & Gomez, L. (1996) Constructivism in the collaboratory. In B G Wilson (Ed.). Constructivist Learning Environment: Case Studies in Instructional Design. Englewood Cliffs, New Jersey: Educational Technology Publication Inc, pp. 151-164.
  • EDWARDS, W.K., Elizabeth D. Mynatt, K. P., Mike J. S., Douglas B. T. & Marvin M. T. (1997). Designing and implementing asynchronous collaborative applications with Bayou. Proceedings of the 10th annual ACM symposium on User interface software and technology.
  • GANTENBEIN, R. E. (1989). Programming as Process: A Novel approach to teaching programming ACM SIGCSE. Bulletin, Proceedings of the twentieth SIGCSE technical symposium on Computer science education, 21(1).
  • HARASIM, L., Hiltz, S.R., Teles, L. & Turoff, M. (1997). Learning Networks: A Field Guide to Teaching and Learning Online. The MIT Press, Cambridge, MA.
  • HO, C., Raha, S., Gehringer, E, & Williams, L. (2004). Sangam: A Distributed Pair Programming Plug-in for Eclipse , Eclipse Technology Exchange (Workshop) at the Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA).
  • HILTZ, S. R. (1998). Collaborative Learning in Asynchronous Learning Networks: Building Learning Communities. Invited Address at "WEB98" Orlando Florida.
  • KIERCHER, M., P. Jain, A. Corsaro & D. Levine. (2001). Distributed eXtreme Programming Appeared at XP2001.
  • KÖLLING, M. & John Rosenberg. (2001). Guidelines for teaching object orientation with Java. ACM SIGCSE. Bulletin, Proceedings of the 6th annual conference on Innovation and technology in computer science education, 33(3).
  • McDOWELL, C., Brian, H. & Linda, W. (2003). Experimenting with pair programming in the classroom. ACM SIGCSE. Bulletin, Proceedings of the 6th annual conference on Innovation and technology in computer science education, 33(3).
  • McDOWELL, C., Linda W., Bullock, H.E. & Fernald, J. (2003). The Impact of Pair Programming on Student Performance, Perception and Persistence. Proceedings of the 25th International Conference on Software Engineering (ICSE'03).
  • NAWROCKI, J. & Wojciechowski, A. (2001) A. Experimental Evaluation of Pair Programming. Proceedings of the 12th European Software Control and Metrics Conference, ESCOM 2001), 269-276.
  • ROBINS. A, Janet, R. & Nathan, R. (2001). My program is correct but it doesn't run: A review of novice programming and a study of an introductory programming paper Department of Computer Science, University of Otago. Technical Report.
  • STOTTS, D., Williams, L, Nagappan, N., Baheti, P., Jen, D. & Jackson, A. (2003). Virtual Teaming: Experiments and Experiences in Distributed Pair Programming, XP/Agile Universe.
  • VAN DE GRIFT, T. (2004). Coupling pair programming and writing: learning about students' perceptions and processes. ACM SIGCSE. Bulletin, Proceedings of the 6th annual conference on Innovation and technology in computer science education, 33(3).
  • VYGOTSKY, L. S. (1978). Mind in Society: The Development of Higher Psychological Processes, M. Cole, V. John-Steiner, S. Scribner, and E. Souberman, Eds. Cambridge, MA: Harvard University Press.
  • WILLIAM, W. (2004). XP123 - exploring extreme programming. Retrieved 22 May 2006 from http://www.xp123.com/xplor/xp0502/index.shtml
  • WILLIAMS, L., Eric W., Kai Y., Miriam F. & Carol M. (2002). In Support of Pair Programming in the Introductory Computer Science Course. Computer Science Education.
  • ZACHARY, J. L. (1994). Tutorial-based teaching introductory programming classes. ACM IGCSE Bulletin, Proceedings of the twenty-fifth SIGCSE symposium on Computer science education, 26(1).
  • ZHU, H. & Meng, C. Z. (2003). Methodology First and Language Second: A Way to Teach Object-Oriented Programming. Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages and applications.