ABSTRACT
When computations consist of different processes or threads that may execute at the same time or in an interleaved manner, we say the computation is concurrent or that it exhibits concurrency. University students often struggle to reason about concurrency. Researchers have presented students with natural language descriptions of scenarios involving concurrency and have evaluated students' natural language responses to explore their prior knowledge and to determine characteristics of student reasoning about concurrency. However, natural language responses are necessarily abstract and pertain to the design stage of software development, while studies in which students are asked to implement solutions provide a more concrete view of student reasoning and reveal difficulties that arise when putting design into practice. In this work we build upon prior work and ask: What are common and problematic features in student approaches to solving concurrency-related problems? How do these features differ from the design phase to the implementation phase of the software development life cycle? In this study we asked students enrolled in a jointly offered upper division undergraduate / MS level course on "Programming with Concurrency" to implement a solution to the same problem (a sidekick/superhero version of the party matching problem) using two different approaches: Threads-based in Java, and Actors-based in Scala. We performed qualitative feature analysis of their implementations and their written reflections to better understand student reasoning when programming concurrent solutions. The feature of additional complexity was found in our earlier natural language study in which students described their designs. Additional complexity was also represented in student implementations in this study and adversely impacted student success as their programs became cumbersome and hard to trace. Student reflections provided insight into their resistance to modeling prior to implementation, and indicated that they found formal modeling techniques difficult. These findings suggest that lighter weight interventions that address student difficulties earlier in the development process may be more palatable to students and thus have substantial impact.
- Mordechai Ben-Ari and Yifat Ben-David Kolikant. 1999. Thinking parallel: the process of learning concurrency. In ACM SIGCSE Bulletin, Vol. 31. ACM, 13--16.Google ScholarDigital Library
- Yifat Ben-David Kolikant. 2001. Gardeners and cinema tickets: High school students' preconceptions of concurrency. Computer Science Education 11, 3 (2001), 221--245.Google ScholarCross Ref
- Yifat Ben-David Kolikant. 2004. Learning concurrency as an entry point to the community of computer science practitioners. Journal of Computers in Mathematics and Science Teaching 23, 1 (2004), 21--46.Google Scholar
- Yifat Ben-David Kolikant. 2004. Learning concurrency: evolution of students' understanding of synchronization. International Journal of Human-Computer Studies 60, 2 (2004), 243--268.Google ScholarDigital Library
- Claus Brabrand. 2008. Constructive alignment for teaching model-based design for concurrency. In Transactions on petri nets and other models of concurrency I. Springer, 1--18.Google Scholar
- Sheelagh Carpendale, Søren Knudsen, Alice Thudt, and Uta Hinrichs. 2017. Analyzing qualitative data. In Proceedings of the 2017 ACM International Conference on Interactive Surfaces and Spaces. 477--481.Google ScholarDigital Library
- Francisco Enrique Vicente Castro and Kathi Fisler. 2017. Designing a multi-faceted SOLO taxonomy to track program design skills through an entire course. In Proceedings of the 17th Koli Calling International Conference on Computing Education Research. ACM, 10--19.Google Scholar
- "National Research Council". 2000. How people learn: Brain, mind, experience, and school: Expanded edition. National Academies Press.Google Scholar
- National Research Council et al. 2011. The Future of Computing Performance: Game Over or Next Level? National Academies Press.Google Scholar
- Peter E Doolittle. 2014. Complex constructivism: A theoretical model of complexity and cognition. International Journal of teaching and learning in higher education 26, 3 (2014), 485--498.Google Scholar
- Anna Eckerdal, Robert McCartney, Jan Erik Moström, Mark Ratcliffe, Kate Sanders, and Carol Zander. 2006. Putting threshold concepts into context in computer science education. In ACM SIGCSE Bulletin, Vol. 38. ACM, 103--107.Google ScholarDigital Library
- Mary L Gick and Keith J Holyoak. 1980. Analogical problem solving. Cognitive psychology 12, 3 (1980), 306--355.Google Scholar
- Joanna Goode and Jane Margolis. 2011. Exploring computer science: A case study of school reform. ACM Transactions on Computing Education (TOCE) 11, 2 (2011), 12.Google ScholarDigital Library
- Greg Guest, Arwen Bunce, and Laura Johnson. 2006. How many interviews are enough? An experiment with data saturation and variability. Field methods 18, 1 (2006), 59--82.Google Scholar
- Peter Hubwieser, Johannes Magenheim, Andreas Mühling, and Alexander Ruf. 2013. Towards a conceptualization of pedagogical content knowledge for computer science. In Proceedings of the ninth annual international ACM conference on International computing education research. ACM, 1--8.Google ScholarDigital Library
- Cazembe Kennedy and Eileen T Kraemer. 2018. What Are They Thinking?: Eliciting Student Reasoning About Troublesome Concepts in Introductory Computer Science. In Proceedings of the 18th Koli Calling International Conference on Computing Education Research. ACM, 7.Google ScholarDigital Library
- Cazembe Kennedy and Eileen T. Kraemer. 2019. Qualitative Observations of Student Reasoning: Coding in the Wild. In Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE '19). Association for Computing Machinery, New York, NY, USA, 224--230. Google ScholarDigital Library
- John R Latham. 2013. A framework for leading the transformation to performance excellence part I: CEO perspectives on forces, facilitators, and strategic leadership systems. Quality Management Journal 20, 2 (2013), 12--33.Google ScholarCross Ref
- Aubrey Lawson, Eileen T Kraemer, S Megan Che, and Cazembe Kennedy. 2019. A Multi-Level Study of Undergraduate Computer Science Reasoning about Concurrency. In Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education. ACM, 210--216.Google ScholarDigital Library
- Gary Lewandowski, Dennis J Bouvier, Robert McCartney, Kate Sanders, and Beth Simon. 2007. Commonsense computing (episode 3): concurrency and concert tickets. In Proceedings of the third international workshop on Computing education research. ACM, 133--144.Google ScholarDigital Library
- Jan Lönnberg and Anders Berglund. 2007. Students' Understandings of Concurrent Programming. In Proceedings of the Seventh Baltic Sea Conference on Computing Education Research - Volume 88 (Koli Calling '07). Australian Computer Society, Inc., AUS, 77--86.Google ScholarDigital Library
- Jan Lönnberg, Anders Berglund, and Lauri Malmi. 2009. How Students Develop Concurrent Programs. In Proceedings of the Eleventh Australasian Conference on Computing Education - Volume 95 (ACE '09). Australian Computer Society, Inc., AUS, 129--138.Google ScholarDigital Library
- Mitchel Resnick. 1990. MultiLogo: A study of children and concurrent programming. Interactive learning environments 1, 3 (1990), 153--170.Google Scholar
- Philip M Sadler, Gerhard Sonnert, Harold P Coyle, Nancy Cook-Smith, and Jaimie L Miller. 2013. The influence of teachers' knowledge on student learning in middle school physical science classrooms. American Educational Research Journal 50, 5 (2013), 1020--1049.Google ScholarCross Ref
- Johnny Saldaña. 2015. The coding manual for qualitative researchers. Sage.Google Scholar
- Stephan Salinger, Laura Plonka, and Lutz Prechelt. 2008. A coding scheme development methodology using grounded theory for qualitative analysis of pair programming. Human Technology: An Interdisciplinary Journal on Humans in ICT Environments (2008).Google Scholar
- Lee S Shulman. 1986. Those who understand: Knowledge growth in teaching. Educational researcher 15, 2 (1986), 4--14.Google Scholar
- John P Smith III, Andrea A DiSessa, and Jeremy Roschelle. 1994. Misconceptions reconceived: A constructivist analysis of knowledge in transition. The journal of the learning sciences 3, 2 (1994), 115--163.Google Scholar
- Anselm Strauss and Juliet Corbin. 1990. Basics of qualitative research. Sage publications.Google Scholar
- Heather Verkade, Jason M Lodge, Kristine Elliott, TD Mulhern, AA Espinosa, SJ Cropper, and BIP Rubinstein. 2017. Exploring misconceptions as a trigger for enhancing student learning. (2017).Google Scholar
- Aman Yadav, Marc Berges, Phil Sands, and Jon Good. 2016. Measuring computer science pedagogical content knowledge: An exploratory analysis of teaching vignettes to measure teacher knowledge. In Proceedings of the 11th Workshop in Primary and Secondary Computing Education. ACM, 92--95.Google ScholarDigital Library
Index Terms
- Sidekicks and superheroes: a look into student reasoning about concurrency with threads versus actors
Recommendations
Lowering Conflicts of High Contention Software Transactional Memory
CSSE '08: Proceedings of the 2008 International Conference on Computer Science and Software Engineering - Volume 03Two concurrent transactions are said to conflict based on linearizability semantics if they access the same shared data and at least one of them modifies that data. In many applications enforcing the strict linearizability semantics over the entire read-...
Implementing Thread Cancellation in Multithreaded Prolog Systems
PADL '09: Proceedings of the 11th International Symposium on Practical Aspects of Declarative LanguagesThe Prolog primitive <Literal>thread_cancel/1</Literal> , which simply cancels a thread as recommended in ISO/IEC DTR 13211-5:2007, is conspicuously absent in well-maintained, widely used multithreaded Prolog systems. The ability to cancel a thread is ...
Linguistic symbiosis between event loop actors and threads
In modern programming languages, concurrency control can be traced back to one of two different schools: actor-based message passing concurrency and thread-based shared-state concurrency. This paper describes a linguistic symbiosis between two ...
Comments