Concurrency and synchronization are two topics that are becoming increasingly important for computer science students due to the high number of cores available in most modern devices. These are topics that many students struggle with at first, perhaps partially due to the inherent nondeterminism and the difficulty to test for absence of race conditions. Furthermore, previous research indicate that some common mistakes when working with concurrency might be due students not connecting the concurrency concepts (such as synchronization) to the data that needs to be protected, especially when pointers and references are involved.To address these issues, we propose Progvis, which is a visualization tool aimed specifically at concurrency using the shared memory model. It provides a detailed visualization of objects in memory and their relation to the running threads in order to help students connect concurrency issues with the affected data. We have performed an initial, small scale evaluation on whether using the tool helps students solve synchronization problems during voluntary problem-solving sessions. The preliminary results indicate that students who used the tool did indeed perform better.
CCS CONCEPTS• Applied computing → Education; • Human-centered computing → Visualization systems and tools; • General and reference → Empirical studies; • Theory of computation → Concurrency.