Course coordinator
Weekly office hours will be available. Please see details on the course Blackboard site and/or email the course coordinators.
Provides a solid understanding of the issues of concurrent programming - processes and threads, scheduling, synchronisation, communications, and data sharing - including their application in distributed systems. The course covers methods for both the specification and verification of such systems at a high level of abstraction, and their implementation in a modern programming language.
This course introduces students to concurrent programming focussing on (i) algorithmic principles (rather than language syntax), (ii) verifying program correctness, and (iii) implementation of concurrency in Java. It covers the fundamentals of programming multiple threads and accessing shared memory, and standard synchronization techniques. Selected techniques used in multicore programming, distributed and real-time systems are also covered.
Course Changes in Response to Previous Student Feedback
Minor improvements have been made to improve both lecture and applied class content.
Assignments have been re-worked to use modern verification tooling.
A checkpoint quiz has been introduced to provide early progress feedback to students.
Students are expected to have a strong programming background, andᅠbeᅠfamiliarᅠwithᅠJava programming. Students who have not programmed in Java before should consult a suitable Java textbook or online Java tutorial early in the semester.
You'll need to complete the following courses before enrolling in this one:
CSSE2002 or CSSE7023
Weekly office hours will be available. Please see details on the course Blackboard site and/or email the course coordinators.
Weekly office hours will be available. Please see details on the course Blackboard site and/or email the course coordinators.
The timetable for this course is available on the UQ Public Timetable.
Students should attend both lecture and applied sessions every week.ᅠ This course consists of a 2-hour lecture session and a 1-hour applied class each week. The lectures will be mainly used to introduce new material, and the applied sessions will be used to work on exercises related to the lecture material.ᅠ
To give students an appreciation of the difference between sequential and concurrent programs, and to give them practical skills for specifying, designing, implementing, and verifying concurrent programs.
Category | Assessment task | Weight | Due date |
---|---|---|---|
Computer Code, Tutorial/ Problem Set | Assignment 1 | 25% |
12/09/2025 4:00 pm |
Computer Code, Tutorial/ Problem Set | Assignment 2 | 25% |
24/10/2025 4:00 pm |
Examination |
Final examination
|
50% |
End of Semester Exam Period 8/11/2025 - 22/11/2025 |
A hurdle is an assessment requirement that must be satisfied in order to receive a specific grade for the course. Check the assessment details for more information about hurdle requirements.
12/09/2025 4:00 pm
Application of the principles of mutual exclusion to the development and verification of concurrent algorithms.
Artificial Intelligence (AI) and Machine Translation (MT) are emerging tools that may support students in completing this assessment task. Students may appropriately use AI and/or MT in completing this assessment task. Students must clearly reference any use of AI or MT in each instance. A failure to reference generative AI or MT use may constitute student misconduct under the Student Code of Conduct.
Note that all assignments are to be worked on individually and must be your own work except where the use of code written or provided by other entities (teaching staff, AI tools, etc.) is explicitly permitted by the assignment specification. Artificial Intelligence (AI) and Machine Translation (MT) tools are permitted to be used in the programming assignments in this course, but they are not required to be used and not recommended to be used as they may inhibit learning and introduce bugs into your code. You must always follow the referencing requirements set out in the assignment specification and documents referenced from the assignment specification. Failure to appropriately reference the resources (tools and information sources) used in your work may result in misconduct allegations against you. You are encouraged to discuss the concepts behind the assignments but under no circumstances should you show your code to, or allow your code to be seen by, another student. You should not look at the code of any other student. You must sufficiently protect all electronic and paper copies of your code. All submitted code will be subject to electronic plagiarism and collusion detection. Assignments with no academic merit will be awarded a mark of zero. You may have to verbally answer questions about your submission as part of the assignment marking process.ᅠ
Assignment Interviews
For the two assignments, the teaching staff will conduct interviews with a subset of students about their submissions for the purpose of establishing genuine authorship. If you write your own code, you have nothing to fear from this process. If you legitimately use permitted code from other sources (following the usage/referencing requirements in the assignment specification), then you are expected to understand that code. If you are not able to adequately explain the design of your solution and/or adequately explain your submitted code (and/or earlier versions of your submission) and/or be able to make simple modifications to your solution as requested at the interview, then your assignment mark will be scaled down based on the level of understanding you are able to demonstrate and/or your submission may be subject to a misconduct investigation where your interview responses form part of the evidence. Interview invitations will be issued by email to your student email account at any time up until the end of week one of the exam period. Failure to respond to an interview invitation by the deadline stated in the invitation (which will be at least one week after the invitation is sent) or failure to attend a scheduled interview will result in zero marks for the assignment unless exceptional circumstances can be demonstrated with supporting evidence.
Assignments are to be submitted via the course Blackboard or Gradescope site. Detailed instructions will be provided in the task specification.
You may be able to apply for an extension.
The maximum extension allowed is 7 days. Extensions are given in multiples of 24 hours.
Marked assignments with feedback and/or detailed solutions with feedback will be released to students within 7-14 days.
A penalty of 10% of the maximum possible mark will be deducted per 24 hours from time submission is due for up to 7 days. After 7 days, you will receive a mark of 0.
24/10/2025 4:00 pm
Application of the principles of synchronisation to the development and verification of concurrent algorithms.
Artificial Intelligence (AI) and Machine Translation (MT) are emerging tools that may support students in completing this assessment task. Students may appropriately use AI and/or MT in completing this assessment task. Students must clearly reference any use of AI or MT in each instance. A failure to reference generative AI or MT use may constitute student misconduct under the Student Code of Conduct.
Note that all assignments are to be worked on individually and must be your own work except where the use of code written or provided by other entities (teaching staff, AI tools, etc.) is explicitly permitted by the assignment specification. Artificial Intelligence (AI) and Machine Translation (MT) tools are permitted to be used in the programming assignments in this course, but they are not required to be used and not recommended to be used as they may inhibit learning and introduce bugs into your code. You must always follow the referencing requirements set out in the assignment specification and documents referenced from the assignment specification. Failure to appropriately reference the resources (tools and information sources) used in your work may result in misconduct allegations against you. You are encouraged to discuss the concepts behind the assignments but under no circumstances should you show your code to, or allow your code to be seen by, another student. You should not look at the code of any other student. You must sufficiently protect all electronic and paper copies of your code. All submitted code will be subject to electronic plagiarism and collusion detection. Assignments with no academic merit will be awarded a mark of zero. You may have to verbally answer questions about your submission as part of the assignment marking process.ᅠ
Assignment Interviews
For the two assignments, the teaching staff will conduct interviews with a subset of students about their submissions for the purpose of establishing genuine authorship. If you write your own code, you have nothing to fear from this process. If you legitimately use permitted code from other sources (following the usage/referencing requirements in the assignment specification), then you are expected to understand that code. If you are not able to adequately explain the design of your solution and/or adequately explain your submitted code (and/or earlier versions of your submission) and/or be able to make simple modifications to your solution as requested at the interview, then your assignment mark will be scaled down based on the level of understanding you are able to demonstrate and/or your submission may be subject to a misconduct investigation where your interview responses form part of the evidence. Interview invitations will be issued by email to your student email account at any time up until the end of week one of the exam period. Failure to respond to an interview invitation by the deadline stated in the invitation (which will be at least one week after the invitation is sent) or failure to attend a scheduled interview will result in zero marks for the assignment unless exceptional circumstances can be demonstrated with supporting evidence.
Assignments are to be submitted via the course Blackboard or Gradescope site. Detailed instructions will be provided in the task specification.
You may be able to apply for an extension.
The maximum extension allowed is 7 days. Extensions are given in multiples of 24 hours.
Marked assignments with feedback and/or detailed solutions with feedback will be released to students within 7-14 days.
A penalty of 10% of the maximum possible mark will be deducted per 24 hours from time submission is due for up to 7 days. After 7 days, you will receive a mark of 0.
End of Semester Exam Period
8/11/2025 - 22/11/2025
Timing: The final exam will be scheduled at a fixed time for all students – i.e. students will complete the exam simultaneously.
Permitted materials: The exam is open book and students may bring any written or printed material into the examination room. Calculators and other computing or communication devices are NOT permitted.
Other Information: The final exam will be a summative assessment which covers all topics in this course. The examination is used to assess both the practical ability of the students on small problems and their understanding of the course material.
This assessment task is to be completed in-person. The use of generative Artificial Intelligence (AI) or Machine Translation (MT) tools will not be permitted. Any attempted use of AI or MT may constitute student misconduct under the Student Code of Conduct.
Planning time | 10 minutes |
---|---|
Duration | 120 minutes |
Calculator options | No calculators permitted |
Open/closed book | Open book examination - any written or printed material is permitted; material may be annotated |
Exam platform | Paper based |
Invigilation | Invigilated in person |
You may be able to defer this exam.
Full criteria for each grade is available in the Assessment Procedure.
Grade | Cut off Percent | Description |
---|---|---|
1 (Low Fail) | 0 - 19 |
Absence of evidence of achievement of course learning outcomes. |
2 (Fail) | 20 - 46 |
Minimal evidence of achievement of course learning outcomes. |
3 (Marginal Fail) | 47 - 49 |
Demonstrated evidence of developing achievement of course learning outcomes |
4 (Pass) | 50 - 64 |
Demonstrated evidence of functional achievement of course learning outcomes. |
5 (Credit) | 65 - 74 |
Demonstrated evidence of proficient achievement of course learning outcomes. |
6 (Distinction) | 75 - 84 |
Demonstrated evidence of advanced achievement of course learning outcomes. |
7 (High Distinction) | 85 - 100 |
Demonstrated evidence of exceptional achievement of course learning outcomes. |
The final mark will be rounded to the nearest whole number before grade cutoffs apply. Your final mark will be calculated by adding up your marks for the assignments (out of 50), and the final exam (out of 50). The final exam is a hurdle assessment item. If you fail to obtain at least 50% of the mark for the final exam (i.e. 25 out of 50), your overall mark will be capped at 49%, corresponding to an overall grade of 3 or lower.
Supplementary assessment is available for this course.
Other
In accordance with the Assessment Procedure, marks may be moderated, and grade cutoffs may be lowered if academically justified.
Having Troubles?
If you are having difficulties with any aspect of the course material you should seek help. Speak to the course teaching staff.
If external circumstances are affecting your ability to work on the course, you should seek help as soon as possible. The University and UQ Union have organisations and staff who are able to help, for example, UQ Student Services are able to help with study and exam skills, tertiary learning skills, writing skills, financial assistance, personal issues, and disability services (among other things).
Complaints and criticisms should be directed in the first instance to the course coordinator. If you are not satisfied with the outcome, you may bring the matter to the attention of the School of EECS Director of Teaching and Learning.
You'll need the following resources to successfully complete the course. We've indicated below if you need a personal copy of the reading materials or your own item.
Find the required and recommended resources for this course on the UQ Library website.
Facilities
There will be no special access to a computer lab for this course. ᅠPlease see the EECS Student Guide for information on expectations and requirements for the use of the computer labs.
Blackboard
Course material and announcements will appear on Blackboard at https://learn.uq.edu.au/. The Blackboard website should be checked for announcements regularly; at least once a week and more often in the week before assignments are due. Note that solutions or partial solutions to individual assignments should not be posted on any public forum. If you are uncertain about whether or not a post is appropriate, please contact the teaching staff for clarification. The blackboard will also contain links to other relevant tools such as the Ed discussion forum or Gradescope.
Sample exams
Some past exams are available from the library. See: http://www.library.uq.edu.au/exams/
The learning activities for this course are outlined below. Learn more about the learning outcomes that apply to this course.
Filter activity type by
Learning period | Activity type | Topic |
---|---|---|
Multiple weeks From Week 1 To Week 13 |
Lecture |
Lectures Lectures will be mainly used to introduce new material. There will also be time during lectures specifically for getting help with assignments. Learning outcomes: L01, L02, L03, L04, L05, L06 |
Multiple weeks From Week 2 To Week 13 |
Applied Class |
Applied Classes Applied sessions will be mainly used to work on exercises related to the lecture material. This will be a more interactive process than lecture presentations. The intent is to provide a learning environment that provides better support for the content covered in this course. There will also be time during exercise sessions specifically for getting help with assignments. Learning outcomes: L01, L02, L03, L04, L05, L06 |
A checkpoint quiz has been introduced to provide early progress feedback to students. This will be administered online in week 4 and week 5, and should be used by students to gauge progress prior to the census date.
University policies and procedures apply to all aspects of student life. As a UQ student, you must comply with University-wide and program-specific requirements, including the:
Learn more about UQ policies on my.UQ and the Policy and Procedure Library.
Your school has additional guidelines you'll need to follow for this course: