An age-wave is upon us where many older adults are reaching retirement. Technically experienced older adults have skills that could be directly applied to free/open source software (FOSS) communities, such as project management, programming, and/or knowledge of a rapidly growing end-user population. FOSS is a widely popular, low-cost way to...
End-user programmers often struggle to create programs that run quickly and effectively, which can be a major deterrent in completing their tasks as desired. Current research has primarily focused on catching user mistakes, such as errors or misused formulas. However, end users deal with issues other than just correctness. In...
How can end users efficiently influence the predictions that machine learning systems make on their behalf? Traditional systems rely on users to provide examples of how they want the learning system to behave, but this is not always practical for the user, nor efficient for the learning system. This dissertation...
The design of programming tools is slow and costly. To ease this process, we have developed a design pattern catalog aimed at providing guidance about how to design tools for developers. This guidance is grounded in Information Foraging Theory (IFT), which empirical studies have shown to be useful for understanding...
3D volume segmentation is a fundamental process in many scientific and medical applications. Producing accurate segmentations, in an efficient way, is challenging, in part due to low imaging data quality (e.g., noise and low image resolution), and ambiguity in the data that can only be resolved with higher-level knowledge of...
To users, mobile touchscreen devices have appealing characteristics; among these characteristics is intuitiveness, which leads to mobile devices being used almost everywhere by almost everyone to accomplish almost anything. This statement, to some degree, holds for children too. Despite touchscreen devices’ intuitiveness and popularity, we don’t know much about how...
Most software systems today do not support cognitive diversity. Further, because of differences in problem-solving styles that cluster by gender, software that poorly supports cognitive diversity can also embed gender biases. To help software professionals fix gender bias “bugs” related to people’s problem-solving styles for information processing and learning of...