Semaphore or Metaphor? Exploring Concurrent Students' Conceptions of and with Analogy

Document Type

Conference Proceeding

Publication Date



Concurrent programming can be a rewarding but challenging topic for computing students. Comprehending concurrency can help students gain a better understanding of the computer as a machine, and how processes within modern machines execute and interact. Knowledge of concurrency is important to develop secure and robust multithreaded programs. However, understanding this topic at a machine and syntactic level can be difficult for students due to its novelty and complexity. Several topics in concurrent computing can initially be explored at a high-level using real-world examples and analogies to facilitate comprehension. This paper explores perspectives provided by university students in a concurrent programming course on the use of analogy to facilitate learning about concurrent topics. Through this paper, we draw attention to analogies used in course examples and assignment prompts, while turning attention to how students interpret and reason about and with these. We also explore new analogies these students crafted while reasoning about the problem space. This exploration suggests that while these students may draw attention to different aspects (in different ways) of an analogy's design, they generally approach similar conclusions in their reasoning process provided the core relational design remains intact. Students also applied prior analogies from lecture and past assignments, actively reasoning during problem solving with these known examples. There is also some evidence of analogy mixing and swapping, suggesting malleability in analogy use while problem solving. Together, this exploration contributes to understanding student problem solving, reasoning behaviors, and perspectives while using analogy within concurrent computing courses.

Publication Title

Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE