Understanding Learners' Problem-Solving Strategies in Concurrent and Parallel Programming: A Game-Based Approach
Jichen Zhu, Katelyn Alderfer, Brian Smith, Bruce Char, Santiago, Onta\~n\'on

TL;DR
This study investigates how an educational game about concurrent and parallel programming impacts learners' self-efficacy and problem-solving strategies, revealing increased confidence and diverse approaches among undergraduates.
Contribution
It introduces a game-based approach to teaching CPP concepts and analyzes its effects on students' self-efficacy and problem-solving strategies.
Findings
Self-efficacy increased significantly after gameplay.
Students employed trial and error, single-thread, and multi-threaded strategies.
Self-efficacy correlated with time spent in multithreaded problem-solving.
Abstract
Concurrent and parallel programming (CPP) is an increasingly important subject in Computer Science Education. However, the conceptual shift from sequential programming is notoriously difficult to make. Currently, relatively little research exists on how people learn CPP core concepts. This paper presents our results of using Parallel, an educational game about CPP, focusing on the learners' self-efficacy and how they learn CPP concepts. Based on a study of 44 undergraduate students, our research shows that (a) self-efficacy increased significantly after playing the game; (b) the problem-solving strategies employed by students playing the game can be classified in three main types: trial and error, single-thread, and multi-threaded strategies, and (c) that self-efficacy is correlated with the percentage of time students spend in multithreaded problem-solving.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsEducational Games and Gamification · Teaching and Learning Programming · Intelligent Tutoring Systems and Adaptive Learning
