3 Focus
To thoroughly understand the space of notional machines proposed in the education literature.
To analyze these notional machines through the lenses of both formal semantics and linguistic depth and diversity: e.g., do the notional machines scale when the language grows larger, and do they even apply under different paradigms of languages?
To generate a “feature space” of these models, both to classify the existing literature and to identify weaknesses in it.
To distill research problems out of the above studies.
Many of the proposed means of teaching recursion are “mechanical”, and therefore implicitly or explicitly employ some kind of semantic model.
For us, at least, recursion is so central to programming that we couldn’t really imagine models that don’t lead up to and provide a useful account of it.
Finally, in terms of under-explored topics, the knowledge about recursion that is embedded deeply in the functional programming community has not yet made it into mainstream programming education; in return, there may be problem types that are in the education literature that have not been explored enough in functional programming because they’re a poor fit. Therefore, there are, again, opportunities in both directions.