Show simple item record

Purpose-first Programming: A Programming Learning Approach for Learners Who Care Most About What Code Achieves

dc.contributor.authorCunningham, Kathryn
dc.date.accessioned2021-06-08T23:07:49Z
dc.date.available2021-06-08T23:07:49Z
dc.date.issued2020
dc.date.submitted2020
dc.identifier.urihttps://hdl.handle.net/2027.42/167912
dc.description.abstractIntroductory programming courses typically focus on building generalizable programming knowledge by focusing on a language’s syntax and semantics. Assignments often involve “code tracing” problems, where students perform close tracking of code’s execution, typically in the context of ‘toy’ problems. “Reading-first” approaches propose that code tracing should be taught early to novice programmers, even before they have the opportunity to write code. However, many learners do not perform code tracing, even in situations when it is helpful for other students. To learn more, I talked to novice programmers about their decisions to trace and not trace code. Through these studies, I identified both cognitive and affective factors related to learners’ motivation to trace. My research found that tracing activities can create a “perfect storm” for discouraging learners from completing them: they require high cognitive load, leading to a low expectation of success, while also being disconnected from meaningful code, resulting in low value for the task. These findings suggest that a new learning approach, where novices quickly and easily create or understand useful code without the need for deep knowledge of semantics, may lead to higher engagement. Many learners may not care about exactly how a programming language works, but they do care about what code can achieve for them. I drew on cognitive science and theories of motivation to describe a “purpose-first” programming pedagogy that supports novices in learning common code patterns in a particular domain. I developed a proof-of-concept ”purpose-first” programming curriculum using this method and evaluated it with non-major novice programmers who had a variety of future goals. Participants were able to complete scaffolded code writing, debugging, and explanation activities in a new domain (web scraping with BeautifulSoup) after a half hour of instruction. An analysis of the participants’ thinkalouds provided evidence the learners were thinking in terms of the patterns and goals that they learned with in the purpose-first curriculum. Overall, I found that these novices were motivated to continue learning with purpose-first programming. I found that these novices felt successful during purpose-first programming because they could understand and complete tasks. Novices perceived a lower cognitive load on purpose-first programming activities than many other typical learning activities, because, in their view, plans helped them apply knowledge and focus only on the most relevant information. Participants felt that what they were learning was applicable, and that the curriculum provided conceptual, high-level knowledge. For some participants, particularly conversational programmers who didn’t plan to program in their careers, this information was sufficient for their needs. Other participants felt that purpose-first programming was a starting point, from which they could move forward to gain a deeper understanding of how code works.
dc.language.isoen_US
dc.subjectpurpose-first programming
dc.subjectintroductory programming education
dc.titlePurpose-first Programming: A Programming Learning Approach for Learners Who Care Most About What Code Achieves
dc.typeThesis
dc.description.thesisdegreenamePhDen_US
dc.description.thesisdegreedisciplineInformation
dc.description.thesisdegreegrantorUniversity of Michigan, Horace H. Rackham School of Graduate Studies
dc.contributor.committeememberEricson, Barbara Jane
dc.contributor.committeememberGuzdial, Mark Joseph
dc.contributor.committeememberQuintana, Christopher Lee
dc.contributor.committeememberTeasley, Stephanie D
dc.subject.hlbsecondlevelComputer Science
dc.subject.hlbsecondlevelEducation
dc.subject.hlbtoplevelEngineering
dc.subject.hlbtoplevelSocial Sciences
dc.description.bitstreamurlhttp://deepblue.lib.umich.edu/bitstream/2027.42/167912/1/kicunn_1.pdf
dc.identifier.doihttps://dx.doi.org/10.7302/1339
dc.identifier.orcid0000-0002-9702-2796
dc.identifier.name-orcidCunningham, Kathryn; 0000-0002-9702-2796en_US
dc.working.doi10.7302/1339en
dc.owningcollnameDissertations and Theses (Ph.D. and Master's)


Files in this item

Show simple item record

Remediation of Harmful Language

The University of Michigan Library aims to describe library materials in a way that respects the people and communities who create, use, and are represented in our collections. Report harmful or offensive language in catalog records, finding aids, or elsewhere in our collections anonymously through our metadata feedback form. More information at Remediation of Harmful Language.

Accessibility

If you are unable to use this file in its current format, please select the Contact Us link and we can modify it to make it more accessible to you.