Course overview
- Study period
- Semester 2, 2025 (28/07/2025 - 22/11/2025)
- Study level
- Postgraduate Coursework
- Location
- St Lucia
- Attendance mode
- In Person
- Units
- 2
- Administrative campus
- St Lucia
- Coordinating unit
- Elec Engineering & Comp Science School
CSSE7231 is an introduction to UNIX (Linux), the principles of computer systems (networks and operating systems) and systems programming in C.
You will learn about the basics of operating systems (processes, threads, virtual memory, file systems, etc.) in the context of the Linux operating system; and the basics of networking in the context of important Internet protocols (TCP, IP, etc.). You will learn how the operating system provides these services to user programs by way of system calls and you will write C programs that use these services - including programs that create and manage multiple processes/threads that communicate with each other - even across a network.
You will also become familiar with a Linux command line environment (shell) and be able to write common commands and simple shell scripts.
Course requirements
Assumed background
Students are assumed to have successfully completed an introductory programming course such as CSSE7030, CSSE1001 orᅠENGG1001. Strong programming skills (in any language) will be an advantage. It is also helpful if students have some basic knowledge of computer systemsᅠand some prior exposure to the C programming language (e.g. from CSSE7201 or CSSE2010).
Prerequisites
You'll need to complete the following courses before enrolling in this one:
CSSE7030
Recommended prerequisites
We recommend completing the following courses before enrolling in this one:
CSSE7201
Incompatible
You can't enrol in this course if you've already completed the following:
COMP2303 or COMP7306 or CSSE2310
Jointly taught details
This course is jointly-taught with:
- CSSE2310
All learning activities are jointly taught. CSSE7231 students will have additional functionality to implement in assignments 3 and 4.
Course contact
Course staff
Lecturer
Timetable
The timetable for this course is available on the UQ Public Timetable.
Additional timetable information
Students should signup to one (2 hour) PRA session. Note these sessions start in Week 1.
Aims and outcomes
The main goal of this course is to produce students who are competent C systems programmers who have a good understanding of how the underlying operating systems and networks work.
Assessment
Assessment summary
Category | Assessment task | Weight | Due date |
---|---|---|---|
Computer Code |
Assignment One - Introductory C Programming
|
15% |
29/08/2025 3:00 pm |
Computer Code, Quiz |
Assignment Two - Debugging
|
10% |
12/09/2025 3:00 pm |
Computer Code |
Assignment Three - Processes and Pipes
|
15% |
10/10/2025 3:00 pm |
Computer Code |
Assignment Four - Threads and Network Programming
|
15% |
31/10/2025 3:00 pm |
Examination |
Final Exam
|
45% |
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.
Assessment details
Assignment One - Introductory C Programming
- Hurdle
- Mode
- Product/ Artefact/ Multimedia, Written
- Category
- Computer Code
- Weight
- 15%
- Due date
29/08/2025 3:00 pm
- Learning outcomes
- L02, L03, L04
Task description
You will write a C program for Linux that implements a given specification and that follows a given style guide. You will use a version control system to progressively build your application. The task description will be released in week 2. Artificial Intelligence (AI) and Machine Translation (MT) tools may be used for this assignment. See additional assessment information below for more information.
Hurdle requirements
Students must achieve at least 40% on their OVERALL assignment mark (A1 + A2 + A3 + A4). See the "Course Grading" section for details.Submission guidelines
Programs must be submitted electronically as detailed in the assignment specification.
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.
Late submission
Assignment submissions received after the due time (or any approved extended deadline) will be subject to a 100% late penalty. A one-hour grace period applies to the due time after which time (4:00:00pm) the 100% late penalty will be imposed. This grace period is designed to deal with issues that might arise during submission (e.g. delays with Blackboard or Gradescope) and should not be considered a shift of the due time.
Assignment Two - Debugging
- Hurdle
- Mode
- Activity/ Performance
- Category
- Computer Code, Quiz
- Weight
- 10%
- Due date
12/09/2025 3:00 pm
- Learning outcomes
- L02
Task description
The assignment will require students to understand the C programming language and apply debugging skills to understand the behaviour of a program. Artificial Intelligence (AI) and Machine Translation (MT) tools may be used for this assignment (no referencing is required). However, these tools are unlikely to be helpful; the assignment can be completed without using these tools.
Hurdle requirements
Students must achieve at least 40% on their OVERALL assignment mark (A1 + A2 + A3 + A4). See the "Course Grading" section for details.Submission guidelines
Student attempts are recorded automatically by the assignment software.
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.
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 Three - Processes and Pipes
- Hurdle
- Mode
- Product/ Artefact/ Multimedia, Written
- Category
- Computer Code
- Weight
- 15%
- Due date
10/10/2025 3:00 pm
- Learning outcomes
- L02, L03, L04, L05, L06
Task description
The third assignment will require development of an application that interacts with a UNIX file system and uses multiple processes that communicate with each other. Artificial Intelligence (AI) and Machine Translation (MT) tools may be used for this assignment. See additional assessment information below for more information.
Hurdle requirements
Students must achieve at least 40% on their OVERALL assignment mark (A1 + A2 + A3 + A4). See the "Course Grading" section for details.Submission guidelines
Programs must be submitted electronically as detailed in the assignment specification.
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.
Late submission
Assignment submissions received after the due time (or any approved extended deadline) will be subject to a 100% late penalty. A one-hour grace period applies to the due time after which time (4:00:00pm) the 100% late penalty will be imposed. This grace period is designed to deal with issues that might arise during submission (e.g. delays with Blackboard or Gradescope) and should not be considered a shift of the due time.
Assignment Four - Threads and Network Programming
- Hurdle
- Mode
- Product/ Artefact/ Multimedia, Written
- Category
- Computer Code
- Weight
- 15%
- Due date
31/10/2025 3:00 pm
- Learning outcomes
- L02, L03, L04, L05, L06, L08, L10
Task description
This assignment will involve writing a network client/server application that uses multiple threads. Artificial Intelligence (AI) and Machine Translation (MT) tools may be used for this assignment. See additional assessment information below for more information.
Hurdle requirements
Students must achieve at least 40% on their OVERALL assignment mark (A1 + A2 + A3 + A4). See the "Course Grading" section for details.Submission guidelines
Programs must be submitted electronically as detailed in the assignment specification.
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.
Late submission
Assignment submissions received after the due time (or any approved extended deadline) will be subject to a 100% late penalty. A one-hour grace period applies to the due time after which time (4:00:00pm) the 100% late penalty will be imposed. This grace period is designed to deal with issues that might arise during submission (e.g. delays with Blackboard or Gradescope) and should not be considered a shift of the due time.
Final Exam
- Hurdle
- Identity Verified
- Mode
- Written
- Category
- Examination
- Weight
- 45%
- Due date
End of Semester Exam Period
8/11/2025 - 22/11/2025
- Other conditions
- Time limited, Secure.
- Learning outcomes
- L01, L02, L03, L04, L05, L06, L07, L08, L09, L10
Task description
The final exam will be an on-campus, invigilated paper-based exam. The exam is closed book. A useful information sheet will be provided. The exam covers all course materials from the whole semester. Question formats may include short answer, calculations, and programming tasks.
Hurdle requirements
Students must achieve at least 40% on the final exam to pass the course.Exam details
Planning time | 10 minutes |
---|---|
Duration | 120 minutes |
Calculator options | (In person) Casio FX82 series only or UQ approved and labelled calculator |
Open/closed book | Closed book examination - no written materials permitted |
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 | Description |
---|---|
1 (Low Fail) |
Absence of evidence of achievement of course learning outcomes. Course grade description: Overall mark is in the range 0 to 19. |
2 (Fail) |
Minimal evidence of achievement of course learning outcomes. Course grade description: Overall mark is in the range 20 to 44. |
3 (Marginal Fail) |
Demonstrated evidence of developing achievement of course learning outcomes Course grade description: Overall mark is in the range 45 to 49. OR Overall mark is > 49 but either of the final exam mark or overall assignment mark are < 40%. |
4 (Pass) |
Demonstrated evidence of functional achievement of course learning outcomes. Course grade description: Overall mark is in the range 50 to 64 and both the final exam mark and the overall assignment mark are >= 40%. |
5 (Credit) |
Demonstrated evidence of proficient achievement of course learning outcomes. Course grade description: Overall mark is in the range of 65 to 74 and both the final exam mark and the overall assignment mark are >= 40%. |
6 (Distinction) |
Demonstrated evidence of advanced achievement of course learning outcomes. Course grade description: Overall mark is in the range of 75 to 84 and both the final exam mark and the overall assignment mark are >= 40%. |
7 (High Distinction) |
Demonstrated evidence of exceptional achievement of course learning outcomes. Course grade description: Overall mark is in the range of 85 to 100 and both the final exam mark and the overall assignment mark are >= 40%. |
Additional course grading information
Your overall assignment mark will be the weighted sum of your four assignment marks (i.e. weighted as per above). Passing this course requires demonstration of both theoretical and practical learning outcomes. You therefore must achieve at least 40% (22 out of 55) on your overall assignment mark to achieve a grade of 4 or higher. You must also achieve at least 40% on the final exam to achieve a grade of 4 or higher. Your overall course mark will be rounded to the nearest whole number prior to applying the grade cutoffs above. Examination and overall assignment marks are NOT rounded prior to checking the 40% hurdle.ᅠ
Supplementary assessment
Supplementary assessment is available for this course.
Supplementary assessment for this course may take the form of a written supplementary exam, a programming task, an oral exam, or any combination of these. The exact form will depend on the reason you did not achieve a passing grade and will assess those learning outcomes for which you have not achieved a passing result. To pass the course after supplementary assessment you must achieve at least a passing level (50%) on the supplementary assessment to demonstrate you have achieved the learning outcomes.
Additional assessment information
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, Linux man pages, 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.ᅠ
Programming Assignment Interviews
For the programming assignments (one, three and four) the teaching staff will conduct interviews with students about their submissions for the purpose of establishing genuine authorship. For assignments one and three, all students will be interviewed in their allocated practical session following their submission deadline (or extended deadline if appropriate). For programming assignment four, a subset of students will be interviewed. 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 in your repository) 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 for assignment four 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 assignment four 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 for any programming assignment will result in zero marks for the assignment unless exceptional circumstances can be demonstrated with supporting evidence.
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.
Other
In accordance with the Assessment Procedure, marks may be moderated, and grade cutoffs may be lowered if academically justified.
The EAIT Associate Dean (Academic) has approved the use of five assessment tasks in this course based on sound pedagogical reasons.
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.
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 |
Practical |
Pracs Pracs will commence in week one. Early pracs will have defined material you can work through. Learning outcomes: L01, L02, L03, L04, L05, L06, L08, L10 |
Lecture |
Lectures Weekly lectures (3 hours) will introduce the course content and cover examples. Some lectures will be more practical in nature, e.g. covering practical issues, programming demonstrations, or working through exercises. Learning outcomes: L01, L02, L03, L04, L05, L06, L07, L08, L09, L10 |
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 for 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: