Learning Analytics and other branches of Educational Research such as Computing Education Research (CER) implicitly assume that students, especially college students, have no barriers to access learning platforms or software packages. This assumption may be attributed to such pervasive beliefs such as "everyone has a device", or "everyone can access...
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...
Computer science is, at its core, about solving problems. The "Carry out the Plan" portion of problem solving is often examined and emphasized in CS 1 and CS 2, forgetting to emphasize the other important aspects of the problem solving process. This study focuses on the other problem-solving steps, which...
Geographical datasets are large, complex, and can be difficult for users to navigate and derive meaning from. These datasets, as well as the unique insights derived from them, provide tremendous opportunity for social change -- many of the global challenges humankind is currently facing can benefit from analytics or visualization...
Variability is an important and widely studied topic across domains such as version control, software product lines, and metaprogramming. This dissertation presents an investigation into the process of systematically adding variability to data structures and programs, leading to guidelines for variational data structures and implications for programs that create, manipulate,...
Mixed-initiative programming entails collaboration between a computer system, and a human to achieve some desired goal or set of goals. Often these goals change or are amended in real time during the course of program execution. As such, the plans these programs are based on must adapt and evolve to...
Society faces many complex management problems, particularly in the area of shared public resources such as ecosystems. Existing decision making processes are often guided by personal experience and political ideology rather than state-of-the-art scientific understanding. This dissertation envisions a future in which multiple stakeholders are provided with computational tools for...
Gender issues have recently received increased attention in human robot interaction (HRI). Because robots are becoming part of our homes and daily lives, it is important to understand how different groups of people use them. To the best of our knowledge, almost no research has been done that investigates gender...
A bad software development process leads to wasted effort and inferior products. In order to improve a software process, it must be first understood. In this work I focus on understanding software processes.
The first process we seek to understand is Continuous Integration (CI). CI systems automate the compilation, building,...
Software testing is a very important task during software development and it can be used to improve the quality and reliability of the software system. One potential way to reduce the cost and increase the efficiency of software testing is to generate test data automatically. Search-based approaches successfully generate unit...