39,772 research outputs found

    Distributed-Pair Programming can work well and is not just Distributed Pair-Programming

    Full text link
    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

    A framework for understanding the factors influencing pair programming success

    Get PDF
    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)

    Buffer loading and chunking in sequential keypressing

    Get PDF
    Thirty-six participants practiced a task in which they continuously cycled through a fixed series of nine keypresses, each carried out by a single finger (cf. Keele & Summers, 1976). The results of the first experimental phase, the practice phase, support the notion that pauses between successive keypresses at fixed locations induces the development of integrated sequence representations (i.e., motor chunks) and reject the idea that a rhythm is learned. When different sequences were produced in the transfer phase, performance dropped considerably unless the sequence was relatively short and there was ample time for preparation. This demonstrates that motor chunks are content specific and that the absence of motor chunks shows when there is no time for advance loading of the motor buffer or the capacity of the motor buffer is insufficient to contain the entire keypressing sequence

    The abstraction transition taxonomy: developing desired learning outcomes through the lens of situated cognition

    Get PDF
    We report on a post-hoc analysis of introductory programming lecture materials. The purpose of this analysis is to identify what knowledge and skills we are asking students to acquire, as situated in the activity, tools, and culture of what programmers do and how they think. The specific materials analyzed are the 133 Peer Instruction questions used in lecture to support cognitive apprenticeship -- honoring the situated nature of knowledge. We propose an Abstraction Transition Taxonomy for classifying the kinds of knowing and practices we engage students in as we seek to apprentice them into the programming world. We find students are asked to answer questions expressed using three levels of abstraction: English, CS Speak, and Code. Moreover, many questions involve asking students to transition between levels of abstraction within the context of a computational problem. Finally, by applying our taxonomy in classifying a range of introductory programming exams, we find that summative assessments (including our own) tend to emphasize a small range of the skills fostered in students during the formative/apprenticeship phase

    Multiscale Markov Decision Problems: Compression, Solution, and Transfer Learning

    Full text link
    Many problems in sequential decision making and stochastic control often have natural multiscale structure: sub-tasks are assembled together to accomplish complex goals. Systematically inferring and leveraging hierarchical structure, particularly beyond a single level of abstraction, has remained a longstanding challenge. We describe a fast multiscale procedure for repeatedly compressing, or homogenizing, Markov decision processes (MDPs), wherein a hierarchy of sub-problems at different scales is automatically determined. Coarsened MDPs are themselves independent, deterministic MDPs, and may be solved using existing algorithms. The multiscale representation delivered by this procedure decouples sub-tasks from each other and can lead to substantial improvements in convergence rates both locally within sub-problems and globally across sub-problems, yielding significant computational savings. A second fundamental aspect of this work is that these multiscale decompositions yield new transfer opportunities across different problems, where solutions of sub-tasks at different levels of the hierarchy may be amenable to transfer to new problems. Localized transfer of policies and potential operators at arbitrary scales is emphasized. Finally, we demonstrate compression and transfer in a collection of illustrative domains, including examples involving discrete and continuous statespaces.Comment: 86 pages, 15 figure

    Developing computational thinking in the classroom: a framework

    No full text
    Computational thinking sits at the heart of the new statutory programme of study for Computing: “A high quality computing education equips pupils to use computational thinking and creativity to understand and change the world” (Department for Education, 2013, p. 188). This document aims to support teachers to teach computational thinking. It describes a framework that helps explain what computational thinking is, describes pedagogic approaches for teaching it and gives ways to assess it. Pupil progression with the previous ICT curriculum was often demonstrated through ‘how’ (for example, a software usage skill) or ‘what’ the pupil produced (for example, a poster). This was partly due to the needs of the business world for office skills. Such use of precious curriculum time however has several weaknesses. Firstly, the country’s economy depends on technological innovation not just on use of technology. Secondly, the pace of technology and organisational change is fast in that the ICT skills learnt are out of date before a pupil leaves school. Thirdly, technology invades all aspects of our life and the typically taught office practice is only a small part of technology use today
    corecore