Our research
Content type
+
Downloads (421)
+
Events (355)
 
Groups (147)
+
News (2467)
 
People (825)
 
Projects (1015)
+
Publications (11430)
+
Videos (4861)
Labs
Research areas
Algorithms and theory47205 (208)
Communication and collaboration47188 (177)
Computational linguistics47189 (143)
Computational sciences47190 (159)
Computer systems and networking47191 (599)
Computer vision208594 (8)
Data mining and data management208595 (3)
Economics and computation47192 (81)
Education47193 (71)
Gaming47194 (63)
Graphics and multimedia47195 (178)
Hardware and devices47196 (173)
Health and well-being47197 (62)
Human-computer interaction47198 (715)
Machine learning and intelligence47200 (597)
Mobile computing208596 (7)
Quantum computing208597 (3)
Search, information retrieval, and knowledge management47199 (561)
Security and privacy47202 (218)
Social media208598 (5)
Social sciences47203 (219)
Software development, programming principles, tools, and languages47204 (495)
Speech recognition, synthesis, and dialog systems208599 (12)
Technology for emerging markets208600 (22)
1–25 of 495
Sort
Show 25 | 50 | 100
1234567Next 
Aditya V. Nori, Chung-Kil Hur, Sriram K. Rajamani, and Selva Samuel
We present a new Markov Chain Monte Carlo (MCMC) sampling algorithm for probabilistic programs. Our approach and tool, called R2, has the unique feature of employing program analysis in order to improve the efficiency of MCMC sampling. Given an input program P, R2 propagates observations in P backwards to obtain a semantically equivalent program P0 in which every probabilistic assignment is immediately followed by an observe statement. Inference is performed by a suitably modified version of the...
Publication details
Date: 1 July 2014
Type: Inproceeding
Publisher: AAAI
Lenin Ravindranath, Sharad Agarwal, Jitu Padhye, and Chris Riederer
Generations of computer programmers are taught to prefetch network objects in computer science classes. In practice, prefetching can be harmful to the user's wallet when she is on a limited or pay-per-byte cellular data plan. Many popular, professionally-written smartphone apps today prefetch large amounts of network data that the typical user may never use. We present Procrastinator, which automatically decides when to fetch each network object that an app requests. This decision is made based on whether...
Publication details
Date: 16 June 2014
Type: Proceedings
Publisher: ACM International Conference on Mobile Systems, Applications, and Services
Andrew Begel, Thomas Fritz, Sebastian Mueller, Serap Yigit-Elliott, and Manuela Zueger
Software developers make programming mistakes that cause serious bugs for their customers. Existing work to detect problematic software focuses mainly on post hoc identification of correlations between bug fixes and code. We propose a new approach to address this problem — detect when software developers are experiencing difficulty while they work on their programming tasks, and stop them before they can introduce bugs into the code. In this paper, we investigate a novel approach to classify the...
Publication details
Date: 4 June 2014
Type: Inproceeding
Publisher: International Conference on Software Engineering
Adrian Sampson, Pavel Panchekha, Todd Mytkowicz, Kathryn S. McKinley, Dan Grossman, and Luis Ceze
Traditional assertions express correctness properties that must hold on every program execution. However, many applications have probabilistic outcomes and consequently their correctness properties are also probabilistic (e.g., they identify faces in images, consume sensor data, or run on unreliable hardware). Traditional assertions do not capture these correctness properties. This paper proposes that programmers express probabilistic correctness properties with probabilistic assertions and describes a new...
Publication details
Date: 1 June 2014
Type: Inproceeding
Publisher: Programming Language Design and Implementation (PLDI)
Christian Bird, Venkatesh-Prasad Ranganath, Thomas Zimmermann, Nachiappan Nagappan, and Andreas Zeller
Reliability of software depends not only on intrinsic factors such as its code properties, but also on extrinsic factors—that is, the properties of the environment it operates in. In an empirical study of more than 200,000 Windows users, we found that the reliability of individual applications is related to whether and which other applications are installed: While games and file-sharing applications tend to decrease the reliability of other applications, security applications tend to increase it....
Publication details
Date: 1 June 2014
Type: Inproceeding
Publisher: ACM
Michael Hilton, Arpit Christi, Danny Dig, Michal Moskal, Sebastian Burckhardt, and Nikolai Tillmann
Mobile cloud computing can greatly enrich the capabilities of today’s pervasive mobile devices. Storing data on the cloud can enable features such as automatic backup, seamless transition between multiple devices, and multiuser support for existing apps. However, the process of converting local into cloud data types requires high expertise, is difficult, and time-consuming. Refactoring techniques can greatly simplify this process. In this paper we present a formative study where we analyzed and...
Publication details
Date: 1 June 2014
Type: Inproceeding
Nikolai Tillmann, Judith Bishop, R. Nigel Horspool, Daniel Perelman, and Tao Xie
Learning to code can be made more effective and sustainable if it is perceived as fun by the learner. Code Hunt uses puzzles that play- ers have to explore by means of clues presented as test cases. Play- ers iteratively modify their code to match the functional behaviour of secret solutions. This way of learning to code is very different to learning from a specification. It is essentially re-engineering from test cases. Code Hunt is based on the test/clue generation of Pex, a white-box test generation...
Publication details
Date: 1 June 2014
Type: Article
Publisher: ACM ICSE Workshop on Seach Based Software Testing 2014
Chung-Kil Hur, Aditya V. Nori, Sriram K. Rajamani, and Selva Samuel
Probabilistic programs use familiar notation of programming languages to specify probabilistic models. Suppose we are interested in estimating the distribution or expectation of a return expression r of a probabilistic program P. We are interested in slicing the probabilistic program P and obtain a simpler program SLI(P) which retains only those parts of P that are relevant to estimating r, and elides those parts P that are not relevant to estimating r. We desire that the SLI transformation be both correct...
Publication details
Date: 1 June 2014
Type: Inproceeding
Publisher: ACM
Emerson Murphy-Hill, Thomas Zimmermann, and Nachiappan Nagappan
Video games make up an important part of the software industry, yet the software engineering community rarely studies video games. This imbalance is a problem if video game development differs from general software development, as some game experts suggest. In this paper we describe a study with 14 interviewees and 364 survey respondents. The study elicited substantial differences between video game development and other software development. For example, in game development, “cowboy coders” are necessary...
Publication details
Date: 1 June 2014
Type: Inproceeding
Publisher: ACM
Kivanc Muslu, Christian Bird, Nachiappan Nagappan, and Jacek Czerwonka
In recent years, software development has started to transition from centralized version control systems (CVCSs) to decentralized (DVCSs) version control systems. Although CVCSs and DVCSs have been studied extensively, there has been very little research on the transition across these systems. This paper investigates the transition process, from the developer’s point of view, in a large company. The paper captures the transition reasons, barriers, and results through ten developer interviews, and...
Publication details
Date: 1 June 2014
Type: Inproceeding
Publisher: ACM
Shaun Phillips, Thomas Zimmermann, and Christian Bird
Build, creating software from source code, is a fundamental activity in software development. Build teams manage this process and ensure builds are produced reliably and efficiently. This paper presents an exploration into the nature of build teams—how they form, work, and relate to other teams—through three multi-method studies conducted at Microsoft. We also consider build team effectiveness and find that many challenges are social, not technical: role ambiguity, knowledge sharing, communication, trust,...
Publication details
Date: 1 June 2014
Type: Inproceeding
Publisher: ACM
Andrew Begel and Thomas Zimmermann
In this paper, we present the results from two surveys related to data science applied to software engineering. The first survey solicited questions that software engineers would like data scientists to investigate about software, about software processes and practices, and about software engineers. Our analyses resulted in a list of 145 questions grouped into 12 categories. The second survey asked a different pool of software engineers to rate these 145 questions and identify the most important ones to...
Publication details
Date: 1 June 2014
Type: Inproceeding
Publisher: ACM
Nikolai Tillmann, Michal Moskal, Peli de Halleux, Sebastian Burckhardt, Tom Ball, and Judith Bishop
We are experiencing a technology shift: Powerful and easy-to-use mobile devices like smartphones and tablets are becoming more prevalent than traditional PCs and laptops. Mobile devices are going to be the first and, in less developed countries, possibly the only computing devices which virtually all people will own and carry with them at all times. In this tutorial, participants will learn about developing software directly on their mobile devices. The tutorial is based on TouchDevelop, a modern software...
Publication details
Date: 1 June 2014
Type: Proceedings
Francesco Logozzo, Shuvendu Lahiri, Manuel Fahndrich, and Sam Blackshear
We introduce Verification Modulo Versions (VMV), a new static analysis technique for reducing the number of alarms reported by static verifiers while providing sound semantic guarantees. First, VMV extracts semantic environment conditions from a base program P. Environmental conditions can either be sufficient conditions (implying the safety of P) or necessary conditions (implied by the safety of P). Then, VMV instruments a new version of the program, P', with the inferred conditions. We prove that we can...
Publication details
Date: 1 June 2014
Type: Inproceeding
Publisher: ACM SIGPLAN
Varun Tulsian, Aditya Kanade, Rahul Kumar, Akash Lal, and Aditya V. Nori
With the growing complexity of modern day software, software model checking has become a critical technology for ensuring correctness of software. As is true with any promising technology, there are a number of tools for software model checking. However, their respective performance trade-offs are difficult to characterize accurately -- making it difficult for practitioners to select a suitable tool for the task at hand. This paper proposes a technique called MUX that addresses the problem of selecting the...
Publication details
Date: 1 May 2014
Type: Inproceeding
Publisher: ACM
Andrew D. Gordon, Thomas A. Henzinger, Aditya V. Nori, and Sriram K. Rajamani
Probabilistic programs are usual functional or imperative programs with two added constructs: (1) the ability to draw values at random from distributions, and (2) the ability to condition values of variables in a program via observations. Models from diverse application areas such as computer vision, coding theory, cryptographic protocols, biology and reliability analysis can be written as probabilistic programs. Probabilistic inference is the problem of computing an explicit representation of the...
Publication details
Date: 1 May 2014
Type: Inproceeding
Publisher: IEEE
Benjamin Livshits and Todd Mytkowicz
Crowd-sourcing is increasingly being used for providing responses to polls and surveys on a large scale. Companies such as SurveyMonkey and Instant.ly are attempting to make crowd-sourced surveys commonplace, by making it easy to pose survey questions using an easy-to-use UI and retrieve results with a relatively low latency by having dedicated crowds at their disposal. In this paper we argue that the ease with which polls can be created conceals an inherent difficulty: the survey maker does not know...
Publication details
Date: 15 April 2014
Type: Technical report
Number: MSR-TR-2014-50
Tolga Acar, Cedric Fournet, and Dan shumow
We present DKM, a distributed key management system with a cryptographically verified code base. DKM implements a new data protection API. It manages keys and policies on behalf of groups of users that share data. To ensure long-term protection, DKM supports cryptographic agility: algorithms, keys, and policies can evolve for protecting fresh data while preserving access to old data. DKM is written in C# and currently used by several large data center applications. To verify our design and implementation,...
Publication details
Date: 15 April 2014
Type: Technical report
Publisher: Microsoft Technical Report
Number: MSR-TR-2014-48
Tian Xiao, Jiaxing Zhang, Hucheng Zhou, Zhenyu Guo, Sean McDirmid, Wei Lin, Wenguang Chen, and Lidong Zhou
The simplicity of MapReduce introduces unique subtleties that cause hard-to-detect bugs; in particular, the unfixed order of reduce function input is a source of nondeterminism that is harmful if the reduce function is not commutative and sensitive to input order. Our extensive study of production MapReduce programs reveals interesting findings on commutativity, nondeterminism, and correctness. Although non-commutative reduce functions lead to five bugs in our sample of well-tested production programs, we...
Publication details
Date: 13 April 2014
Type: Inproceeding
Publisher: (ICSE SEIP) Software Engineering in Practice
Earl T. Barr and Mark Marron
Developers who set a breakpoint a few statements too late or who are trying to diagnose a subtle bug from a single core dump often wish for a time-traveling debugger. The ability to rewind time to see the exact sequence of statements and program values leading to an error has great intuitive appeal but, due to large time and space overheads, time-traveling debuggers have seen limited adoption. A managed runtime, such as the Java JVM or a JavaScript engine, has already paid much of the cost of providing...
Publication details
Date: 11 April 2014
Type: Technical report
Number: MSR-TR-2014-47
Mark Marron
Despite extensive research the construction of a precise and scalable static heap analysis for object-oriented programs remains an open problem. This paper argues that much of the difficulty is the result of empirically unvalidated and inappropriate design decisions. We examine three of them and determine that in practice: (1) strong updates are not necessary for obtaining precise results (2) fixed naming schemes for defining abstract memory locations are fundamentally limiting and are not required for...
Publication details
Date: 11 April 2014
Type: Technical report
Number: MSR-TR-2014-46
Rafael Auler, Edson Borin, Peli de Halleux, Michal Moskal, and Nikolai Tillmann
JavaScript has long outpaced its original target applications, being used not only for coding complex web clients, but also web servers, game development and even desktop applications. The most appealing advantage of moving applications to JavaScript is its capability to run the same code in a large number of different devices. It is not surprising that many compilers target JavaScript as an intermediate language. However, writing optimizations and analyses passes for a compiler that emits JavaScript is...
Publication details
Date: 1 April 2014
Type: Proceedings
Emerson Murphy-Hill, Thomas Zimmermann, and Nachiappan Nagappan
This technical report extends our prior work comparing video game development to software development. Here, we describe a short survey we conducted designed to assess whether software engineers who develop video games are more susceptible to motion sickness than those who develop other types of software. The results suggest that both groups are equally susceptible. Respondents who marked working in “user interface/experience” were significantly more likely to report being motion sick than the other...
Publication details
Date: 4 March 2014
Type: Technical report
Publisher: Microsoft Research
Number: MSR-TR-2014-24
Hucheng Zhou, Jian-Guang Lou, Hongyu Zhang, Haoxiang Lin, and Tingting Qin
Big data computing platform has evolved to be a multi-tenant service. The service quality matters because system failure or performance slowdown could adversely affect business and user experience. There is few study in literature on service quality issues in production big data computing platform. In this paper, we present an empirical study on the service quality issues in Cosmos, which is a company-wide multi-tenant big data computing platform in Microsoft, serving thousands of customers from hundreds...
Publication details
Date: 1 March 2014
Type: Technical report
Number: MSR-TR-2014-34
James Bornholt, Todd Mytkowicz, and Kathryn S. McKinley
Emerging applications increasingly use estimates such as sensor data (GPS), probabilistic models, machine learning, big data, and human data. Unfortunately, representing this uncertain data with discrete types (floats, integers, and booleans) encourages developers to pretend it is not probabilistic, which causes three types of uncertainty bugs. (1) Using estimates as facts ignores random error in estimates. (2) Computation compounds that error. (3) Boolean questions on probabilistic data induce false...
Publication details
Date: 1 March 2014
Type: Inproceeding
Publisher: Architectural Support for Programming Languages and Operating Systems (ASPLOS)
1–25 of 495
Sort
Show 25 | 50 | 100
1234567Next 
> Our research