Date of Award
12-2024
Document Type
Dissertation
Degree Name
Doctor of Philosophy (PhD)
Department
Computer Science
Committee Chair/Advisor
Eileen T. Kraemer
Committee Member
S. Megan Che
Committee Member
Paige Rodeghero
Committee Member
Murali Sitaraman
Abstract
Programming with concurrency is challenging both to learn and to teach. A concurrent program has multiple computations happening “at the same time” either simultaneously or in an interleaved manner. It is non-deterministic, imposing only a partial ordering on its decomposed parts. Advantages of concurrency include the potential for increased program throughput, high responsiveness and reduced complexity of program structure. But a concurrent program can be more complex to reason about than a sequential program, in part because the conditions of correctness must hold for all possible execution sequences and also because programmers must implement and reason about synchronization constructs that are “delocalized”, having elements located in different parts of the code. A common pedagogical tool is the use of “classical” concurrency problems, examples that demonstrate concurrency concepts with real world problems, but analogical reasoning has been established as a difficult task. All of these factors contribute to an increased cognitive load for students learning concurrency.
Computing is conventionally taught with a sequentialist framework. When comprehending and debugging a program, students may employ a black box approach, which relies on only the input and output to understand the program behavior. Concurrency concepts are typically introduced fairly late in the curriculum, and established strategies of ordered tracing and IO reliance no longer apply to concurrent programs. Instructors must have pedagogical content knowledge (PCK), which goes beyond subject matter knowledge alone to include “the aspects of content most germane to its teachability... an understanding of what makes the learning of specific topics easy or difficult”.
My work, comprising three studies, seeks to develop pedagogical content knowledge (PCK) about concurrency by asking: What are the salient features of the student process in solving concurrent programming problems?
In my first study, I focused on the student design process. I replicated a prior study’s natural language prompt, asking computing students at each level of the undergraduate curriculum to speculate about possible problems presented by a concurrent ticket distribution system. Utilizing qualitative open coding, I found most students identified key concurrency-related issues but demonstrated misplaced focus on computational speed, complex data structures, and non-computational factors. These findings suggest that student’s existing models of concurrency from real world experiences can be leveraged pedagogically but also need to be refined to address misconceptions. Further, the prevalence of unnecessary complexity in student submissions may indicate unmanaged cognitive load.
In my second study, I focused on the student specification and implementation process. I evaluated student submissions of a programming project based on a classical concurrency problem. Using qualitative open and closed coding, I developed emergent features characterizing the use of synchronization and conditional logic and found evidence in implementation of the concurrency-related issues identified in student designs in the first study. Students deviated from the design patterns presented in class, often with the use of improperly coordinated synchronization and conditional logic but also with overly complex data structures to mitigate concurrency concerns. Further, analysis of journal reflections showed a resistance to design-focused modeling tools.
In my third study, I sought to create themes about the complete student process of concurrent program development. I conducted a reflexive, thematic analysis of students solving a concurrent programming problem during a three hour exam session by collecting screen recordings, audio recordings, and code submissions. My thematic analysis of the process data identified several themes in student reasoning–notably, one describes a heavy student reliance on example output and program output. These findings revealed the increased cognitive load of concurrent programming and its effects, including compromised programming plans and the limits of classical concurrency problems as a pedagogical tool.
Together, these three studies provide the basis for PCK about concurrent programming, an advanced topic in the core CS curriculum. Concurrency imposes a significant cognitive load on students who have traditionally been taught a sequentialist framework. As a result, students often design and implement programs that avoid safety violations but unnecessarily restrict concurrency. Following a constructivist view, the findings of these studies suggest the need to scaffold modeling tools, such as design patterns, to bridge from existing student approaches to more expert strategies of recognition and use of abstract patterns.
Recommended Citation
Lawson, Aubrey, "Concert Tickets, Party Matching, Sleeping Barbers, and Single Lane Bridges: Characterizing Student Reasoning about Concurrency" (2024). All Dissertations. 3858.
https://open.clemson.edu/all_dissertations/3858
Author ORCID Identifier
0009-0007-4682-4784