Towards explanation-oriented introductory programming — Julian Jabs

The research area of introductory programming mainly focuses on small scale exploratory studies, but there is a need for larger scale studies. Amen to that, of course!

Julian’s goal is to help language designers (with a prescriptive theory) to design introductory programming languages.

Proposal 1: we need to learn from explanation-oriented programming (EOP) by Erwig and Walkenshaw.

EOP observes that there are programs that produce unexpected results, and programs are sometimes used as means of communication means between people. The goal op EOP is to make explaining programs the goal of a program itself. So, not only calculating values, but also adding an explanation of how these values are calculated. A possible benefit of taking this as a starting point for languages is that it gets easier to understand them. An example:

The programming language here has an explanation statement in which a lesson maker can provide explanation.


This is sort of a coded way of PythonTutor, which I blogged about before.
Proposal 2 importing ideas from narratology

Narratology is about stories, their narrative, story, plot and players. an inspiration is by Blumenkrants et al 2006, who tried to visualize algorithms as stories. Combining this to proposal 1, we could see the plot could be the designer program, while the program itself is a story. Cool ideas!