We believe that writing computer programs is the fundamental act of computer science, and that programming languages are therefore our fundamental tool.
We seek a deeper understanding of this fundamental tool and how it should be used, and we seek to apply this understanding to the program design process, as well as to novel applications.
We take a multi-faceted approach to the study of programming languages and programming methodology, incorporating elements of design, mathematics, experimental science, and engineering.
We conduct research on all aspects of programming, including:
- the development of small and large programs
- the design, implementation, and analysis of programming languages
- programming environment tools
Our research program is intertwined with our mission to train undergraduates and graduate students. We routinely exploit research results for our undergraduate courses, and we routinely find research challenges in our teaching.