COMP 437: Concurrent Programming

This course studies the architecture, design, and implementation of concurrent software systems. Process algebras, formal specification, and testing are used as tools in the engineering of concurrent systems; event-based programming frameworks and thread libraries are employed in the implementation of such systems. Coursework includes several substantial programming projects (in a language such as Java) involving applications of concurrency and event-driven programming such as graphical user interfaces and distributed services using Remote Method Invocation (RMI).