Learning concurrency: evolution of students' understanding of synchronization

This paper describes an investigation of high-school students' understanding of synchronization as they studied a course in concurrent and distributed computation. The research followed the students for 2 months, and consisted of both quantitative and qualitative analysis of the students' performance. We found that most of the students had a rich understanding of various synchronization problems. However, many of them developed a pattern-based technique that successfully solved synchronization problems, thus elegantly exempting them from dealing with the dynamics of the synchronization mechanisms; consequently, concepts regarding this theme became inert. Moreover, we were able to uncover reasonable, yet faulty connections that many students had made between the new knowledge and their existing knowledge; these connections were the source of their difficulties. From the findings, we were able to make valuable recommendations for the next version of the course: (a) encouraging alternative connections to existing knowledge by redesigning the instruction, such as representing semaphores in a way that resembles a complex data structure rather than as variables of type integer, and (b) integrating knowledge found to be productive by the students into the instruction to anchor more advanced knowledge, for example utilizing the pattern-based technique as a tool for correctness verification.

[1]  Adam Rifkin Teaching parallel programming and software engineering concepts to high school students , 1994, SIGCSE '94.

[2]  Mordechai Ben-Ari,et al.  The anthropology semaphores , 2000, ITiCSE '00.

[3]  Yifat Ben-David Kolikant Gardeners and Cinema Tickets: High School Students' Preconceptions of Concurrency , 2001, Comput. Sci. Educ..

[4]  Rance Cleaveland,et al.  Strategic directions in concurrency research , 1996, CSUR.

[5]  Lori L. Pollock,et al.  Making parallel programming accessible to inexperienced programmers through cooperative learning , 2001, SIGCSE '01.

[6]  D. Perkins The Many Faces of Constructivism. , 1999 .

[7]  Steven Robbins Using remote logging for teaching concurrency , 2003, SIGCSE.

[8]  Mordechai Ben-Ari,et al.  Re-engineering a concurrency simulator , 1998, ITiCSE '98.

[9]  Michael B. Feldman,et al.  Concurrent programming CAN be introduced into the lower-level undergraduate curriculum , 1997, ITiCSE '97.

[10]  Paul T. Tymann,et al.  Game playing as a technique for teaching parallel computing concepts , 1992, SGCS.

[11]  Kenneth M. Kahn,et al.  Drawings on napkins, video-game animation, and other ways to program computers , 1996, CACM.

[12]  Mitchel Resnick,et al.  MultiLogo: A Study of Children and Concurrent Programming , 1990, Interact. Learn. Environ..

[13]  Lynn Andrea Stein,et al.  Challenging the Computational Metaphor: Implications for How We Think , 1999, Cybern. Syst..

[14]  Mordechai Ben-Ari,et al.  Principles of concurrent and distributed programming , 2005, PHI Series in computer science.

[15]  Michael B. Feldman,et al.  GW-Ada/Ed: free Ada 83 development environments for IBM PC-compatible and Apple Macintosh computers , 1995, TRI-Ada '95.

[16]  Christopher Exton Elucidate: a tool to aid comprehension of concurrent object oriented execution , 2000, ITiCSE '00.

[17]  Scott Grissom,et al.  Proceedings of the 34th SIGCSE Technical Symposium on Computer Science Education, 2003, Reno, Nevada, USA, February 19-23, 2003 , 2003, SIGCSE.

[18]  Herbert J. Walberg,et al.  Knowing, Learning, and Instruction: Essays in Honor of Robert Glaser. , 1991 .

[19]  Shlomo Vinner,et al.  The Role of Definitions in the Teaching and Learning of Mathematics , 2002 .

[20]  Gregory R. Andrews,et al.  Concurrent programming - principles and practice , 1991 .

[21]  Shlomo Vinner Concept definition, concept image and the notion of function , 1983 .

[22]  J. Roschelle,et al.  Misconceptions Reconceived: A Constructivist Analysis of Knowledge in Transition , 1994 .

[23]  A. Collins,et al.  Situated Cognition and the Culture of Learning , 1989 .

[24]  David Tall,et al.  Advanced Mathematical Thinking , 1994 .