COMP 337: Concurrent Programming

Course Information


Many real-world software systems rely on concurrency for performance and modularity. This programming-intensive course covers the analysis, design, implementation, and testing of concurrent software systems.


This course studies 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).


An in-depth understanding of event-based and thread-based views of concurrency; the ability to develop concurrent software components using suitable languages, frameworks, and design patterns; familiarity with object-oriented modeling and development tools and test driven development.


See the Current Course Syllabi.