Programming Paradigms and Beyond
Shriram Krishnamurthi, Kathi Fisler
The Cambridge Handbook of Computing Education Research, 2019
Programming is a central concern of computer science, so its medium---programming languages---should be a focus of computing education. Unfortunately, much of the community lacks useful tools to understand and organize languages, since the standard literature is mired in the ill-defined and even confusing concept of paradigms.
This chapter suggests the use of notional machines, i.e., human-accessible operational semantics, as a central organizing concept for understanding languages. It introduces or re-examines several concepts in programming and languages, especially state, whose complexity is understood well in the programming languages literature but is routinely overlooked in computing education. It identifies and provides context for numerous open problems worthy of research focus, some of which are new twists on long-running debates while others have not received the attention in the literature that they deserve.
The publisher requires us to say:
This document is a pre-publication draft from Fincher and Robins's The Cambridge Handbook of Computing Education Research, Cambridge, UK: Cambridge University Press. The published version has been further edited. The draft is made available under CUP's Green Open Access policy.
These papers may differ in formatting from the versions that appear in print. They are made available only to support the rapid dissemination of results; the printed versions, not these, should be considered definitive. The copyrights belong to their respective owners.