Skip to content | Change text size

FIT3007 - Concurrent programming

6 points, SCA Band 2, 0.125 EFTSL

Undergraduate Faculty of Information Technology


Not offered in 2007


This subject focuses on the theory and application of concurrent multi-threaded programming in modern applications development. Concurrent programming primitives: threads, semaphores, rendezvous, critical regions, shared variables. Concurrent programming concepts and designs: concurrency, synchronization, safety, liveness, control policies, layering of policies, flow designs, transaction-based and notification-based designs. Concurrent programming applications: GUI applications, distributed applications - network clients and servers interaction, serialization, remote procedure calls (e.g. Java RMI).


At the completion of this subject, students should: 1- have an in-depth understanding of concurrency, task decomposition, and concurrent programming in distributed and networked environments. 2- be able to analyze and appreciate the design issues, such as deadlock, livelock, etc., in concurrent programming applications. 3- be able to develop concurrent multi-threaded applications using proper concurrent programming techniques to improve the performance of applications and to avoid pitfalls in the design of applications which have concurrency in nature. 4- be able to apply concurrent programming techniques to real-life problems, eg, event-based, GUI based, distributed and network applications. Students will gain important experience of task decomposition and concurrent design concepts in building concurrent applications. They will also gain good skills in building event-based multi-threaded applications and particularly networked and distributed applications using sockets and RMI.


Assignments: 40% - Examination: 60%

Contact hours

Lecture: 2 hours per week. Tutorial: 2 hours per week.


CPE1001 or FIT1002