Number of co-authors:19
Number of publications with 3 favourite co-authors:Scott R. Klemmer:3Mira Dontcheva:3Robert C. Miller:2
Joel Brandt's 3 most productive colleagues in number of publications:Roel Vertegaal:59Robert C. Miller:42Scott R. Klemmer:38
If houses were built the way software is built, the first woodpecker would bring down civilization.
-- Popular computer one-liner
Read the fascinating history of Wearable Computing, told by its father, Steve Mann
Read Steve's chapter !
Our Latest Books
Kumar and Herger 2013: Gamification at Work: Designing Engaging Business Software...
by Janaki Mythily Kumar and Mario Herger
Whitworth and Ahmad 2013: The Social Design of Technical Systems: Building technologies for communities...
by Brian Whitworth and Adnan Ahmad
Soegaard and Dam 2013: The Encyclopedia of Human-Computer Interaction, 2nd Ed....
by Mads Soegaard and Rikke Friis Dam
Publications by Joel Brandt (bibliography)
Kim, Juho, Malley, Benjamin, Brandt, Joel, Dontcheva, Mira, Joseph, Diana, Gajos, Krzysztof Z. and Miller, Robert C. (2012): Photoshop with friends: a synchronous learning community for graphic design. In: Companion Proceedings of ACM CSCW12 Conference on Computer-Supported Cooperative Work 2012. pp. 271-272.
Photoshop with Friends is an online community of learners exchanging just-in-time help on graphic design tasks. The system attempts to provide an interactive, visual, context-aware, and personalized mode of learning. Developed as a Facebook application, Photoshop with Friends allows users to help each other in live sessions, with built-in screen sharing, recording, and voice chat support. Major design decisions are guided by two laboratory studies that identified challenges in learning graphic design skills on the web.
© All rights reserved Kim et al. and/or ACM Press
Wightman, Doug, Ye, Zi, Brandt, Joel and Vertegaal, Roel (2012): SnipMatch: using source code context to enhance snippet retrieval and parameterization. In: Proceedings of the 2012 ACM Symposium on User Interface Software and Technology 2012. pp. 219-228.
Programmers routinely use source code snippets to increase their productivity. However, locating and adapting code snippets to the current context still takes time: for example, variables must be renamed, and dependencies included. We believe that when programmers decide to invest time in creating a new code snippet from scratch, they would also be willing to spend additional effort to make that code snippet configurable and easy to integrate. To explore this insight, we built SnipMatch, a plug-in for the Eclipse IDE. SnipMatch introduces a simple markup that allows snippet authors to specify search patterns and integration instructions. SnipMatch leverages this information, in conjunction with current code context, to improve snippet search and parameterization. For example, when a search query includes local variables, SnipMatch suggests compatible snippets, and automatically adapts them by substituting in these variables. In the lab, we observed that participants integrated snippets faster when using SnipMatch than when using standard Eclipse. Findings from a public deployment to 93 programmers suggest that SnipMatch has become integrated into the work practices of real users.
© All rights reserved Wightman et al. and/or ACM Press
Oney, Stephen, Myers, Brad and Brandt, Joel (2012): ConstraintJS: programming interactive behaviors for the web by integrating constraints and states. In: Proceedings of the 2012 ACM Symposium on User Interface Software and Technology 2012. pp. 229-238.
Interactive behaviors in GUIs are often described in terms of states, transitions, and constraints, where the constraints only hold in certain states. These constraints maintain relationships among objects, control the graphical layout, and link the user interface to an underlying data model. However, no existing Web implementation technology provides direct support for all of these, so the code for maintaining constraints and tracking state may end up spread across multiple languages and libraries. In this paper we describe ConstraintJS, a system that integrates constraints and finite-state machines (FSMs) with Web languages. A key role for the FSMs is to enable and disable constraints based on the interface's current mode, making it possible to write constraints that sometimes hold. We illustrate that constraints combined with FSMs can be a clearer way of defining many interactive behaviors with a series of examples.
© All rights reserved Oney et al. and/or ACM Press
Bernstein, Michael S., Brandt, Joel, Miller, Robert C. and Karger, David R. (2011): Crowds in two seconds: enabling realtime crowd-powered interfaces. In: Proceedings of the 2011 ACM Symposium on User Interface Software and Technology 2011. pp. 33-42.
Interactive systems must respond to user input within seconds. Therefore, to create realtime crowd-powered interfaces, we need to dramatically lower crowd latency. In this paper, we introduce the use of synchronous crowds for on-demand, realtime crowdsourcing. With synchronous crowds, systems can dynamically adapt tasks by leveraging the fact that workers are present at the same time. We develop techniques that recruit synchronous crowds in two seconds and use them to execute complex search tasks in ten seconds. The first technique, the retainer model, pays workers a small wage to wait and respond quickly when asked. We offer empirically derived guidelines for a retainer system that is low-cost and produces on-demand crowds in two seconds. Our second technique, rapid refinement, observes early signs of agreement in synchronous crowds and dynamically narrows the search space to focus on promising directions. This approach produces results that, on average, are of more reliable quality and arrive faster than the fastest crowd member working alone. To explore benefits and limitations of these techniques for interaction, we present three applications: Adrenaline, a crowd-powered camera where workers quickly filter a short video down to the best single moment for a photo; and Puppeteer and A|B, which examine creative generation tasks, communication with workers, and low-latency voting.
© All rights reserved Bernstein et al. and/or ACM Press
Brandt, Joel, Dontcheva, Mira, Weskamp, Marcos and Klemmer, Scott R. (2010): Example-centric programming: integrating web search into the development environment. In: Proceedings of ACM CHI 2010 Conference on Human Factors in Computing Systems 2010. pp. 513-522.
The ready availability of online source-code examples has fundamentally changed programming practices. However, current search tools are not designed to assist with programming tasks and are wholly separate from editing tools. This paper proposes that embedding a task-specific search engine in the development environment can significantly reduce the cost of finding information and thus enable programmers to write better code more easily. This paper describes the design, implementation, and evaluation of Blueprint, a Web search interface integrated into the Adobe Flex Builder development environment that helps users locate example code. Blueprint automatically augments queries with code context, presents a code-centric view of search results, embeds the search experience into the editor, and retains a link between copied code and its source. A comparative laboratory study found that Blueprint enables participants to write significantly better code and find example code significantly faster than with a standard Web browser. Analysis of three months of usage logs with 2,024 users suggests that task-specific search interfaces can significantly change how and when people search the Web.
© All rights reserved Brandt et al. and/or their publisher
Hartmann, Björn, MacDougall, Daniel, Brandt, Joel and Klemmer, Scott R. (2010): What would other programmers do: suggesting solutions to error messages. In: Proceedings of ACM CHI 2010 Conference on Human Factors in Computing Systems 2010. pp. 1019-1028.
Interpreting compiler errors and exception messages is challenging for novice programmers. Presenting examples of how other programmers have corrected similar errors may help novices understand and correct such errors. This paper introduces HelpMeOut, a social recommender system that aids the debugging of error messages by suggesting solutions that peers have applied in the past. HelpMeOut comprises IDE instrumentation to collect examples of code changes that fix errors; a central database that stores fix reports from many users; and a suggestion interface that, given an error, queries the database for a list of relevant fixes and presents these to the programmer. We report on implementations of this architecture for two programming languages. An evaluation with novice programmers found that the technique can suggest useful fixes for 47% of errors after 39 person-hours of programming in an instrumented environment.
© All rights reserved Hartmann et al. and/or their publisher
Brandt, Joel, Guo, Philip J., Lewenstein, Joel, Dontcheva, Mira and Klemmer, Scott R. (2009): Two studies of opportunistic programming: interleaving web foraging, learning, and writing code. In: Proceedings of ACM CHI 2009 Conference on Human Factors in Computing Systems 2009. pp. 1589-1598.
This paper investigates the role of online resources in problem solving. We look specifically at how programmers -- an exemplar form of knowledge workers -- opportunistically interleave Web foraging, learning, and writing code. We describe two studies of how programmers use online resources. The first, conducted in the lab, observed participants' Web use while building an online chat room. We found that programmers leverage online resources with a range of intentions: They engage in just-in-time learning of new skills and approaches, clarify and extend their existing knowledge, and remind themselves of details deemed not worth remembering. The results also suggest that queries for different purposes have different styles and durations. Do programmers' queries "in the wild" have the same range of intentions, or is this result an artifact of the particular lab setting? We analyzed a month of queries to an online programming portal, examining the lexical structure, refinements made, and result pages visited. Here we also saw traits that suggest the Web is being used for learning and reminding. These results contribute to a theory of online resource usage in programming, and suggest opportunities for tools to facilitate online knowledge work.
© All rights reserved Brandt et al. and/or ACM Press
Show list on your website
Join the design elite and advance:
Changes to this page (author)23 Nov 2012: Modified23 Nov 2012: Modified
05 Apr 2012: Modified
03 Apr 2012: Modified
02 Nov 2010: Modified
02 Nov 2010: Modified
09 May 2009: Added
Page maintainer: The Editorial Team