Course overview
- Study period
- Semester 2, 2024 (22/07/2024 - 18/11/2024)
- Study level
- Postgraduate Coursework
- Location
- St Lucia
- Attendance mode
- In Person
- Units
- 2
- Administrative campus
- St Lucia
- Coordinating unit
- Elec Engineering & Comp Science School
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
More detailed introduction on the concurrent programming will be given.
Course requirements
Assumed background
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.
Students are recommended to install and learn the SPIN model checkerᅠbefore assignments.ᅠ
Prerequisites
You'll need to complete the following courses before enrolling in this one:
CSSE2002 or CSSE7023
Course contact
Course staff
Lecturer
Timetable
The timetable for this course is available on the UQ Public Timetable.
Additional timetable information
Students should attend both lecture and exercise sessions every week.ᅠThis course consists of a 2-hour lecture session and a 1-hour exercise session each week. The lectures will be mainly used to introduce new material, and the exercise sessions will be used to work on exercises related to the lecture material.ᅠ
Aims and outcomes
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.
Learning outcomes
After successfully completing this course you should be able to:
LO1.
Explain the issues that are specific to concurrent programming, and solve issues in practice.
LO2.
Specify concurrent algorithms independent of programming language.
LO3.
Verify the correctness of concurrent algorithms using both deductive techniques and software-based tools.
LO4.
Develop concurrent algorithms in a modern programming language.
LO5.
Design concurrent algorithms using both traditional and modern approaches to synchronisation.
LO6.
Explain how distributed programs are special types of concurrent programs, and identify the important issues for these types of programs.
Assessment
Assessment summary
Category | Assessment task | Weight | Due date |
---|---|---|---|
Computer Code, Tutorial/ Problem Set | Assignment 1 | 25% |
5/09/2024 4:00 pm |
Computer Code, Tutorial/ Problem Set | Assignment 2 | 25% |
17/10/2024 4:00 pm |
Examination |
Final examination
|
50% |
End of Semester Exam Period 2/11/2024 - 16/11/2024 |
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.
Assessment details
Assignment 1
- Mode
- Written
- Category
- Computer Code, Tutorial/ Problem Set
- Weight
- 25%
- Due date
5/09/2024 4:00 pm
- Learning outcomes
- L01, L02, L03, L04
Task description
Application of the principles of mutual exclusion to the development and verification of concurrent algorithms.
Submission guidelines
Assignments are to be submitted via the course Blackboard site.
No submissions through email is accepted.
Deferral or extension
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.
Late submission
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.
Assignment 2
- Mode
- Written
- Category
- Computer Code, Tutorial/ Problem Set
- Weight
- 25%
- Due date
17/10/2024 4:00 pm
- Learning outcomes
- L01, L02, L03, L04, L05
Task description
Application of the principles of synchronisation to the development and verification of concurrent algorithms.
Submission guidelines
Assignments are to be submitted via the course Blackboard site.
Deferral or extension
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.
Late submission
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.
Final examination
- Hurdle
- Identity Verified
- Mode
- Written
- Category
- Examination
- Weight
- 50%
- Due date
End of Semester Exam Period
2/11/2024 - 16/11/2024
- Learning outcomes
- L01, L02, L03, L04, L05, L06
Task description
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.
Hurdle requirements
Your final mark will be calculated by adding up your marks for the assignments (out of 50), and the final exam (out of 50). Final exam is a hurdle assessment item. If you fail to obtain at least 40% of the mark for the final exam (i.e. 20 out of 50), your overall mark will be capped at 49%, corresponding to an overall grade of 3 or lower.Exam details
Planning time | 10 minutes |
---|---|
Duration | 120 minutes |
Calculator options | No calculators permitted |
Open/closed book | Open Book examination |
Exam platform | Paper based |
Invigilation | Invigilated in person |
Submission guidelines
Deferral or extension
You may be able to defer this exam.
Course grading
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 - 44 |
Minimal evidence of achievement of course learning outcomes. |
3 (Marginal Fail) | 45 - 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. |
Additional course grading information
Your final mark will be calculatedᅠby adding upᅠyour marks for the assignments (out of 50), and the final exam (out of 50). If you fail to obtain at least 40% of the mark for the final exam (i.e. 20 out of 50), your overall mark will be capped at 49%, corresponding to an overall grade of 3 or lower.
The final mark will be rounded to the nearest whole number before grade cutoffs apply. At the discretion of the course coordinator,ᅠmarks forᅠassessment itemsᅠmay be adjustedᅠupwards (uniformly across the class), but not downwards.
Supplementary assessment
Supplementary assessment is available for this course.
Additional assessment information
This assessment task evaluates students' abilities, skills and knowledge without the aid of generative Artificial Intelligence (AI) or Machine Translation (MT). Students are advised that the use of AI
technologies to develop responses is strictly prohibited and may constitute student misconduct under the Student Code of Conduct
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.
Learning resources
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.
Library resources
Find the required and recommended resources for this course on the UQ Library website.
Additional learning resources information
Facilities
EECS computing laboratories where you can work on assignments are normally open (accessible using swipe card) 24 hours a day, 7 days per week. Note that students officially enrolled in CSSE7610 will have accounts and disk space created for them.
Handouts
Electronic copies of all handouts will be made available on the course Blackboard site.
Distribution of notices
Announcements will be made in the lectures and on the course Blackboard site.ᅠYou are expected to read the notices on the course Blackboard site (at least once a week and more often near assignment deadlines).
Learning activities
The learning activities for this course are outlined below. Learn more about the learning outcomes that apply to this course.
Filter activity type by
Please select
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 |
General contact hours |
Exercise Sessions Exercise 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 |
Policies and procedures
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:
- Student Code of Conduct Policy
- Student Integrity and Misconduct Policy and Procedure
- Assessment Procedure
- Examinations Procedure
- Reasonable Adjustments - Students Policy and Procedure
Learn more about UQ policies on my.UQ and the Policy and Procedure Library.
School guidelines
Your school has additional guidelines you'll need to follow for this course: