AN INVESTIGATION OF TECHNOLOGY DESIGN FEATURES FOR SUPPORTING REAL-TIME COLLABORATIVE PROGRAMMING IN AN EDUCATIONAL ENVIRONMENT

Open Access
Author:
Zhang, Jin
Graduate Program:
Information Sciences and Technology
Degree:
Master of Science
Document Type:
Master Thesis
Date of Defense:
March 27, 2018
Committee Members:
  • Mary Beth Rosson, Thesis Advisor
  • Benjamin Hanrahan, Committee Member
  • Rosalie Ocker, Committee Member
Keywords:
  • Synchronous Collaborative Programming
  • Collaborative Learning
  • Computer Mediated Communication
  • Real-time Collaborative Editing
Abstract:
Courses that introduce concepts and skills for object-oriented programming (OOP) are very common across educational establishments, even in middle and high schools. In many such courses, collaboration in small teams on OOP projects is a necessary and important element. Team programming allows educators to assign more challenging problems, while at the same time providing practice on programming collaboration that is common in industry. In these projects, real-time (synchronous) collaboration is often critical, as it gives students the opportunity to view, build and check on each other’s code as it is being developed. However, despite the value in such real-time collaboration, it is currently only partly supported by tools, with students often relying on independent tools for different aspects of their work (e.g., code editors, compilers, online chat). There are no technologies that would be most appropriate for students to use while completing OOP project collaboratively in real-time. Moreover, educators also use a mix of methods when grading OOP assignments. There is no effort to analyze technologies that would be most appropriate for their grading method. My thesis studies this gap in tool support using two primary methods: 1) working from a scenario-based analysis of a state-of-the-art shared programming tool (Cloud9), I designed and mocked-up enhancements to Cloud9, so I could explore how it might support common team programming scenarios; and 2) I conducted interviews of OOP students and instructors to learn about their background and expectations for team projects, as well as react to my design ideas. In this thesis, I report my methods for design analysis and empirical study, and interpret my results to propose new design directions for tools that might better support real-time collaborative programming in an educational environment.