[1]
Mining Programming Activity to Promote Help
Papers
/
Carter, Jason
/
Dewan, Prasun
Proceedings of the 14th European Conference on Computer-Supported
Cooperative Work
2015-09-19
p.23-42
© Copyright 2015 Springer International Publishing Switzerland
Summary: We have investigated techniques for mining programming activity to offer
help to programmers in difficulty. We have developed a (a) difficulty-detection
mechanism based on the notion of command ratios; (b) difficulty-classification
mechanism that uses both command ratios and rates; and (c) collaboration
mechanism that provides both workspace and difficulty awareness. Our studies
involve interviews and lab and field experiments, and indicate that (a) it is
possible to mine programming activity to reliably detect and classify
difficulties, (b) it is possible to build a collaborative environment to offer
opportunistic help, (c) programmers are not unnerved by and find it useful to
receive unsolicited help arriving in response to automatically detected
difficulties, (d) the acceptable level of privacy in a help-promotion tool
depends on whether the developers in difficulty are student or industrial
programmers, and whether they have been exposed earlier to a help promotion
tool, and (e) difficulty detection can filter out spurious help requests and
reduce the need for meetings required to poll for rare difficulty events.
[2]
A test-bed for Facebook friend-list recommendations
Demo session
/
Wu, Ziyou
/
Huang, Isabella
/
Zheng, Xubin
/
Bartel, Jacob
/
Vitkus, Andrew
/
Dewan, Prasun
ACM SIGCHI 2015 Symposium on Engineering Interactive Computing Systems
2015-06-23
p.222-225
© Copyright 2015 ACM
Summary:
We have engineered an interactive Facebook-based test-bed for experimenting
with friend-list recommendations. Its user-interface has two components: one
allows the end-user to use a recommendation algorithm to create usable
friend-lists, and the other allows the researcher to determine the quality of
the recommendations. It supports multi-stage experiments to compare the efforts
required to create friend-lists manually and using the recommender. Multiple
visualizations are provided to help understand and evaluate the underlying
algorithm. Several preliminary experiments have provided encouraging results.
The architecture allows the recommendation algorithms, end-user interfaces, and
visualizations to be changed independently. A video demonstration of this work
is available at youtu.be/FOMSVALrdGs.
[3]
Towards emotion-based collaborative software engineering
Short papers
/
Dewan, Prasun
Proceedings of the 2015 International Workshop on Cooperative and Human
Aspects of Software Engineering
2015-05-16
p.109-112
© Copyright 2015 ACM
Summary: There is a symbiotic relationship between collaborative software engineering
and the recent research in detection of four kinds of task-based emotions:
interruptibility, difficulty perception, frustration, and attention.
Predictions of these emotions can trigger opportunistic collaborations, make
collaborations more purposeful, influence how activities are scheduled, and
give implicit feedback from collaborators. Conversely, concepts from software
engineering can further advance the nascent area of emotion detection by
creating reusable analysis, annotation and prediction tools and architectures
that make the notion of multi-iteration application- and emotion-independent
prediction tractable.
[4]
User-Interfaces for Incremental Recipient and Response Time Predictions in
Asynchronous Messaging
Poster & Demo Session
/
Hamlet, Connor
/
Korn, Daniel
/
Prasad, Nikhil
/
Siedlecki, Volodymyr
/
Encarnacion, Eliezer
/
Bartel, Jacob
/
Dewan, Prasun
Companion Proceedings of the 2015 International Conference on Intelligent
User Interfaces
2015-03-29
v.2
p.21-24
© Copyright 2015 ACM
Summary:
We have created a new set of existing and novel predictive user-interfaces
for exchanging messages in asynchronous collaborative systems such as email and
internet communities. These interfaces support predictions of tags,
hierarchical recipients, and message response times. The predictions are made
incrementally, as messages are composed, and are offered to both senders and
receivers of messages. The user interfaces are implemented by a test-bed that
also supports experiments to evaluate them. It can automate the actions of the
collaborators with whom a subject exchanges messages, replay user actions, and
gather and display effort and correctness metrics related to these predictions.
The collaborator actions and predictions are specified using a declarative
mechanism. A video demonstration of this work is available at
youtu.be/NJt9Rfqb1ko.
[5]
Interactive Control and Visualization of Difficulty Inferences from
User-Interface Commands
Poster & Demo Session
/
Long, Duri
/
Dillon, Nicholas
/
Wang, Kun
/
Carter, Jason
/
Dewan, Prasun
Companion Proceedings of the 2015 International Conference on Intelligent
User Interfaces
2015-03-29
v.2
p.25-28
© Copyright 2015 ACM
Summary:
Recently, there has been research on inferring user emotions. Like other
inference research, it requires an iterative process in which what-if scenarios
are played with different features and algorithms. Traditional, general-purpose
data mining tools such as Weka have played an important part in promoting this
process. We have augmented this toolset with an additional interactive test-bed
designed for prediction and communication of programmer difficulties from
user-interface commands. It provides end-user interfaces for communicating,
correcting, and reacting to the predictions. In addition, it offers researchers
user-interfaces for interacting with the prediction process as it is executed
rather than, as in traditional mining tools, after it has generated data for a
set of experimental subjects. These user-interfaces can be used to determine
key elements of the prediction process, why certain wrong or right predictions
have been made, and change parameters of the process. A video demonstration
this work is available at youtu.be/09LpDIPG5h8.
[6]
Scalable Mixed-Focus Collaborative Difficulty Resolution: A Demonstration
Demos
/
Ellwanger, Dayton
/
Dillon, Nick
/
Wu, Tim
/
Carter, Jason
/
Dewan, Prasun
Companion Proceedings of ACM CSCW 2015 Conference on Computer-Supported
Cooperative Work and Social Computing
2015-03-14
v.2
p.53-56
© Copyright 2015 ACM
Summary:
In mixed-focus collaboration, users opportunistically switch between
synchronous and asynchronous collaboration. We have developed a special case of
this collaboration model in which the switch occurs when users face and
overcome difficulty and the level of sharing in the synchronous mode can vary.
The model supports multiple forms and degrees of awareness of the remote
difficulty, and allows multiple kinds and degrees of sharing. It is scalable in
that it allows a single helper to resolve the difficulties of a large number of
people in difficulty. It has been implemented for a programming class and
motivated by experience using a previous system in such a class. However, in
principle, its structure is independent of the activity causing difficulty. A
video demonstration of this work is available at youtu.be/1-AqMCidx48.
[7]
Evolving friend lists in social networks
Poster session
/
Bartel, Jacob W.
/
Dewan, Prasun
Proceedings of the 2013 ACM Conference on Recommender Systems
2013-10-12
p.435-438
© Copyright 2013 ACM
Summary: In a social network, users can sort members of their social graph into
friend lists to both understand the social structures within the graph and
control the flow of incoming and outgoing information. To reduce the
user-effort required to create these lists, previous work has developed
techniques for generating friend-lists in a static social graph. This paper
considers the user effort required to create friend lists in an evolving graph.
We have developed several new initial quantitative metrics to capture this
effort, and identified an initial technique for modeling graph growth. We have
used these metrics and model to compare two techniques for evolving friend
lists when the social graph grows: manual evolution -- the user evolves friend
lists using no external tools -- and full recommendation -- an existing state
of the art tool recommends a whole new set of friend lists. In these
comparisons, we used the friend lists of 12 individuals, and simulated the
growth of their social graphs and friend lists using our graph-growth model.
Intuitively, when the graph evolves by a small (large) amount, the manual
(automatic) approach should perform better. Our experiments show that full
recommendation performs better than manual when the social graph changes by
more than 1%, and yields an almost complete reduction in effort in the best
cases.
[8]
uTrack: track yourself! monitoring information on online social media
Social media, crowdsourcing & services demonstrations
/
Rodrigues, Tiago
/
Dewan, Prateek
/
Kumaraguru, Ponnurangam
/
Minardi, Raquel Melo
/
Almeida, Virgílio
Companion Proceedings of the 2013 International Conference on the World Wide
Web
2013-05-13
v.2
p.273-276
© Copyright 2013 ACM
Summary: The past one decade has witnessed an astounding outburst in the number of
online social media (OSM) services, and a lot of these services have enthralled
millions of users across the globe. With such tremendous number of users, the
amount of content being generated and shared on OSM services is also enormous.
As a result, trying to visualize all this overwhelming amount of content, and
gain useful insights from it has become a challenge. In this work, we present
uTrack, a personalized web service to analyze and visualize the diffusion of
content shared by users across multiple OSM platforms. To the best of our
knowledge, there exists no work which concentrates on monitoring information
diffusion for personal accounts. Currently, uTrack monitors and supports
logging in from Facebook, Twitter, and Google+. Once granted permissions by the
user, uTrack monitors all URLs (like videos, photos, news articles) the user
has shared in all OSM services supported, and generates useful visualizations
and statistics from the collected data.
[9]
Towards multi-domain collaborative toolkits
Toolkits and software development
/
Bartel, Jacob W.
/
Dewan, Prasun
Proceedings of ACM CSCW'12 Conference on Computer-Supported Cooperative Work
2012-02-11
v.1
p.1297-1306
© Copyright 2012 ACM
Summary: A multi-domain collaboration toolkit hides heterogeneity of user-interface
toolkits and associated domains from both programmers and end users of
collaborative, widget-synchronizing, applications. We have developed such a
system for the stand-alone, Eclipse, and web domains; and the AWT, Swing, SWT,
and GWT single-user toolkits associated with these domains. Several new
concepts are supported to meet these requirements including a widget server
allowing a distributed widget client to manipulate widgets on an interactive
device, flexible widget synchronization, flexible placement of widget
listeners, "piping" centralized non-interactive replicas communicating with
interactive user replicas, factory-based retargeting of the user-interface
toolkit, and a new process architecture.
[10]
Towards self-optimizing collaborative systems
Achieving harmony through technology
/
Junuzovic, Sasa
/
Dewan, Prasun
Proceedings of ACM CSCW'12 Conference on Computer-Supported Cooperative Work
2012-02-11
v.1
p.1421-1430
© Copyright 2012 ACM
Summary: Two important performance metrics in collaborative systems are local and
remote response times. Previous analytical and simulation work has shown that
these response times depend on three important factors: processing
architecture, communication architecture, and scheduling of tasks dictated by
these two architectures. We show that it is possible to create a system that
improves response times by dynamically adjusting these three system parameters
in response to changes to collaboration parameters such as new users joining
and network delays changing. We present practical approaches for collecting
collaboration parameters, computing multicast overlays, applying analytical
models of previous work, preserving coupling semantics during optimizations,
and keeping overheads low. Simulations and experiments show that the system
improves performance in practical scenarios.
[11]
Mixed-Initiative Friend-List Creation
/
Bacon, Kelli
/
Dewan, Prasun
Proceedings of the 12th European Conference on Computer-Supported
Cooperative Work
2011-09-24
p.293-312
© Copyright 2011 Springer-Verlag
Summary: Friend lists group contacts in a social networking site that are to be
treated equally in some respect. We have developed a new approach for
recommending friend lists, which can then be manually edited and merged by the
user to create the final lists. Our approach finds both large networks of
friends and smaller friend groups within this network by merging virtual friend
cliques. We have identified new metrics for evaluating the user-effort required
to process friend-list recommendations, and conducted user studies to evaluate
our approach and determine if and how the recommended lists would be used. Our
results show that (a) our approach identifies a large fraction of the friend
lists of a user, and seeds these lists with hundreds of members, few of which
are spurious, and (b) users say they would use the lists for access control,
messaging, filling in friend details, and understanding the social structures
to which they belong.
[12]
Scheduling in variable-core collaborative systems
Under the hood
/
Junuzovic, Sasa
/
Dewan, Prasun
Proceedings of ACM CSCW'11 Conference on Computer-Supported Cooperative Work
2011-03-19
p.543-552
© Copyright 2011 ACM
Summary: The performance of a collaborative system depends on how two mandatory
collaborative tasks, processing and transmission of user commands, are
scheduled. We have developed multiple policies for scheduling these tasks on
computers that have (a) one processing element on the network interface card
and (b) one or more processing cores on the CPU. To compare these policies, we
have a developed a formal analytical model that predicts their performance. It
shows that the optimal scheduling policy depends on several factors including
the number of cores that is available. We have implemented a system that
supports all of the policies and performed experiments to validate the formal
model. This system is a component of a self-optimizing scheduler we have
developed that improves response times by automatically choosing the scheduling
policy based on number of cores and other factors.
[13]
Design, implementation, and evaluation of an approach for determining when
programmers are having difficulty
Designing for collaboration II
/
Carter, Jason
/
Dewan, Prasun
GROUP'10: International Conference on Supporting Group Work
2010-11-06
p.215-224
© Copyright 2010 ACM
Summary: Previous research has motivated the idea of automatically determining when
programmers are having difficulty, provided an initial algorithm (unimplemented
in an actual system), and performed a small student-based evaluation to justify
the viability of this concept. We have taken the next step in this line of
research by designing and developing two-different systems that incorporate
variations of the algorithm, implementing a tool that allows independent
observers to code recorded sessions, and performing studies involving both
student and industrial programmers. Our work shows that (a) it is possible to
develop an efficient and reusable architecture for predicting programmer
status, (b) the previous technique can be improved through aggregation of
predicted status, (c) the improved technique correlates more with programmers'
perception of whether they are stuck than that of observers manually watching
the programmers, (d) the observers are quicker than the developers to conclude
that programmers are stuck, (e) with appropriate training, the tool can be used
to predict even the observers' perceptions, and (f) a group training model
offers more accuracy than an individual one when the training and test
exercises are the same and carried over a small time frame.
[14]
Increasing the automation of a toolkit without reducing its abstraction and
user-interface flexibility
Tool support for interface development
/
Dewan, Prasun
ACM SIGCHI 2010 Symposium on Engineering Interactive Computing Systems
2010-06-19
p.47-56
Keywords: user interface tools, user interface tools, MVC, preconditions, undo, redo
© Copyright 2010 ACM
Summary: The apparent tradeoff between user-interface automation and abstraction and
user-interface flexibility can be overcome using two key ideas. (1) It is
possible to automate several common aspects of a user-interface without
controlling its appearance. (2) By following well established programming
principles, developers can provide user-interface tools with information needed
for such automation. These ideas are used in a new approach that assumes that
programmers (a) encapsulate the semantics of interactive applications in model
objects, (b) use consistent ways to relate signatures of related methods, (c)
define method preconditions, and (d) use annotations for documentation. It uses
these principles to automate (a) binding of input events to synchronous and
asynchronous invocation of model methods, (b) syntactic and semantic validation
of user input, (c) binding of model state to display state, (c) undo/redo, and
(d) dynamic enabling/disabling of display components. The result is an approach
for increasing the automation of UI toolkits without reducing their abstraction
and user-interface flexibility.
[15]
Semantic awareness through computer vision
Interaction techniques and technologies
/
Benzaid, Sami
/
Dewan, Prasun
ACM SIGCHI 2010 Symposium on Engineering Interactive Computing Systems
2010-06-19
p.205-210
Keywords: cscw, distributed presentation, semantic awareness
© Copyright 2010 ACM
Summary: An important application of multi-user interfaces is distributed
presentations. In such presentations, the presenters do not have the ability to
assess the real-time level-of-interest of the audience through observation, as
they would in real lecture rooms. Using vision techniques, we aim to introduce
a path that, if followed, could potentially lead to a robust technique that
provides this information in such a presentation in real time.
[16]
Mixed-focus collaboration without compromising individual or group work
Collaboration, business and web orchestration
/
Dewan, Prasun
/
Agarwal, Puneet
/
Shroff, Gautam
/
Hegde, Rajesh
ACM SIGCHI 2010 Symposium on Engineering Interactive Computing Systems
2010-06-19
p.225-234
Keywords: awareness, coupling, side-by-side collaboration
© Copyright 2010 ACM
Summary: In mixed-focus collaboration, users "continuously" switch between
"individual" and "group" work. We have developed a new two-person interaction
mechanism, coupled tele-desktops, that is, arguably, not biased towards
individual or group work. We evaluate this mechanism, and the general idea of
mixed-focus collaboration, using a new quantitative framework consisting of (a)
a set of precisely-defined coupling modes determining the extent of individual
and group work, and (b) the times spent in, durations of, and number of
transitions among these modes. We describe a new visualization scheme for
compactly displaying these metrics in an individual collaborative session. We
use this framework to characterize about forty six person hours of use of
coupled tele-desktops, most of which involved collaborative use of a UI
builder. Our results include (a) quantitative motivation for coupled
tele-desktops, and (b) several new quantitative observations, and
quantification of several earlier qualitative observations regarding
mixed-focus collaboration.
[17]
History-based device graphical user-interfaces
Posters
/
Omojokun, Olufisayo
/
Dewan, Prasun
ACM SIGCHI 2010 Symposium on Engineering Interactive Computing Systems
2010-06-19
p.285-290
Keywords: devices, logging, mobile computing, model-based user-interface generation,
personalization, screen space, uims
© Copyright 2010 ACM
Summary: Due to limited screen space on mobile computers, device GUIs can span
multiple screens-requiring tedious scrolling and tabbing for commands.
History-based device GUIs can significantly reduce required space by only
presenting the commands a user typically needs based on the user's behavior
over a short training period. Moreover, history-based UIs and model-based UI
generation are symbiotic. Generation relieves programmers from the overhead of
logging and interpreting the interaction histories. Conversely, history-based
user-interaction noticeably lowers inherent UI generation time by omitting
unneeded commands.
[18]
A demonstration of the flexibility of widget generation
Demonstrations
/
Dewan, Prasun
ACM SIGCHI 2010 Symposium on Engineering Interactive Computing Systems
2010-06-19
p.315-320
Keywords: benchmarks, inheritance, layout, MVC
© Copyright 2010 ACM
Summary: Several user-interface tools have been developed that (semi) automatically
generate widgets for interacting with model objects. However, details of the
nature of the model-widget mapping and the range of widget compositions that
can be automatically created remain largely unpublished, and hence unknown.
Moreover, most of this work has considered flat models. Using a variety of
user-interfaces, which are proposed as benchmarks for evaluating widget
generation, this paper demonstrates and derives a flexible and (semi) automatic
algorithm for mapping between model and widget compositions.
[19]
Are you having difficulty?
Social software engineering
/
Carter, Jason
/
Dewan, Prasun
Proceedings of ACM CSCW'10 Conference on Computer-Supported Cooperative Work
2010-02-06
p.211-214
Keywords: context aware computing, help, machine learning
© Copyright 2010 ACM
Summary: It would be useful if software engineers/instructors could be aware that
remote team members/students are having difficulty with their programming
tasks. We have developed an approach that tries to automatically create this
semantic awareness based on developers' interactions with the programming
environment, which is extended to log these interactions and allow the
developers to train or supervise the algorithm by explicitly indicating they
are having difficulty. Based on the logs of six programmers, we have found that
our approach has high accuracy.
[20]
Automatically identifying that distributed programmers are stuck
/
Carter, Jason
/
Dewan, Prasun
Proceedings of the 2009 International Workshop on Cooperative and Human
Aspects of Software Engineering
2009-05-17
p.12
© Copyright 2009 ACM
Summary: We hypothesize that it is useful and possible to automatically identify that
distributed programmers are stuck by extending existing software development
environments using a general architecture.
[21]
Distributed side-by-side programming
/
Dewan, Prasun
/
Agarwal, Puneet
/
Shroff, Gautam
/
Hegde, Rajesh
Proceedings of the 2009 International Workshop on Cooperative and Human
Aspects of Software Engineering
2009-05-17
p.48-55
© Copyright 2009 ACM
Summary: Recent work has proposed a variation of pair programming called side-by-side
programming, wherein two programmers, sitting next to each other and using
different workstations, work together on the same task. We have defined a
distributed approximation of this idea and implemented it in both a compiled
and interpretive environment. Our experiments with these implementations
provide several new preliminary results regarding different aspects of
(distributed) side-by-side programming.expand
[22]
Lazy scheduling of processing and transmission tasks in collaborative
systems
Collaborative tools and technologies I
/
Junuzovic, Sasa
/
Dewan, Prasun
GROUP'09: International Conference on Supporting Group Work
2009-05-10
p.159-168
Keywords: analytical model, collaboration architecture, local and remote response
times, scheduling policy, simulations
© Copyright 2009 ACM
Summary: A collaborative system must perform both processing and transmission tasks.
We present a policy for scheduling these tasks on a single core that is
inspired by studies of human perception and the real-time systems field. It
lazily delays the execution of the processing task if the delay cannot be
noticed by humans. We use simulations and formal analysis to compare this
policy with previous scheduling policies. We show that the policy trades-off an
unnoticeable degradation in performance of some users for a much larger
noticeable improvement in performance of others.
[23]
Semi-Synchronous Conflict Detection and Resolution in Asynchronous Software
Development
/
Dewan, Prasun
/
Hegde, Rajesh
Proceedings of the Tenth European Conference on Computer-Supported
Cooperative Work
2007-09-24
p.159-178
© Copyright 2007 Springer
Summary: Previous work has found that (a) when software is developed collaboratively,
concurrent accesses to related pieces of code are made, and (b) when these
accesses are coordinated asynchronously through a version control system, they
result in increased defects because of conflicting concurrent changes. Previous
findings also show that distance collaboration aggravates software-development
problems and radical colocation reduces them. These results motivate a
semi-synchronous distributed computer-supported model that allows programmers
creating code asynchronously to synchronously collaborate with each other to
detect and resolve potentially conflicting tasks before they have completed the
tasks. We describe, illustrate, and evaluate a new model designed to meet these
requirements. Our results show that the model can catch conflicts at editing
time that would be expensive to manage at later times.
[24]
Towards a Universal Toolkit Model for Structures
/
Dewan, Prasun
2007 Engineering for Human-Computer Interaction
2007-03-22
p.393-412
Keywords: Tree; table; form; tab; browser; hashtable; vector; sequence; toolkit; model
view controller; user interface management system
© Copyright 2008 IFIP
Summary: Model-based toolkit widgets have the potential for (i) increasing automation
and (ii) making it easy to substitute a user-interface with another one.
Current toolkits, however, have focused only on the automation benefit as they
do not allow different kinds of widgets to share a common model. Inspired by
programming languages, operating systems and database systems that support a
single data structure, we present here an interface that can serve as a model
for not only the homogeneous model-based structured-widgets identified so far
-- tables and trees -- but also several heterogeneous structured-widgets such
as forms, tabbed panes, and multi-level browsers. We identify an architecture
that allows this model to be added to an existing toolkit by automatically
creating adapters between it and existing widget-specific models. We present
several full examples to illustrate how such a model can increase both the
automation and substitutability of the toolkit. We show that our approach
retains model purity and, in comparison to current toolkits, does not increase
the effort to create existing model-aware widgets.
[25]
Response times in N-user replicated, centralized, and proximity-based hybrid
collaboration architectures
Performance & architecture
/
Junuzovic, Sasa
/
Dewan, Prasun
Proceedings of ACM CSCW'06 Conference on Computer-Supported Cooperative Work
2006-11-04
p.129-138
© Copyright 2006 ACM
Summary: We evaluate response times, in N-user collaborations, of the popular
centralized (client-server) and replicated (peer-to-peer) architectures, and a
hybrid architecture in which each replica serves a cluster of nearby clients.
Our work consists of definitions of aspects of these architectures that have
previously been unspecified but must be resolved for the analysis, a formal
evaluation model, and a set of experiments. The experiments are used to define
the parameters of and validate the formal analysis. In addition, they compare
the performances, under the three architectures, of existing data-centric,
logic-centric, and stateless shared components. We show that under realistic
conditions, a small number of users, high intra-cluster network delays, and
large output processing and transmission costs favor the replicated
architecture, large input size favors the centralized architecture, high
inter-cluster network delays favor the hybrid architecture, and high input
processing and transmission costs, low think times, asymmetric processing
powers, and logic-intensive applications favor both the centralized and hybrid
architectures. We use our validated formal model to make useful predictions
about the performance of the three kinds of architectures under realistic
scenarios we could not create in lab experiments.