Practical thinking in programming education : Novices learning hands-on

Sammanfattning: Understanding how novices learn to program is of national and global concern. A substantial number of studies have been conducted within computing education research (CER), and, although some understanding has been gained, research still finds that programming is hard to learn. This thesis presents a detailed investigation of novice students’ learning of computer programming. The research project used a mixed-methods approach that ties together a controlled study with upper secondary school students with naturalistic classroom studies at the university level.Underpinning the research is a pragmatic philosophical view on knowledge and learning. Pragmatism places “doing” at the forefront of knowledge acquisition, and doing is also central to this thesis. Learning that takes place in the computer lab is the primary object of investigation. Throughout the research, hands-on learning (direct control of keyboard and thus interaction with the computer environment) is compared with hands-off learning (other participation in programming activities).Results from the controlled study demonstrated that hands-on learning decreased stress and was beneficial for learning over time. However, the usefulness of hands-on learning could not be confirmed in terms of improved learning outcomes immediately after students’ first encounter with programming. The beneficial effect of hands-on learning over time could be explained by emotional factors as mediators. Findings from the naturalistic settings confirmed that emotions and the social setting in which the learning takes place were important. Novices experienced frustration when getting stuck but also joy when succeeding — an “emotional roller coaster”. All students report that hands-on code writing is necessary when learning to program.Students in this research appreciated time for individual interaction with the computer environment, and time for working together in pairs to handle the emotional roller coasters. Experiencing negative emotions, or not getting personalized help when stuck, seemed to negatively affect student beliefs about themselves as programmers, and may result in decisions not to continue with computing.Two new concepts, ‘practical thinking’ and ‘come to agreement’, were developed, which tie pragmatic knowledge theory to learning to program. These concepts help to understand and re-describe the purpose of an introductory programming course that in a way emphasizes the “doing”. This novel use of pragmatism in CER is one important contribution to the research field. The research presented in this thesis has implications for how programming education can be understood beyond the dichotomy of theory and practice.

  KLICKA HÄR FÖR ATT SE AVHANDLINGEN I FULLTEXT. (PDF-format)