106 research outputs found

    Real-time collaborative coding in a web IDE

    No full text
    This paper describes Collabode, a web-based Java integrated development environment designed to support close, synchronous collaboration between programmers. We examine the problem of collaborative coding in the face of program compilation errors introduced by other users which make collaboration more difficult, and describe an algorithm for error-mediated integration of program code. Concurrent editors see the text of changes made by collaborators, but the errors reported in their view are based only on their own changes. Editors may run the program at any time, using only error-free edits supplied so far, and ignoring incomplete or otherwise error-generating changes. We evaluate this algorithm and interface on recorded data from previous pilot experiments with Collabode, and via a user study with student and professional programmers. We conclude that it offers appreciable benefits over naive continuous synchronization without regard to errors and over manual version control.National Science Foundation (U.S.) (award IIS- 0447800

    Keyword programming in Java

    No full text
    Keyword programming is a novel technique for reducing the need to remember details of programming language syntax and APIs, by translating a small number of unordered keywords provided by the user into a valid expression. In a sense, the keywords act as a query that searches the space of expressions that are valid in the given context. Prior work has demonstrated the feasibility and merit of this approach in limited domains. This paper explores the potential for employing this technique in much larger domains, specifically general-purpose programming languages like Java. We present an algorithm for translating keywords into Java method call expressions. When tested on keywords extracted from existing method calls in Java code, the algorithm can accurately reconstruct over 90% of the original expressions. We tested the algorithm on keywords provided by users in a web-based study. The results suggest that users can obtain correct Java code using keyword queries as accurately as they can write the correct Java code themselves. We implemented the algorithm in an Eclipse plug-in as an extension to the autocomplete mechanism and deployed it in a preliminary field study of several users, with mixed results. One interesting result of this work is that most of the information in Java method call expressions lies in the keywords, and details of punctuation and even parameter ordering can often be inferred automatically.Quanta Computer - TParty projectNational Science Foundatio

    Programming with keywords

    No full text
    Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2007.Includes bibliographical references (p. 105-108).Modern applications provide interfaces for scripting, but many users do not know how to write script commands. However, many users are familiar with the idea of entering keywords into a web search engine. Hence, if a user is familiar with the vocabulary of an application domain, they may be able to write a set of keywords expressing a command in that domain. For instance, in the web browsing domain, a user might enter the keywords click search button. This thesis presents several algorithms for translating keyword queries such as this directly into code. A prototype of this system in the web browsing domain translates click search button into the code click(findButton("search")). This code may then be executed in the context of a web browser to carry out the effect. Another prototype in the Java domain translates append message to log into log.append(message), given an appropriate context of local variables and imported classes. The algorithms and prototypes are evaluated with several studies, suggesting that users can write keyword queries with little or no instructions, and that the resulting translations are often accurate. This is especially true in small domains like the web, whereas in a large domain like Java, the accuracy is comparable to the accuracy of writing syntactically correct Java code without assistance.by Greg Little.S.M

    Inky: A Sloppy Command Line for the Web with Rich Visual Feedback

    No full text
    We present Inky, a command line for shortcut access to common web tasks. Inky aims to capture the efficiency benefits of typed commands while mitigating their usability problems. Inky commands have little or no new syntax to learn, and the system displays rich visual feedback while the user is typing, including missing parameters and con- textual information automatically clipped from the target web site. Inky is an example of a new kind of hybrid be- tween a command line and a GUI interface. We describe the design and implementation of two prototypes of this idea, and report the results of a field study

    TurKit: Human Computation Algorithms on Mechanical Turk

    No full text
    Mechanical Turk (MTurk) provides an on-demand source of human computation. This provides a tremendous opportunity to explore algorithms which incorporate human computation as a function call. However, various systems challenges make this difficult in practice, and most uses of MTurk post large numbers of independent tasks. TurKit is a toolkit for prototyping and exploring algorithmic human computation, while maintaining a straight-forward imperative programming style. We present the crash-and-rerun programming model that makes TurKit possible, along with a variety of applications for human computation algorithms. We also present case studies of TurKit used for real experiments across different fields.Xerox CorporationNational Science Foundation (U.S.) (Grant No. IIS- 0447800)Quanta ComputerMassachusetts Institute of Technology. Center for Collective Intelligenc

    Programming with human computation

    No full text
    Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2011.Cataloged from PDF version of thesis.Includes bibliographical references (p. 151-156).Amazon's Mechanical Turk provides a programmatically accessible micro-task market, allowing a program to hire human workers. This has opened the door to a rich field of research in human computation where programs orchestrate the efforts of humans to help solve problems. This thesis explores challenges that programmers face in this space: both technical challenges like managing high-latency, as well as psychological challenges like designing effective interfaces for human workers. We offer tools and experiments to overcome these challenges in an effort to help future researchers better understand and harness the power of human computation. The main tool this thesis offers is the crash-and-rerun programming model for managing high-latency tasks on MTurk, along with the TurKit toolkit which implements crash-and-rerun. TurKit provides a straightforward imperative programming environment where MTurk is abstracted as a function call. Based on our experience using TurKit, we propose a simple model of human computation algorithms involving creation and decision tasks. These tasks suggest two natural workflows: iterative and parallel, where iterative tasks build on each other and parallel tasks do not. We run a series of experiments comparing the merits of each workflow, where iteration appears to increase quality, but has limitations like reducing the variety of responses and getting stuck in local maxima. Next we build a larger system composed of several iterative and parallel workflows to solve a real world problem, that of transcribing medical forms, and report our experience. The thesis ends with a discussion of the current state-of-the-art of human computation, and suggests directions for future work.by Greg Little.Ph.D

    TurKit: Tools for iterative tasks on mechanical Turk

    No full text
    Mechanical Turk (MTurk) is an increasingly popular web service for paying people small rewards to do human computation tasks. Current uses of MTurk typically post independent parallel tasks. We are exploring an alternative iterative paradigm, in which workers build on or evaluate each other's work. We describe TurKit, a new toolkit for deploying iterative tasks to MTurk, with a familiar imperative programming paradigm that effectively uses MTurk workers as subroutines.National Science Foundation (U.S.). (Grant number IIS-0447800)Quanta Computer (Firm)Massachusetts Institute of Technology. Center for Collective Intelligenc

    VizWiz

    No full text
    The lack of access to visual information like text labels, icons,and colors can cause frustration and decrease independence for blind people. Current access technology uses automatic approaches to address some problems in this space, but the technology is error-prone, limited in scope, and quite expensive. In this paper, we introduce VizWiz, a talking application for mobile phones that offers a new alternative to answering visual questions in nearly real-time—asking multiple people on the web. To support answering questions quickly, we introduce a general approach for intelligently recruiting human workers in advance called quikTurkit so that workers are available when new questions arrive. A field deployment with 11 blind participants illustrates that blind people can effectively use VizWiz to cheaply answer questions in their everyday lives, highlighting issues that automatic approaches will need to address to be useful. Finally, we illustrate the potential of using VizWiz as part of the participatory design of advanced tools by using it to build and evaluate VizWiz::LocateIt, an interactive mobile tool that helps blind people solve general visual search problems

    Soylent: A Word Processor with a Crowd Inside

    No full text
    This paper introduces architectural and interaction patterns for integrating crowdsourced human contributions directly into user interfaces. We focus on writing and editing, com-plex endeavors that span many levels of conceptual and pragmatic activity. Authoring tools offer help with prag-matics, but for higher-level help, writers commonly turn to other people. We thus present Soylent, a word processing interface that enables writers to call on Mechanical Turk workers to shorten, proofread, and otherwise edit parts of their documents on demand. To improve worker quality, we introduce the Find-Fix-Verify crowd programming pat-tern, which splits tasks into a series of generation and re-view stages. Evaluation studies demonstrate the feasibility of crowdsourced editing and investigate questions of relia-bility, cost, wait time, and work time for edits.National Science Foundation (U.S.) (Grant No. IIS-0712793

    OIMB Term Photo: Summer 1980

    No full text
    Summer 1980 Back Row: Tom Phelan, Dave Ward, Ernie Selig, Claudia Sands, Wendy Brown, Carol Brokschmidt, Debbie Richie, Keith Duff, Laura Suslick, Tom Doak, Kristin Larson, Anne Rockhold, Peggy Dole, Debby Jaques, Becky Jackson, Margie Ryan, Jamie Fereday. 4th Row: Paul Rudy, Russ Reasoner, Jan Hodder, Hal Neace, Ed Riley, Kathy Ellis, Sue Yeazel, Becky McConnaughey, Maggie Rudy, Alyce Beaudoin, Connie Thoman, Mary Anne Asson. 3rd Row: Laurel Thomas, Anathea, Maribeth Stansifer, Brooke Antrim, Fred Kramer, Jennifer Holmes, Betsy Kapiloff, Mari Lehmer, Anna Obolensky, Dave Howe, Jeremy Pirtle, Ellen Scott, Carol Harrelson, Barbara Sorg. 2nd Row: Evelyn McConnaughey, Sharon Clark, Pearl Giglio, Ray Heller, Gwen Warnick Nolen Shishido, Denise Benhart, Eric Jacobs, Bob Graham, Jon Kretzler, Adnan Banjar, Danny Mahoney, Karen Worcester, Michael Devereux, Keith Metzner, Danny Recht. Front Row: Bayard McConnaughey, Lynn Rudy, Dave Rowell, Nancy Schwantes, Roger Clark, Sarah Armitage, Dave Wagner, Dennis Marks, Mary Little, Lee Tibbitts, Gary Ketterling, Greg Knauss
    corecore