A C4 Toolkit for the Teaching and Learning of Concurrency
Total Page:16
File Type:pdf, Size:1020Kb
A C4 Toolkit for the Teaching and Learning of Concurrency Bryan Patten, BA (Mod.) A dissertation submitted to the University of Dublin, in fulfilment of the requirements for the degree of Master of Science in Computer Science October 2005 Declaration I declare that the work described in this dissertation is, except where otherwise stated, entirely my own work and has not been submitted as an exercise for a degree at this or any other university. Signed: ___________________ Bryan Patten, BA (Mod.) October 2005 Permission to lend and/or copy I agree that Trinity College Library may lend or copy this dissertation upon request. Signed: ___________________ Bryan Patten, BA (Mod.) October 2005 Acknowledgments I would like to extend my appreciation to my supervisor, Brendan Tangney, for his advice, patience and guidance throughout the duration of this project. I would also like to thank everyone in the Centre for Research in IT in Education (CRITE) for their expertise, enthusiasm and humour during my time there. Finally I would like to thank my family for their support and encouragement throughout my time in college. Abstract Computer Science is a non-trivial subject matter. Many topics, such as Programming and Object-Oriented design are complex to teach and learn, due to their abstract nature. One fundamental and particularly challenging area is Concurrency - the managing of a system where many processes are running in parallel. Current approaches to teaching Concurrency introduce the concepts within the context of operating systems or parallel programming in a lecture/tutorial environment. This approach presents the learner with the challenge of understanding a complex context before they can begin to tackle the nuanced concepts of Concurrency. Once over this barrier, learners are still faced with conceptualisation problems and often struggle to internalise issues around synchronisation, scheduling and mutual exclusion. Research would suggest that learners taught in a traditional setting often struggle to apply the concepts of concurrency in new environments. An opportunity for supporting learners is provided by the increased integration of technology into education. In particular, many authors are arguing that the growth of pervasive computing will have a large impact on learning. Cost, adaptability and scalability are among the motivations most often cited for using these devices. This research however leaves a major question unaddressed - from a technical and pedagogical perspective, how should mobile technology be used to support teaching and learning? Following an extensive review of the literature and current applications in mobile learning, this thesis argues that the most technologically appropriate and educationally inspired solutions are built on a combination of Collaborative, Contextual, Constructionist and Constructivist (C4) principles. Building on this argument, this thesis focuses on the appropriate use of handheld technology to support the teaching and learning of Concurrency. Specifically this involved the design, implementation and evaluation of the ‘Concurrency Toolkit’, an educationally appropriate artefact that introduces learners to the primitives of concurrency (semaphores, monitors and message passing) within the context of some of its classic problems. The artefact facilitates learners to collaboratively experiment with the primitives in this environment. Learners can then demonstrate their own understanding of these basic primitives and the nuances of concurrent systems by collaboratively constructing their own multi-processing scenarios. Finally, the toolkit was used in a tutorial setting and reviewed by 13 users. The toolkit was also evaluated using a qualitative approach in a case study paradigm. In this setting the learners were highly motivated through using the tool. They also used the toolkit to produce valuable learning outcomes around some of the move difficult concepts in Computer Science. The findings also show that the learners achieved these educational benefits by using the toolkit to take a C4 approach to the problems faced. Table of Contents 1. Introduction ........................................................................................................ 1 1.1 INTRODUCTION ............................................................................................................... 1 1.2 OBJECTIVES ................................................................................................................... 3 1.3 APPROACH ..................................................................................................................... 3 1.4 DESIGN AND IMPLEMENTATION ......................................................................................... 4 1.5 RESEARCH METHODOLOGY AND EVALUATION .................................................................. 5 1.6 CONCLUSIONS ................................................................................................................ 5 2. Concurrency....................................................................................................... 6 2.1 INTRODUCTION ............................................................................................................... 6 2.2 BACKGROUND ................................................................................................................. 6 2.2.1 The Process........................................................................................... 7 2.2.2 Mutual Exclusion.................................................................................... 7 2.2.3 Deadlock................................................................................................ 8 2.2.4 Starvation............................................................................................... 8 2.2.5 Fairness................................................................................................. 9 2.2.6 Concurrency Mechanisms...................................................................... 9 2.2.7 Conclusion ........................................................................................... 18 2.3 TEACHING AND LEARNING CONCURRENCY ..................................................................... 19 2.3.1 Context of Concurrency ....................................................................... 19 2.3.2 Approaches and Tools ......................................................................... 21 2.3.3 Lectures............................................................................................... 21 2.3.4 Tutorials............................................................................................... 22 2.3.5 Problem Based Learning...................................................................... 23 2.3.6 Software Visualisation.......................................................................... 27 2.3.7 Temporal Logic .................................................................................... 32 2.4 CONCLUSION ................................................................................................................ 32 3. The use of handheld technology in learning ..................................................... 34 3.1 INTRODUCTION ............................................................................................................. 34 3.2 BACKGROUND ............................................................................................................... 35 3.3 CLASSIFICATIONS .......................................................................................................... 36 3.4 FUNCTIONALITY FRAMEWORK ........................................................................................ 37 3.4.1 Administration ...................................................................................... 38 3.4.2 Reference ............................................................................................ 39 3.4.3 Interactive ............................................................................................ 39 3.4.4 Microworld ........................................................................................... 41 3.4.5 Data Collection..................................................................................... 42 3.4.6 Location Aware .................................................................................... 45 3.4.7 Collaborative........................................................................................ 46 3.5 PEDAGOGICAL UNDERPINNING ....................................................................................... 47 3.6 CONCLUSION ................................................................................................................ 48 4. Design.............................................................................................................. 50 4.1 INTRODUCTION ............................................................................................................. 50 4.2 PEDAGOGY GUIDELINES ................................................................................................ 51 4.2.1 Contextual............................................................................................ 52 4.2.2 Constructivism and Constructionism .................................................... 53 4.2.3 Collaboration........................................................................................ 54 4.2.4 Review................................................................................................