Principles of concurrent and distributed programming
Principles of concurrent and distributed programming
Concurrent programming: principles and practice
Concurrent programming: principles and practice
Game playing as a technique for teaching parallel computing concepts
ACM SIGCSE Bulletin
Teaching parallel programming and software engineering concepts to high school students
SIGCSE '94 Proceedings of the twenty-fifth SIGCSE symposium on Computer science education
Drawings on napkins, video-game animation, and other ways to program computers
Communications of the ACM
Strategic directions in concurrency research
ACM Computing Surveys (CSUR) - Special ACM 50th-anniversary issue: strategic directions in computing research
Concurrent programming CAN be introduced into the lower-level undergraduate curriculum
Proceedings of the 2nd conference on Integrating technology into computer science education
Re-engineering a concurrency simulator
ITiCSE '98 Proceedings of the 6th annual conference on the teaching of computing and the 3rd annual conference on Integrating technology into computer science education: Changing the delivery of computer science education
Proceedings of the 5th annual SIGCSE/SIGCUE ITiCSEconference on Innovation and technology in computer science education
Elucidate: a tool to aid comprehension of concurrent object oriented execution
Proceedings of the 5th annual SIGCSE/SIGCUE ITiCSEconference on Innovation and technology in computer science education
Making parallel programming accessible to inexperienced programmers through cooperative learning
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
GW-Ada/Ed: free Ada 83 development environments for IBM PC-compatible and Apple Macintosh computers
Proceedings of the conference on TRI-Ada '95: Ada's role in global markets: solutions for a changing complex world
Using remote logging for teaching concurrency
SIGCSE '03 Proceedings of the 34th SIGCSE technical symposium on Computer science education
Design and Evaluation of a Diagrammatic Notation to Aid in the Understanding of Concurrency Concepts
ICSE '07 Proceedings of the 29th international conference on Software Engineering
A study of student strategies for the corrective maintenance of concurrent software
Proceedings of the 30th international conference on Software engineering
Assessing the benefits of synchronization-adorned sequence diagrams: two controlled experiments
Proceedings of the 4th ACM symposium on Software visualization
The concept of nondeterminism: its development and implications for teaching
ACM SIGCSE Bulletin
Design and evaluation of extensions to UML sequence diagrams for modeling multithreaded interactions
Information Visualization
Exploring misconceptions of operating systems in an online course
Proceedings of the 13th Koli Calling International Conference on Computing Education Research
Hi-index | 0.00 |
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.