https://www.dagstuhl.de/19281
07. – 12. Juli 2019, Dagstuhl-Seminar 19281
Notional Machines and Programming Language Semantics in Education
Organisatoren
Mark J. Guzdial (University of Michigan – Ann Arbor, US)
Shriram Krishnamurthi (Brown University – Providence, US)
Juha Sorva (Aalto University, FI)
Jan Vahrenhold (Universität Münster, DE)
Auskunft zu diesem Dagstuhl-Seminar erteilt
Dokumente
Dagstuhl Report, Volume 9, Issue 7
Motivationstext
Teilnehmerliste
Dagstuhl's Impact: Dokumente verfügbar
Press Room
- Dagstuhl trip report: learning and teaching programming language semantics
Blog entry by Andy J. Ko in Bits and Behaviour on Medium, July 12, 2019 - Tag Archive: #dagstuhlnm
Live blog entries by Felienne, July 8 - 12, 2018 - What Help Should We Provide to Students Learning to Program?
Blog entry by Mark Guzdial in BLOG@CACM on Communications of the ACM, July 14, 2019
Summary
A formal semantics is often intended as a tool to comprehend the behavior of a language or other system. Semanticists assume, for instance, that programmers can use a semantics to understand how a particular program will behave without being forced to resort to deconstructing the output from a black-box evaluator. Indeed, different semantic models vary in what aspects of program behavior they highlight and suppress.
Every semantics has an intended audience. Formal semantics typically assume a readership with high computing or mathematical sophistication. These therefore make them inappropriate for students new to computing. What forms of description of behavior would be useful to them? In computing education, the term notional machine is often used to refer to a behavior description that is accessibble to beginners.
Our meeting therefore focused on what we know, and what we need to learn, about notional machines. In particular, we studied and discussed:
- Different formulations of notional machines for a variety of languages.
- The distinction between a general description of behavior, independent of a specific program, and the explication of behavior of a specific program. We argued for the value of having both the general and the specific, since learners might need to shift between the two.
- The different forms that a notional machine can take, and their styles: [MARK fill in]
- The many analogies employed in notional machines, with their respective strengths and weaknesses.
- The different forms of theories that apply to generating and understanding notional machines, including cognitive and social.
- Analogies to notional machines in other domains, from models in physics to rulebooks in board games.
We accomplished most of our stated goals: to bring together the semantics and education communities (though with much greater representation from the latter than the former); to create tutorials to educate each on the knowledge and methods of the other; and to formulate interesting examples. While there did not appear to be many long-standing "open questions", and there was not enough time to engage in editing Wikipedia, groups did organized community-wide activities (such as surveys to be conducted at upcoming conferences) and large banks of research questions (which are concrete and valuable outcomes that we had not anticipated). In sum, we believe the seminar successfully accomplished its overall stated goals.


Classification
- Programming Languages / Compiler
- Semantics / Formal Methods
- Society / Human-computer Interaction
Keywords
- Formal semantics
- Misconceptions
- Notional machines
- Computing education research