Learning to Program: The Development of Knowledge in Novice Programmers

aut.embargoNoen_NZ
aut.thirdpc.containsNoen_NZ
aut.thirdpc.permissionNoen_NZ
aut.thirdpc.removedNoen_NZ
dc.contributor.advisorWhalley, Jacqueline
dc.contributor.advisorPhilpott, Anne
dc.contributor.advisorMacDonell, Stephen
dc.contributor.authorKasto, Nadia
dc.date.accessioned2017-03-13T22:46:03Z
dc.date.available2017-03-13T22:46:03Z
dc.date.copyright2016
dc.date.created2017
dc.date.issued2016
dc.date.updated2017-03-13T03:00:36Z
dc.description.abstractThis thesis presents a longitudinal study of novice programmers during their first year learning to program at university. The purpose of this research was to gain a deeper understanding of the ways in which novice programmers learn to program with an emphasis on their cognitive development processes. The intended outcome was a better understanding of the learning processes of novice programmers, which should enhance the ability of educators to teach, design courses, and assess programming. A key aspect of this research focused on cognitive development theories of Piaget, Vygotsky, Sfard and Cognitive Load and to what degree these theories could explain observations of novice programmers learning to write code. In order to observe and investigate how novice programmers integrate new programming structure, concepts or elements into their current understanding of code it is necessary to be able to measure how difficult writing tasks are. Thus, the first aim of this research was to develop a task difficulty framework, which consisted of a new empirically verified software metric (code structure and readability) and a SOLO classification (task complexity) for code writing tasks. This framework was then used to design nineteen code writing tasks which were of increasing difficulty and complexity so as to trigger situations that required some form of knowledge adaptation or acquisition. Over one academic year, students were observed attempting to solve these programming tasks using a think aloud protocol and were interviewed retrospectively using a stimulated recall method. These observations were then linked to the cognitive theories in a way that provides an explanation of how programming was learned by these students. The results of this research indicate that both cognitive and sociocultural approaches are important in the development of knowledge of novice programmers. Of the theories examined two were found to be the most useful. The first is Vygotsky’s notions of the Zone of Proximal Development, the role of more knowledgeable others, and recent ideas about scaffolding. The second is Sfard’s theory of concept development that contributes to a deeper understanding of the way novice programmers’ develop patterns and reuse them in solving another programming task. The evidence about learning obtained during this study provides strong support for a change in the size and organization of the classes in which novice programmers are typically taught and in the teaching methods used.en_NZ
dc.identifier.urihttps://hdl.handle.net/10292/10377
dc.language.isoenen_NZ
dc.publisherAuckland University of Technology
dc.rights.accessrightsOpenAccess
dc.subjectComputer scienceen_NZ
dc.subjectNovice programmersen_NZ
dc.subjectEducational modelsen_NZ
dc.subjectCognitive developmenten_NZ
dc.titleLearning to Program: The Development of Knowledge in Novice Programmersen_NZ
dc.typeThesis
thesis.degree.grantorAuckland University of Technology
thesis.degree.levelDoctoral Theses
thesis.degree.nameDoctor of Philosophyen_NZ
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
KastoN.pdf
Size:
4.99 MB
Format:
Adobe Portable Document Format
Description:
Whole thesis
License bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
889 B
Format:
Item-specific license agreed upon to submission
Description:
Collections