Concurrency is a complex to learn topic that is becoming more and more relevant, such that many undergraduate Computer Science curricula are introducing it in introductory program ming courses. This paper investigates the combined use of Sonic Pi and Team-Based Learning to mitigate the difficulties in early exposure to concurrency. Sonic Pi, a domain-specific music lan guage, provides great support for "playing" with concurrency, and "hearing" common problems such as data races and lack of synchronization among different concurrent threads. More specifically, the paper focuses on students' misconceptions regarding concurrency in Sonic Pi and com pares them to those arising in traditional concurrent programming languages. In addition, it pre liminarily explores knowledge transfer from Sonic Pi to C/C++. The approach has been applied in two teaching experiments with undergraduate students in our University involving 184 participants. Our investigations bring out the need to address misconceptions through targeted interventions for a clear understanding of concurrent programming concepts. Sonic Pi's simplified abstraction and domain-specific flavor has demonstrated to be effective, expecially for first-year students.
“Hear” and “Play” Students Misconceptions on Concurrent Programming using Sonic Pi
Traversaro D.;Delzanno G.;Guerrini G.
2024-01-01
Abstract
Concurrency is a complex to learn topic that is becoming more and more relevant, such that many undergraduate Computer Science curricula are introducing it in introductory program ming courses. This paper investigates the combined use of Sonic Pi and Team-Based Learning to mitigate the difficulties in early exposure to concurrency. Sonic Pi, a domain-specific music lan guage, provides great support for "playing" with concurrency, and "hearing" common problems such as data races and lack of synchronization among different concurrent threads. More specifically, the paper focuses on students' misconceptions regarding concurrency in Sonic Pi and com pares them to those arising in traditional concurrent programming languages. In addition, it pre liminarily explores knowledge transfer from Sonic Pi to C/C++. The approach has been applied in two teaching experiments with undergraduate students in our University involving 184 participants. Our investigations bring out the need to address misconceptions through targeted interventions for a clear understanding of concurrent programming concepts. Sonic Pi's simplified abstraction and domain-specific flavor has demonstrated to be effective, expecially for first-year students.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.