Purpose-first Programming
Kathryn Irene Cunningham
Abstract
Open-access reader
Kathryn Irene Cunningham
Abstract
Open-access reader
Becoming "a programmer" is associated with gaining a deep understanding of programming language semantics. However, as more people learn to program for more reasons than creating software, their learning needs differ. In particular, end-user programmers and conversational programmers often care about code's purpose, but don't wish to engage with the low-level details of precisely how code executes. I propose the creation of scaffolding that allows these learners to interact with code in an authentic way, highlighting code's purpose while providing support that avoids the need for low-level tracing knowledge. This scaffolding builds on theories of programming plans.
OpenAlex reports 5 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Becoming "a programmer" is associated with gaining a deep understanding of programming language semantics. However, as more people learn to program for more reasons than creating software, their learning needs differ. In particular, end-user programmers and conversational programmers often care about code's purpose, but don't wish to engage with the low-level details of precisely how code executes. I propose the creation of scaffolding that allows these learners to interact with code in an authentic way, highlighting code's purpose while providing support that avoids the need for low-level tracing knowledge. This scaffolding builds on theories of programming plans.
Key concepts: Computer science, Programming language, Programmer, Code (set theory), Semantics (computer science), Tracing, Software engineering, Set (abstract data type)