ABSTRACT
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.
- Thomas Anderson and Michael Dahlin. 2014. Operating Systems: Principles and Practice (2nd ed.). Vol. Volume II: Concurrency. Recursive books.Google Scholar
- Briana Bettin. 2020. The Stained Glass of Knowledge: On Understanding Novice Mental Models of Computing. , 307 pages. https://digitalcommons.mtu.edu/etdr/ 1086/ Open Access Dissertation.Google Scholar
- Briana Bettin and Linda Ott. 2021. Frozen in the Past: When It Comes to Analogy Fears, It's Time For Us to "Let It Go". In Proceedings of the 26th ACM Conference on Innovation and Technology in Computer Science Education V. 1 (ITiCSE '21). Association for Computing Machinery, New York, NY, USA, 359--365. https: //doi.org/10.1145/3430665.3456381Google Scholar
Digital Library
- Steve Carr, Jean Mayo, and Ching-Kuang Shene. 2003. ThreadMentor: A Pedagogical Tool for Multithreaded Programming. ACM Journal on Educational Resources in Computing 3, 1 (2003), 1--30. https://doi.org/10.1145/958795.958796Google Scholar
Digital Library
- Kathy Charmaz. 2014. Constructing Grounded Theory. SAGE Publications.Google Scholar
- Yam San Chee. 1993. Applying Gentner's Theory of Analogy to the Teaching of Computer Programming. Int. J. Man-Mach. Stud. 38, 3 (March 1993), 347--368. https://doi.org/10.1006/imms.1993.1016Google Scholar
Digital Library
- Thiago de Jesus Oliveira Duraes, Paulo Sergio Lopes de Souza, Guilherme Martins, Davi Jose Conte, Naylor Garcia Bachiega, and Sarita Mazzini Bruschi. 2020. Research on Parallel Computing Teaching: state of the art and future directions. In 2020 IEEE Frontiers in Education Conference (FIE) (FIE '21). 1--9. https://doi.org/ 10.1109/FIE44824.2020.9273914Google Scholar
Digital Library
- Barbara Di Eugenio, Nick Green, Omar AlZoubi, Mehrdad Alizadeh, Rachel Harsley, and Davide Fossati. 2015. Worked-out Examples in a Computer Science Intelligent Tutoring System. In Proceedings of the 16th Annual Conference on Information Technology Education (SIGITE '15). Association for Computing Machinery, New York, NY, USA, 121. https://doi.org/10.1145/2808006.2808011Google Scholar
Digital Library
- Edsger W. Dijkstra. 1988. On the cruelty of really teaching computing science. (Dec. 1988). http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF Circulated privately.Google Scholar
- Michal Foriek and Monika Steinová. 2012. Metaphors and Analogies for Teaching Algorithms. In Proceedings of the 43rd ACM Technical Symposium on Computer Science Education (SIGCSE '12). ACM, New York, NY, USA, 15--20. https://doi. org/10.1145/2157136.2157147Google Scholar
Digital Library
- Klaus-Tycho Förster, Michael König, and Roger Wattenhofer. 2016. A Concept for an Introduction to Parallelization in Java: Multithreading with Programmable Robots in Minecraft. In Proceedings of the 17th Annual Conference on Information Technology Education (SIGITE '16). 169. https://doi.org/10.1145/2978192.2978243Google Scholar
Digital Library
- Dedre Gentner. 1983. Structure-mapping: A theoretical framework for analogy. Cognitive Science 7, 2 (1983), 155 -- 170. https://doi.org/10.1016/S0364-0213(83) 80009--3Google Scholar
Cross Ref
- Nasser Giacaman. 2012. Teaching by Example: Using Analogies and Live Coding Demonstrations to Teach Parallel Computing Concepts to Undergraduate Students. In Proceedings of the 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum (IPDPSW '12). 1295--1298. https://doi.org/10.1109/IPDPSW.2012.158Google Scholar
Digital Library
- Mark Guzdial. 2020. Dijkstra Was Wrong About 'Radical Novelty': Metaphors in CS Education. https://cacm.acm.org/blogs/blog-cacm/248985-dijkstra-waswrong-about-radical-novelty-metaphors-in-cs-education/fulltextGoogle Scholar
- Jesper Haglund. 2013. Collaborative and self-generated analogies in science education. Studies in Science Education 49 (03 2013), 1--34. https://doi.org/10.1080/ 03057267.2013.801119Google Scholar
- Rachel Harsley, Nick Green, Mehrdad Alizadeh, Sabita Acharya, Davide Fossati, Barbara Di Eugenio, and Omar AlZoubi. 2016. Incorporating Analogies and Worked Out Examples As Pedagogical Strategies in a Computer Science Tutoring System. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education (SIGCSE '16). ACM, New York, NY, USA, 675--680. https://doi. org/10.1145/2839509.2844637Google Scholar
Digital Library
- David James. 2020. The Use of DJing Tasks as a Pedagogical Bridge to Learning Data Structures. In Proceedings of the 2020 ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE '20). Association for Computing Machinery, New York, NY, USA, 193--197. https://doi.org/10.1145/3341525.3387427Google Scholar
Digital Library
- Yifat Ben-David Kolikant, Mordechai Ben-Ari, and Sarah Pollack. 2000. The Anthropology Semaphores. In Proceedings of the 5th Annual SIGCSE/SIGCUE ITiCSE conference on Innovation and Technology in Computer Science Education (ITiCSE '00). 21--24. https://doi.org/10.1145/343048.343061Google Scholar
Digital Library
- Elizabeth R. Koning, Joel C. Adams, and Christiaan D. Hazlett. 2019. Visualizing Classic Synchronization Problems. Proceedings of the 50th ACM Technical Symposium on Computer Science Education (2019). https://doi.org/10.1145/3287324. 3293708Google Scholar
Digital Library
- Joseph P. Sanford, Aaron Tietz, Saad Farooq, Samuel Guyer, and R. Benjamin Shapiro. 2014. Metaphors We Teach by. In Proceedings of the 45th ACM Technical Symposium on Computer Science Education (SIGCSE '14). ACM, New York, NY, USA, 585--590. https://doi.org/10.1145/2538862.2538945Google Scholar
Digital Library
- Ching-Kuang Shene and Steve Carr. 1998. The Design of a Multithreaded Programming Course and its Accompanying Software Tools. Journal of Computing in Small Colleges 14, 1 (1998), 12--24.Google Scholar
- Klaas-Jan Stol, Paul Ralph, and Brian Fitzgerald. 2016. Grounded Theory in Software Engineering Research: A Critical Review and Guidelines. https://doi. org/10.1145/2884781.2884833Google Scholar
Index Terms
Semaphore or Metaphor?: Exploring Concurrent Students' Conceptions of and with Analogy
Recommendations
Frozen in the Past: When it Comes to Analogy Fears, It's Time For Us to "Let it Go"
Within computer science education research, analogy work has been relatively unexplored and in some cases, even discouraged. For a learning and reasoning tool that is so widely used in our discipline - from instructors and peer groups to the interfaces ...
More (Sema|Meta)phors: Additional Perspectives on Analogy Use from Concurrent Programming Students
A concurrent computing course is filled with challenges for upper-level programming students. Understanding concurrency provides deeper insight into many modern computing and programming language behaviors, but the subject matter can be difficult even ...
Analogy as Integrating Framework for Human-Level Reasoning
Human-level reasoning is manifold and comprises a wide variety of different reasoning mechanisms. So far, artificial intelligence has focused mainly on using the classical approaches deduction, induction, and abduction to enable machines with reasoning ...






Comments