Cloud and Concurrent Programming (UniSA)

Undergraduate | 2026

Course page banner
Mode icon
Mode
Mode
Your studies will be on-campus, and may include some online delivery
On campus
area/catalogue icon
Area/Catalogue
INFO 1060
Course ID icon
Course ID
207138
Campus icon
Campus
Mawson Lakes, Online
Level of study
Level of study
Undergraduate
Unit value icon
Unit value
6
Course owner
Course owner
Computer Science &InfoTech
Course level icon
Course level
1
Study abroad and student exchange icon
Inbound study abroad and exchange
Inbound study abroad and exchange
The fee you pay will depend on the number and type of courses you study.
No
University-wide elective icon
University-wide elective course
No
Single course enrollment
Single course enrolment
No
alt
Note:
Course data is interim and subject to change

Course overview

This course will provide students with theoretical and practical knowledge in cloud and concurrent programming, including: The cloud reference Model, cloud standards, cloud development, programming cloud services, programming cloud UI's, testing for cloud basedinfrastructures, security. Introduction: Definitions of concurrency and parallelism and their need in modern computing systems. Concurrency theory: The interleaving model of concurrency. The labelled 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 synchronisation 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.

Course learning outcomes

  • Design and implement cloud based applications
  • Build native graphical user interfaces that integrate web-based services
  • Construct safe high performance parallel and concurrent software using sound theoretical techniques
  • Implement threading and synchronisation correctly in the Java language

Prerequisite(s)

N/A

Corequisite(s)

N/A

Antirequisite(s)

N/A