155,764 research outputs found
Recommended from our members
Evaluating the Impact of Live Programming on Collaborative Software Development
Collaboration is tricky, but often beneficial in the context of numerous software related activities, from learning core concepts, to the design and implementation of large software products. The growth of online classes, from small structured seminars to massive open online courses (MOOCs), and the isolation and impoverished learning experience some students report in these, points to an urgent need for tools that support remote pair programming in a distributed educational setting. In “the real world” software developers and designers work together to solve common problems, and meaningful and effective designer-developer collaboration improves the user experience. Supporting these with today’s often distributed work model presents important challenges.Two key techniques which are believed to be effective in promoting better coordination and collaboration are collaborative coding and live programming. Collaborative coding allows all the team members to get involved in the development process, and live programming enables them to see what they are building effortlessly and in real time.In this work, we first describe Jimbo, an integrated development environment (IDE) based on collaborative and live programming techniques, and a set of user studies aimed at evaluating whether these techniques are effective in promoting better coordination and collaboration in two different settings; distance learning and design-focused software development. Our results show that these techniques can improve the learning experience through pair programming and a tight code-artifact feedback loop. We will show how collaborative coding and live programming can help designers and developers bridge their knowledge and language gaps and develop mutual understanding, allowing designers to join the development process as first-class citizens – not dependent on the coders to compile and share output – or being forced to become coders.Keywords: pair programming, collaborative learning, collaboration, educational tools, live programming, remote pair-programming, programming environment, MOOC, IDE, distance learning, designer-developer collaboration, collaborative software developmen
Efficient Multi-way Theta-Join Processing Using MapReduce
Multi-way Theta-join queries are powerful in describing complex relations and
therefore widely employed in real practices. However, existing solutions from
traditional distributed and parallel databases for multi-way Theta-join queries
cannot be easily extended to fit a shared-nothing distributed computing
paradigm, which is proven to be able to support OLAP applications over immense
data volumes. In this work, we study the problem of efficient processing of
multi-way Theta-join queries using MapReduce from a cost-effective perspective.
Although there have been some works using the (key,value) pair-based
programming model to support join operations, efficient processing of multi-way
Theta-join queries has never been fully explored. The substantial challenge
lies in, given a number of processing units (that can run Map or Reduce tasks),
mapping a multi-way Theta-join query to a number of MapReduce jobs and having
them executed in a well scheduled sequence, such that the total processing time
span is minimized. Our solution mainly includes two parts: 1) cost metrics for
both single MapReduce job and a number of MapReduce jobs executed in a certain
order; 2) the efficient execution of a chain-typed Theta-join with only one
MapReduce job. Comparing with the query evaluation strategy proposed in [23]
and the widely adopted Pig Latin and Hive SQL solutions, our method achieves
significant improvement of the join processing efficiency.Comment: VLDB201
Effects of Solo and Pair Programming Instructional Strategies on Students’ Academic Achievement in Visual-Basic.Net Computer Programming Language
This study assesses the relative effectiveness of solo and pair programming instructional strategies on students’ academic achievement in the Visual-Basic.Net Computer Programming Language. Two research questions and three null hypotheses guided the study. The sample comprised 68 subjects distributed over the three treatment groups (27 solo programmers, 24 pair programmers, and 17 conventional programmers) from three hundred computer science students of the Federal College of Education (Technical), Akoka, Yaba, Lagos State, Nigeria. The Visual-Basic.Net Achievement Test (VAT) was used to collect data for both the pre- and post-tests. The VAT test was administered to all 68 subjects in the three groups, first as pre-test and after treatment as post-test. Mean and standard deviations were used to answer the two research questions while ANCOVA and multiple comparisons were used in testing the three null hypotheses. The results of the analyses indicate that: (i) the experimental groups performed better than the control group, (ii) the treatment appeared to be more effective among male students than their female counterparts, (iii) the main effects of treatment and gender as well as the interaction effects of treatment and gender were not statistically significant
A framework for understanding the factors influencing pair programming success
Pair programming is one of the more controversial aspects of several Agile system development methods, in particular eXtreme Programming (XP). Various studies have assessed factors that either drive the success or suggest advantages (and disadvantages) of pair programming.
In this exploratory study the literature on pair programming is examined and factors distilled. These factors are then compared and contrasted with those discovered in our recent Delphi study of pair programming.
Gallis et al. (2003) have proposed an initial framework aimed at providing a comprehensive identification of the major factors impacting team programming situations including pair programming. However, this
study demonstrates that the framework should be extended to include an additional category of factors that relate to organizational matters. These factors will be further refined, and used to develop and empirically evaluate a conceptual model of pair programming (success)
Towards the effective distribution of agile practice
The agile methods are quickly gaining notoriety amongst
software engineers. Having been developed over the past decade, they now present a mature, lightweight alternative to the "classic" approaches to software engineering. Although agile methods have solved some of the problems of established software engineering practice, they
have created some problems of their own. Most importantly, we can infer a, potentially problematic, requirement of collocation. In this research I intend to develop a system that will allow the effective distribution of agile practice, with a particular focus on the eXtreme Programming method. This paper discusses the motivation for this research and outlines the proposed research method and evaluation
Pair programming and the re-appropriation of individual tools for collaborative software development
Although pair programming is becoming more prevalent in software development, and a number of reports have been written about it [10] [13], few have addressed the manner in which pairing actually takes place [12]. Even fewer consider the methods used to manage issues such as role change or the communication of complex issues. This paper highlights the way resources designed for individuals are re-appropriated and augmented by pair programmers to facilitate collaboration. It also illustrates that pair verbalisations can augment the benefits of the collocated team, providing examples from ethnographic studies of pair programmers 'in the wild'
Actors vs Shared Memory: two models at work on Big Data application frameworks
This work aims at analyzing how two different concurrency models, namely the
shared memory model and the actor model, can influence the development of
applications that manage huge masses of data, distinctive of Big Data
applications. The paper compares the two models by analyzing a couple of
concrete projects based on the MapReduce and Bulk Synchronous Parallel
algorithmic schemes. Both projects are doubly implemented on two concrete
platforms: Akka Cluster and Managed X10. The result is both a conceptual
comparison of models in the Big Data Analytics scenario, and an experimental
analysis based on concrete executions on a cluster platform
Distributed-Pair Programming can work well and is not just Distributed Pair-Programming
Background: Distributed Pair Programming can be performed via screensharing
or via a distributed IDE. The latter offers the freedom of concurrent editing
(which may be helpful or damaging) and has even more awareness deficits than
screen sharing. Objective: Characterize how competent distributed pair
programmers may handle this additional freedom and these additional awareness
deficits and characterize the impacts on the pair programming process. Method:
A revelatory case study, based on direct observation of a single, highly
competent distributed pair of industrial software developers during a 3-day
collaboration. We use recordings of these sessions and conceptualize the
phenomena seen. Results: 1. Skilled pairs may bridge the awareness deficits
without visible obstruction of the overall process. 2. Skilled pairs may use
the additional editing freedom in a useful limited fashion, resulting in
potentially better fluency of the process than local pair programming.
Conclusion: When applied skillfully in an appropriate context, distributed-pair
programming can (not will!) work at least as well as local pair programming
- …