Sidekicks and Superheroes: A Look into Student Reasoning about Concurrency with Threads versus ActorsSEET
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, 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. What is the nature of university students’ conceptions of concurrency? 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 are these features represented across the phases of the software development process (requirements - design/specification - implementation- quality assurance)? 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 journal reflections to better understand student reasoning when programming concurrent solutions. The feature of additional complexity found in our design study was also represented in student implementations 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 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.
Tue 7 JulDisplayed time zone: (UTC) Coordinated Universal Time change
16:05 - 17:05 | A6-SEET - Empirical Studies of SE Education and OthersSoftware Engineering Education and Training at Silla Chair(s): Stephan Krusche Technische Universität München | ||
16:05 12mTalk | Presenting and Evaluating the Impact of Experiential Learning in Computing Accessibility EducationSEET Software Engineering Education and Training Yasmine El-Glaly Rochester Institute of Technology, Weishi Shi Rochester Institute of Technology, Samuel Malachowsky Rochester Institute of Technology, Qi Yu Rochester Institute of Technology, Daniel Krutz Rochester Institute of Technology | ||
16:17 12mTalk | An Empirical Study of Teaching Qualities of Popular Computer Science and Software Engineering Instructors Using RateMyProfessor.com DataSEET Software Engineering Education and Training Aliaksei Kavalchuk Pennsylvania State University - Abington, Alec Goldenberg Pennsylvania State University - Abington, Ishtiaque Hussain Pennsylvania State University - Abington | ||
16:29 12mTalk | Sidekicks and Superheroes: A Look into Student Reasoning about Concurrency with Threads versus ActorsSEET Software Engineering Education and Training | ||
16:41 6mExperience report | We should teach our Students what Industry doesn’t wantSEET Software Engineering Education and Training Kevin Ryan Lero The Irish Software Research Centre Ireland | ||
16:47 12mTalk | Understanding DevOps Education with Grounded TheorySEET Software Engineering Education and Training Candy Pang MacEwan University, Abram Hindle University of Alberta, Denilson Barbosa University of Alberta |