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...
Software systems are becoming an essential part of the lives of both individuals and organizations, and as a consequence, these systems are getting bigger and more complex. Because of this, the tasks of maintaining the quality in these complex software systems are becoming increasingly difficult. Furthermore, these systems are subject...
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...
When contributing to a software system, developers need to understand the rationale for previous design decisions so that they can adhere to the system’s design. Not doing so can lead to erosion of the overall design quality of the system. However, discussions embedded in a large volume of communication on...
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...
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...