August 23 – 28 , 2020, Dagstuhl Seminar 20351

CANCELLED Theories of Programming

Due to the Covid-19 pandemic, this seminar was cancelled. A related Dagstuhl Seminar was scheduled to June 6 – 10 , 2022 – Seminar 22231.


Amy Ko (University of Washington – Seattle, US)
Thomas D. LaToza (George Mason University – Fairfax, US)
Anita Sarma (Oregon State University – Corvallis, US)
David C. Shepherd (College of Humanities & Sciences, US)
Dag Sjøberg (University of Oslo, NO)

For support, please contact

Dagstuhl Service Team


Mature scientific disciplines are characterized by their theories, synthesizing what is known about phenomena into forms, which generate falsifiable predictions about the world. In computer science, the role of synthesizing ideas has largely been through formalisms that describe how programs compute. However, just as important are scientific theories about how programmers write these programs. For example, software engineering research has increasingly begun gathering data, through observations, surveys, interviews, and analysis of artifacts, about the nature of programming work and the challenges developers face, and evaluating novel programming tools through controlled experiments with software developers. Computer science education research has done similar work, but for people with different levels of experience and ages learning to write programs. But data from such empirical studies is often left isolated, rather than combined into useful theories which explain all of the empirical results. This lack of theory makes it harder to predict in which contexts programming languages, tools, and pedagogy will actually help people successfully write and learn to create software.

We need scientific theories that synthesize what is believed to be true about programming and offer falsifiable predictions. Whether or not a theory is ultimately found to be consistent with evidence or discarded, theories offer a clear statement about our current understanding, helping us in prioritizing studies, generalizing study results from individual empirical results to more general understanding of phenomena, and offering the ability to design tools in ways that are consistent with current knowledge.

This Dagstuhl Seminar will explore the creation and synthesis of scientific theories, which describe the relationship between developers and code within programming activities. It will bring together researchers from software engineering, human-computer interaction, programming languages, and computer science education to exchange ideas about potential theories of programming. We expect theories to arise from many sources: untested but strongly-held beliefs, anecdotal observations, and assumptions deeply embedded in the design of languages and tools, as well as from review of empirical evidence on programming and application of existing theories from psychology and related areas. Our aim is to bridge this gulf: formulating deeply-held beliefs into theories which are empirically testable and synthesizing empirical findings in ways that make predictions about programming tools and languages.

To achieve this aim, the seminar has three specific goals. 1) Bring together researchers with diverse expertise to find shared understanding. 2) Create a body of theories, which make testable predictions about the effects of programming tools, languages, and pedagogy on developer behavior in specific contexts. 3) Propose future activities, which can advance the use of theories, including identifying studies to conduct to test theories and ways to use theories to communicate research findings to industry.

During this seminar, a few short talks will first review the nature, creation, and use of theories as well as existing evidence about developer behavior during programming activities. The main activity of the seminar will be work in small groups which will begin to sketch new theories of programming.

Motivation text license
  Creative Commons BY 3.0 DE
  Amy J. Ko, Thomas D. LaToza, Anita Sarma, David C. Shepherd, and Dag Sjøberg

Related Dagstuhl Seminar


  • Society / Human-computer Interaction
  • Software Engineering


  • Developer tools
  • Debugging
  • Reuse
  • Code navigation


In the series Dagstuhl Reports each Dagstuhl Seminar and Dagstuhl Perspectives Workshop is documented. The seminar organizers, in cooperation with the collector, prepare a report that includes contributions from the participants' talks together with a summary of the seminar.


Download overview leaflet (PDF).

Dagstuhl's Impact

Please inform us when a publication was published as a result from your seminar. These publications are listed in the category Dagstuhl's Impact and are presented on a special shelf on the ground floor of the library.


Furthermore, a comprehensive peer-reviewed collection of research papers can be published in the series Dagstuhl Follow-Ups.