Concurrent Programming
Course Level Undergraduate
Course Level Undergraduate
                                                        Area/Catalogue
                                                        
INFT 3030
                                                    
                                                        Course Level
                                                        
Undergraduate
                                                    
                                                        Offered Externally
                                                        
Yes
                                                    
Note: This offering may or may not be scheduled in every study period. Please refer to the timetable for further details.
Course ID
156791
                                                        Unit Value
                                                        
4.5
                                                    
                                                        University-wide elective course
                                                        
No
                                                    
                                                        Course owner
                                                        
School of Information Technology and Mathematical Sciences
                                                    
To give students the theoretical and practical skills to be able to create safe high performance parallel and concurrent software.
Introduction: Definitions of concurrency and parallelism and their need in modern computing systems. 
Concurrency theory: The interleaving model of concurrency. The labeled transition system formalism for concurrency. Traces, atomicity, deterministic and non deterministic choice. Properties of concurrent systems. Safety and liveness. 
Concurrency practice: Java threads. Low level synchronization with monitors and semaphores. High level design patterns for concurrent computing. The java.util.concurrent implementation of design patterns: Thread per minute, worker threads, polling and event driven IO, thread pools, joining threads, futures, scheduling, parallel decomposition, fork join, barriers, active objects. Thread safe collections. Android concurrency design patterns 
Parallel Programming: Overview of OpenMP for multicore, MPI for clusters and OpenCL for GPUs. 
Testing of software: Testing for correctness, testing for performance.
Jeff Magee, Jeff Kramer 2006, Concurrency: State Models and Java Programs, 2nd , Wiley, Milton, Queensland
Douglas Lea 2000, Concurrent Programming in Java: Design Principles and Patterns, 2nd, Addison-Wesley Professional
Nil
| Common to all relevant programs | |
|---|---|
| Subject Area & Catalogue Number | Course Name | 
| COMP 2012 | Data Structures | 
| Component | Duration | ||
|---|---|---|---|
| INTERNAL, MAWSON LAKES | |||
| Lecture | 2 x weekly | ||
| Computer Practical | 2 x Weekly | ||
| EXTERNAL, MAWSON LAKES, ONLINE | |||
| External | N/A x 13 weeks | ||
Note: These components may or may not be scheduled in every study period. Please refer to the timetable for further details.
Assignment, Continuous assessment, Test
                EFTSL*: 0.125
                Commonwealth Supported program (Band 2)
                To determine the fee for this course as part of a Commonwealth Supported program, go to:
                How to determine your Commonwealth Supported course fee. (Opens new window)
            
Fee-paying program for domestic and international students
International students and students undertaking this course as part of a postgraduate fee paying program must refer to the relevant program home page to determine the cost for undertaking this course.
Non-award enrolment
Non-award tuition fees are set by the university. To determine the cost of this course, go to:
How to determine the relevant non award tuition fee. (Opens new window)
Not all courses are available on all of the above bases, and students must check to ensure that they are permitted to enrol in a particular course.
* Equivalent Full Time Study Load. Please note: all EFTSL values are published and calculated at ten decimal places. Values are displayed to three decimal places for ease of interpretation.
