Principles of concurrent and distributed programming
Principles of concurrent and distributed programming
Concurrent programming
Using inheritance to implement concurrency
SIGCSE '96 Proceedings of the twenty-seventh SIGCSE technical symposium on Computer science education
Concurrent programming: the Java programming language
Concurrent programming: the Java programming language
A portable implementation of the distributed systems annex in Java
Proceedings of the 1998 annual ACM SIGAda international conference on Ada
Thinking parallel: the process of learning concurrency
ITiCSE '99 Proceedings of the 4th annual SIGCSE/SIGCUE ITiCSE conference on Innovation and technology in computer science education
DPLab: an environment for distributed programming
ITiCSE '99 Proceedings of the 4th annual SIGCSE/SIGCUE ITiCSE conference on Innovation and technology in computer science education
The Byzantine Generals Problem
ACM Transactions on Programming Languages and Systems (TOPLAS)
Distributed Algorithms
Algorithm Visualization For Distributed Environments
INFOVIS '98 Proceedings of the 1998 IEEE Symposium on Information Visualization
ThreadMentor: a pedagogical tool for multithreaded programming
Journal on Educational Resources in Computing (JERIC)
Proceedings of the 8th annual conference on Innovation and technology in computer science education
Virtual trees for the byzantine generals algorithm
Proceedings of the 35th SIGCSE technical symposium on Computer science education
A suite of tools for teaching concurrency
Proceedings of the 9th annual SIGCSE conference on Innovation and technology in computer science education
LYDIAN: An extensible educational animation environment for distributed algorithms
Journal on Educational Resources in Computing (JERIC)
Algon: From Interchangeable Distributed Algorithms to Interchangeable Middleware
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
DAJ (Distributed Algorithms in Java) is a framework for writing Java programs to implement distributed algorithms. The programs display the data structures at each node and enable the user to interactively construct scenarios. In a learning situation, active interactive execution is preferable to passively watching an animation. Programs have been implemented for commonly taught algorithms, including the Byzantine generals, mutual exclusion, termination, and snapshots. Adding a program for another algorithm requires only general Java programming experience, as the GUI aspects are encapsulated.