After you, Alfonse: a mutual exclusion toolkit
SIGCSE '96 Proceedings of the twenty-seventh SIGCSE technical symposium on 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
A new solution of Dijkstra's concurrent programming problem
Communications of the ACM
Additional comments on a problem in concurrent programming control
Communications of the ACM
Solution of a problem in concurrent programming control
Communications of the ACM
A suite of tools for teaching concurrency
Proceedings of the 9th annual SIGCSE conference on Innovation and technology in computer science education
Software and the Concurrency Revolution
Queue - Multiprocessors
Principles of Concurrent and Distributed Programming (2nd Edition) (Prentice-Hall International Series in Computer Science)
Synchronization Algorithms and Concurrent Programming
Synchronization Algorithms and Concurrent Programming
A queue based mutual exclusion algorithm
Acta Informatica
The Art of Multiprocessor Programming
The Art of Multiprocessor Programming
Operating Systems
Highly-fair bakery algorithm using symmetric tokens
Information Processing Letters
Data structures in the multicore age
Communications of the ACM
Operating System Concepts Essentials
Operating System Concepts Essentials
Yet Another Simple Solution for the Concurrent Programming Control Problem
IEEE Transactions on Parallel and Distributed Systems
Hi-index | 0.00 |
This is an exciting time for computer scientists as we are witnessing a paradigm shift in programming. The concept of computing has long passed the definition of simple input-output mapping and evolved to include models of even intricate real-life interactive systems. From the technological front, multicore processors are about to revolutionize the way we design software systems. Therefore, for the design and implementation of software systems, we believe concurrent programming is the natural programming paradigm to adopt. Concurrent programming is hard compared to sequential programming, as the former involves multiple threads of execution within a program. These threads often interact asynchronously with the possibility of unpredictable program behavior. However, as we increasingly witness the need for concurrent programming from both application and technological fronts, we feel the time has arrived to teach concurrent programming as part of our regular computer science and computer engineering curriculum. As concurrent programming is intrinsically hard, we need to find effective ways of teaching it to our students. The contribution in this paper is a step in that direction. We feel that a simulation software with an animation capability would be an attractive tool to teach some fundamental algorithms and concepts in concurrent programming. We have designed such a simulator that can be used as a teaching tool to animate some simple and elegant algorithms, and get deeper into their underlying logic and behavior under various settings.