Skip to menu Skip to content Skip to footer
Course profile

Computer Systems Principles and Programming (CSSE2310)

Study period
Sem 1 2026
Location
St Lucia
Attendance mode
In Person

Course overview

Study period
Semester 1, 2026 (23/02/2026 - 20/06/2026)
Study level
Undergraduate
Location
St Lucia
Attendance mode
In Person
Units
2
Administrative campus
St Lucia
Coordinating unit
Elec Engineering & Comp Science School

CSSE2310 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 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 CSSE2010).

Prerequisites

You'll need to complete the following courses before enrolling in this one:

CSSE1001 or ENGG1001

Recommended prerequisites

We recommend completing the following courses before enrolling in this one:

CSSE2010

Incompatible

You can't enrol in this course if you've already completed the following:

COMP2303 or COMP7306 or CSSE7231

Jointly taught details

This course is jointly-taught with:

  • CSSE7231

All learning activities are jointly taught. CSSE7231 students will have a different final exam to that of CSSE2310 students.

Course contact

Course coordinator

Associate Professor Peter Sutton

Consultation details will be made available on Blackboard.

Course staff

Lecturer

Associate Professor Peter Sutton
Dr Eric Staykov

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.

Learning outcomes

After successfully completing this course you should be able to:

LO1.

Use a UNIX (Linux) shell and write commands and simple shell scripts to perform common tasks, including modifying file permissions.

LO2.

Write, compile, run and debug C programs in a UNIX (Linux) environment.

LO3.

Demonstrate appropriate use of the Subversion (SVN) version control system, including being able to write suitable commands for a range of version control tasks.

LO4.

Write C programs that access file systems and perform input/output using Standard C library calls and underlying system calls.

LO5.

Write and analyse C programs that create and control processes and threads.

LO6.

Evaluate and implement different methods of inter-process and inter-thread communication and coordination.

LO7.

Explain, contrast and be able to perform calculations on the properties/relationships/addressing schemes of layers in the IP networking stack and important protocols used on the Internet.

LO8.

Write network client and server programs using the sockets API.

LO9.

Predict the behaviour of, and perform calculations about, virtual memory systems and file systems.

LO10.

Apply principles of secure and defensive programming to C programs

Assessment

Assessment summary

Category Assessment task Weight Due date
Computer Code Assignment One - Introductory C Programming
  • Hurdle
  • In-person
15%

26/03/2026 3:00 pm

You must also attend an interview about your submission in your first allocated prac session following the deadline (or your submission time if you have an extension or make a late submission). See additional assessment information below for more information.

Computer Code Assignment Two - Processes and Pipes
  • Hurdle
  • In-person
15%

7/05/2026 3:00 pm

You may also be asked to attend an interview about your submission in your first allocated prac session in week 11 (or at some later time if you have not submitted by the time of that prac session). See additional assessment information below for more information.

Computer Code Assignment Three - Threads and Network Programming
  • Hurdle
  • In-person
15%

28/05/2026 3:00 pm

You may also be asked to attend an interview about your submission. See additional assessment information below for more information.

Examination Final Exam
  • Hurdle
  • Identity Verified
  • In-person
55%

End of Semester Exam Period

6/06/2026 - 20/06/2026

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
  • In-person
Mode
Product/ Artefact/ Multimedia, Written
Category
Computer Code
Weight
15%
Due date

26/03/2026 3:00 pm

You must also attend an interview about your submission in your first allocated prac session following the deadline (or your submission time if you have an extension or make a late submission). See additional assessment information below for more information.

Learning outcomes
L01, 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). 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.

Extensions are limited to 7 days as feedback will be provided within 12 days (allowing for late submissions also).

Late submission

A penalty of 10% of the maximum possible mark will be deducted per 24 hours (or part thereof) from the deadline (or your extended deadline, if applicable) for up to 4 days. After 4 days (96 hours), you will receive a mark of zero. Failure to attend an interview about your submission will result in a mark of zero.

Assignment Two - Processes and Pipes

  • Hurdle
  • In-person
Mode
Product/ Artefact/ Multimedia, Written
Category
Computer Code
Weight
15%
Due date

7/05/2026 3:00 pm

You may also be asked to attend an interview about your submission in your first allocated prac session in week 11 (or at some later time if you have not submitted by the time of that prac session). See additional assessment information below for more information.

Learning outcomes
L01, L02, L03, L04, L05, L06

Task description

The second assignment will require development of an application that interacts with a Linux 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). 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.

Extensions are limited to 7 days as feedback will be provided within 12 days (allowing for late submissions also).

Late submission

A penalty of 10% of the maximum possible mark will be deducted per 24 hours (or part thereof) from the deadline (or your extended deadline, if applicable) for up to 4 days. After 4 days (96 hours), you will receive a mark of zero. Failure to attend an interview about your submission, if requested, will result in a mark of zero.

Assignment Three - Threads and Network Programming

  • Hurdle
  • In-person
Mode
Product/ Artefact/ Multimedia, Written
Category
Computer Code
Weight
15%
Due date

28/05/2026 3:00 pm

You may also be asked to attend an interview about your submission. See additional assessment information below for more information.

Learning outcomes
L01, 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). 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.

Extensions are limited to 7 days as feedback will be provided within 12 days (allowing for late submissions also).

Late submission

A penalty of 10% of the maximum possible mark will be deducted per 24 hours (or part thereof) from the deadline (or your extended deadline, if applicable) for up to 4 days. After 4 days (96 hours), you will receive a mark of zero. Failure to attend an interview about your submission, if requested, will result in a mark of zero.

Final Exam

  • Hurdle
  • Identity Verified
  • In-person
Mode
Written
Category
Examination
Weight
55%
Due date

End of Semester Exam Period

6/06/2026 - 20/06/2026

Other conditions
Time limited, Secure.

See the conditions definitions

Learning outcomes
L01, 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 is < 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 three assignment marks, i.e., A1 (out of 15) + A2 (out of 15) + A3 (out of 15). Passing this course requires demonstration of both theoretical and practical learning outcomes. You therefore must achieve at least 40% (18 out of 45) 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 (the sum of your assignment mark out of 45 and your final exam mark out of 55) 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% hurdles.ᅠ

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 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.ᅠ

Programming Assignment Interviews

For the programming assignments, the teaching staff will conduct interviews with students about their submissions for the purpose of establishing genuine authorship and understanding. 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 describe/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. Scaling to zero marks is possible if no or very limited understanding is demonstrated. You may not bring notes or modified code to an interview - you are required to work from the code as you submitted it.

For assignment 1, all students will be interviewed about their submission at their first allocated practical session following the deadline (or at their allocated practical session in week 7 if they have not made a submission by the start of their week 5/6 session). For assignments 2 and 3, a subset of students will be selected for interview. A2 interviews will take place during your practical session following your submission or by separately scheduled interview with a member of the teaching staff. A3 interviews will be separately scheduled - you will be given a range of timeslots to choose from. Invitations for A2 and/or A3 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 or failure to attend a scheduled interview 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. Contact 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).

Other

In accordance with the UQ Assessment Procedure, marks may be moderated, and grade cutoffs may be lowered if academically justified.

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

Library resources are available 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
Clear filters
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. Later prac sessions will be an opportunity to get help on course material and assignments. Prac sessions will also be used for interviews following assignments one and two.

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:

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:

Course guidelines

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.