Thomas D. LaToza

ORCID: 0000-0002-9564-3337
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Software Engineering Research
  • Open Source Software Innovations
  • Software Engineering Techniques and Practices
  • Mobile Crowdsensing and Crowdsourcing
  • Software Testing and Debugging Techniques
  • Advanced Software Engineering Methodologies
  • Software Reliability and Analysis Research
  • Software System Performance and Reliability
  • Artificial Intelligence in Healthcare and Education
  • Usability and User Interface Design
  • Scientific Computing and Data Management
  • Advanced Malware Detection Techniques
  • Spreadsheets and End-User Computing
  • Innovative Teaching and Learning Methods
  • Model-Driven Software Engineering Techniques
  • Explainable Artificial Intelligence (XAI)
  • COVID-19 diagnosis using AI
  • Educational Games and Gamification
  • Topic Modeling
  • Teaching and Learning Programming
  • FinTech, Crowdfunding, Digital Finance
  • Collaboration in agile enterprises
  • Wikis in Education and Collaboration
  • Digital Transformation in Industry
  • Research Data Management Practices

George Mason University
2015-2024

Software (Spain)
2022

Software (Germany)
2022

University of Fairfax
2019

Irvine University
2015

University of California, Irvine
2013-2015

UC Irvine Health
2014

Carnegie Mellon University
2006-2012

To understand developers' typical tools, activities, and practices their satisfaction with each, we conducted two surveys eleven interviews. We found that many problems arose because developers were forced to invest great effort recovering implicit knowledge by exploring code interrupting teammates this was only saved in memory. Contrary expectations email IM prevent expensive task switches caused face-to-face interruptions, communication enjoys advantages. documentation makes understanding...

10.1145/1134285.1134355 article EN Proceedings of the 44th International Conference on Software Engineering 2006-05-28

Over the past decade, predictive language modeling for code has proven to be a valuable tool enabling new forms of automation developers. More recently, we have seen ad-vent general purpose "large models", based on neural transformer architectures, that been trained massive datasets human written text, which includes and natural language. However, despite demonstrated representational power such models, interacting with them historically constrained specific task settings, limiting their...

10.1109/icstw58534.2023.00078 preprint EN 2023-04-01

Almost surreptitiously, crowdsourcing has entered software engineering practice. In-house development, contracting, and outsourcing still dominate, but many development projects use crowdsourcing-for example, to squash bugs, test software, or gather alternative UI designs. Although the overall impact been mundane so far, could lead fundamental, disruptive changes in how is developed. Various models have applied development. Such offer exciting opportunities, several challenges must be met...

10.1109/ms.2016.12 article EN IEEE Software 2015-12-29

A reachability question is a search across feasible paths through program for target statements matching criteria. In three separate studies, we found that questions are common and often time consuming to answer. the first study, observed 13 developers in lab half of bugs inserted were associated with questions. second 460 professional software reported asking may be answered using more than 9 times day, 82% rated one or as at least somewhat hard third 17 field 10 longest activities These...

10.1145/1806799.1806829 article EN 2010-05-01

Human-centered methods can help researchers better understand and meet programmers' needs. Because programming is a human activity, many of these be used without change. However, some programmer needs require new methods, which also applied to domains other than software engineering. This article features five Web extras. The video at https://youtu.be/4PH9-qi-yTQ demonstrates Azurite, an Eclipse plug-in with selective undo feature that lets programmers more easily backtrack their code....

10.1109/mc.2016.200 article EN Computer 2016-07-01

Over the past decade, predictive language modeling for code has proven to be a valuable tool enabling new forms of automation developers. More recently, we have seen advent general purpose "large models", based on neural transformer architectures, that been trained massive datasets human written text spanning and natural language. However, despite demonstrated representational power such models, interacting with them historically constrained specific task settings, limiting their...

10.48550/arxiv.2302.03287 preprint EN other-oa arXiv (Cornell University) 2023-01-01

To build new tools and programming languages that make it easier for professional software developers to create, debug, understand code, is helpful better the questions ask during coding activities. We surveyed asked them list hard-to-answer they had recently about code. 179 respondents reported 371 questions. then clustered these into 21 categories 94 distinct The most frequently dealt with intent rationale -- what does this code do, intended why was done way? Many described very specific...

10.1145/1937117.1937125 article EN Evaluation and Usability of Programming Languages and Tools 2010-10-17

Little is known about how developers think design during code modification tasks or experienced developers' knowledge helps them work more effectively. We performed a lab study in which thirteen worked for 3 hours under-standing the of 54 KLOC open source application. Par-ticipants had from 0 to 10.5 years industry experience and were grouped into three "experts" ten "novices." observed that participants spent their time seeking, learning, critiquing, explain-ing, proposing, implementing...

10.1145/1287624.1287675 article EN 2007-09-07

Microtask crowdsourcing organizes complex work into workflows, decomposing large tasks small, relatively independent microtasks. Applied to software development, this model might increase participation in open source development by lowering the barriers contribu-tion and dramatically decrease time market increasing parallelism work. To explore idea, we have developed an approach programming Work is coordinated through tracking changes a graph of artifacts, generating appropriate microtasks...

10.1145/2642918.2647349 article EN 2014-10-01

Code completion menus have replaced standalone API browsers for most developers because they are more tightly integrated into the development workflow. Refinements to code menu that incorporate additional sources of information similarly been shown be valuable, even relative counterparts offering similar functionality. In this paper, we describe active completion, an architecture allows library introduce interactive and highly-specialized generation interfaces, called palettes, directly...

10.1109/icse.2012.6227133 article EN 2013 35th International Conference on Software Engineering (ICSE) 2012-06-01

Developers navigate and reason about call graphs throughout investigation debugging activities. This is often difficult: developers can spend tens of minutes answering a single question, get lost disoriented, erroneously make assumptions, causing bugs. To address these problems, we designed new form interactive graph visualization - REACHER. Instead leaving to manually traverse the graph, REACHER lets search along control flow. The encodes number properties that help answer questions...

10.1109/vlhcc.2011.6070388 article EN 2011-09-01

Code completion menus have replaced standalone API browsers for most developers because they are more tightly integrated into the development workflow. Refinements to code menu that incorporate additional sources of information similarly been shown be valuable, even relative counterparts offering similar functionality. In this paper, we describe active completion, an architecture allows library introduce interactive and highly-specialized generation interfaces, called palettes, directly...

10.5555/2337223.2337324 article EN International Conference on Software Engineering 2012-06-02

Background: The increasing adoption of AI assistants in programming has led to numerous studies exploring their benefits. While developers consistently report significant productivity gains from these tools, empirical measurements often show more modest improvements. prior research documented self-reported experiences with AI-assisted little no work been done understand usage patterns and the actual cognitive load imposed practice. Objective: In this exploratory study, we aim investigate...

10.48550/arxiv.2501.02684 preprint EN arXiv (Cornell University) 2025-01-05

Effective debugging is a crucial aspect of software development, demanding problem-solving skills, expertise, and appropriate tools. Although previous research has studied expert developers' strategies, the specific factors influencing strategy choice in complex scenarios remain underexplored. To investigate these contextual factors, we conducted two studies. First, surveyed 35 developers to identify experiences with challenging problems complexities. Second, held semi-structured interviews...

10.48550/arxiv.2501.11792 preprint EN arXiv (Cornell University) 2025-01-20

Whiteboards serve an important role in supporting informal design, providing a fluid and flexible medium for collaborative design. Interactive whiteboards offer the potential enhanced support manipulating content, managing sketches, distributed work, but little is known about how this affects practice of To understand opportunities challenges, we first conducted literature review, identifying 14 behaviors that occur during We then designed interactive whiteboard system to all these deployed...

10.1145/2556288.2557411 article EN 2014-04-26

Crowd development is a process designed for transient workers of varying skill. Work organized into microtasks, which are short, self-descriptive, and modular. Microtasks recursively spawn microtasks matched to workers, who accrue points reflecting value created. might help reduce time market software costs, increase programmer productivity, make programming more fun.

10.1109/chase.2013.6614737 article EN 2013-05-01

One way to teach programming problem solving is explicit, step-by-step strategies. While prior work has shown these be effective in controlled settings, there been little investigating their efficacy classrooms. We conducted a 5-week case study with 17 students aged 15-18, students' sentiments toward two strategies for debugging and code reuse, use of scaffolding execute strategies, associations between strategy success at independently writing programs class. found that while reported the...

10.1145/3287324.3287371 article EN 2019-02-22

10.1007/s10664-020-09810-1 article EN Empirical Software Engineering 2020-03-07

Crowdsourcing, which leverages the intelligence and contributions of a large group people to achieve specific goal, is disrupting business models work practices. Because crowdsourcing approaches could have far-reaching impact on future software development, this theme issue explores various ways developers managers can benefit from these new opportunities. The Web Extra https://youtu.be/Z_8vWQjU7iY an audio podcast introduction for engineering.

10.1109/ms.2017.52 article EN IEEE Software 2017-03-01

Whiteboard sketches play a crucial role in software development, helping to support groups of designers reasoning about design problem at hand. However, little is known these and how they 'in the moment', particularly terms relationships among sketches, visual syntactic elements within activities. To address this gap, we analyzed 14 hours activity by eight pairs professional designers, manually coding over 4000 events capturing introduction into focus transitions between Our findings...

10.1109/tse.2014.2362924 article EN publisher-specific-oa IEEE Transactions on Software Engineering 2014-10-14

Programming today regularly involves searching for source code online, whether through a general search engine such as Google or specialized SearchCode, Ohloh, GitHub. Searching typically is an iterative process, with developers adjusting the keywords they use based on results of previous query. However, in this manner not ideal, because just using places limits what can express well overall interaction that required. Based observation from one query create con-text which next formulated, we...

10.1109/ase.2015.51 article EN 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE) 2015-11-01

One form of crowdsourcing is the competition, which poses an open call for competing solutions. Commercial systems such as TopCoder have begun to explore application competitions software development, but important limitations diminishing potential benefits drawn from crowd. In particular, they employ a model independent work that ignores opportunity designs arise ideas multiple designers. this paper, we examine design incorporate recombination, in designers are given others and encouraged...

10.5555/2818754.2818823 article EN 2015-05-16

A key goal of software engineering research is to improve the environments, tools, languages, and techniques programmers use efficiently create quality software. Successfully designing these tools demonstrating their effectiveness involves engaging with tool users—software engineers. Researchers often want conduct user studies engineers collect direct evidence. However, running can be difficult, researchers may lack solution strategies overcome barriers, so they avoid studies. To understand...

10.1145/3587157 article EN ACM Transactions on Software Engineering and Methodology 2023-03-14

One form of crowdsourcing is the competition, which poses an open call for competing solutions. Commercial systems such as TopCoder have begun to explore application competitions software development, but important limitations diminishing potential benefits drawn from crowd. In particular, they employ a model independent work that ignores opportunity designs arise ideas multiple designers. this paper, we examine design incorporate recombination, in designers are given others and encouraged...

10.1109/icse.2015.72 article EN 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering 2015-05-01
Coming Soon ...