Skip to content | Change text size

FIT3007 - Concurrent programming

6 points, SCA Band 2, 0.125 EFTSL

Undergraduate Faculty of Information Technology

Offered

Not offered in 2007

Synopsis

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).

Objectives

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.

Assessment

Assignments: 40% - Examination: 60%

Contact hours

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

Prerequisites

CPE1001 or FIT1002

Prohibitions

CPE2001