Work

Investigating Student Self-Perceptions During The Programming Process

Public

While there is high demand for university computer science (CS) courses, students often struggle when learning to program. Prior work has identified that student perceptions of their programming ability may contribute to these challenges. For example, studies show that students often perceive that they do not belong, are not capable of succeeding, or are performing poorly in CS. In this dissertation, I investigated the student experience working on programming problems and how these experiences influenced student perceptions of their programming ability. While prior studies have investigated the application of mindset and self-efficacy theories in CS, we do not currently know much about how students make self-evaluations while working on programming problems and how their perceptions of programming intelligence impacts their programming experiences. To address this gap, I first explored how students talk about programming intelligence. In doing so, I identified the criteria that students used to evaluate their programming ability. Since many of these criteria relate to particular moments in the programming session, I next investigated if students feel like they are performing poorly when they encounter those moments. Thus, I identified a list of moments during a programming session where some students make negative self-assessments. I then conducted follow-up analyses to investigate two potential explanations for why students feel poorly during those moments. To build a tool for automatically identifying the moments that cause students to feel like they are performing poorly, I developed a methodology for creating automated detection systems based on student perceptions. Finally, I explored the events that trigger students to have emotional reactions while programming in order to better understand how students experience working on programming problems. From my dissertation research, we have a better understanding of how students experience the programming process and how students develop their perceptions of programming ability, particularly while working on programming problems. From this work, I make four types of contributions: practical, conceptual, methodological, and technological. Specifically, I contribute the start to a new framework for understanding how students evaluate themselves while programming, providing new insights and tools to understand the student programming experience. I provide a list of moments when students negatively self-assess during programming and show that students who report to negatively self-assess at more of these moments tend to have lower self-efficacy. In addition, I contribute new methods that can be used to further our understanding of student perceptions of their programming experiences. Finally, I further our understanding of events that cause novices to experience emotions while programming and demonstrate that patterns from physiological data sources can help to represent student experience. These contributions help instructors of CS programs, CS education researchers, and designers of interventions to better support university students’ self-efficacy, persistence, and performance as they learn to program.

Creator
DOI
Subject
Language
Alternate Identifier
Keyword
Date created
Resource type
Rights statement

Relationships

Items