EAGER: Semantics for Learning Functional Programming
Brown University, Providence RI
Investigators
Abstract
Programming is a rigorous and intellectually demanding activity. Programmers are expected to provide instructions to a black box device, whose behavior is very different from their own, to accomplish complex tasks. Even seasoned professionals can find this challenging, and beginners often struggle to do it. These problems are greatly amplified when a program has errors or produces incorrect output. A major obstacle is for the programmer to understand how the computer works at a level that is useful for expressing their needs and correcting their programs. The intellectual merits are to evaluate existing models of programming systems, and to define new ones that enable programmers to better understand the computer's execution. The project's broader significance and importance are to make effective programming more accessible to a much broader range of people, including those who intend to apply computing in other data-intensive domains. Concretely, the research examines the use of programming language semantics as explanatory tools for non-technical users. Existing semantics provide rich explanations of behavior, but are expressed in highly technical terms that require significant expertise to understand and use. Furthermore, they have not been tested through application to actual debugging tasks. Therefore, this work intends to open up investigation into the human factors aspects of programming language semantics, understanding how well they perform in different settings, and potentially defining new semantics forms that are better suited to a broad range of programmers. The work will specifically focus on functional programming with an eye towards its role in data science curricula, which are of value across a broad spectrum of disciplines.
View original record on NSF Award Search →