Skip to menu Skip to content Skip to footer
Course profile

Computer Systems Principles and Programming (CSSE2310)

Study period
Sem 2 2024
Location
St Lucia
Attendance mode
In Person

Course overview

Study period
Semester 2, 2024 (22/07/2024 - 18/11/2024)
Study level
Undergraduate
Location
St Lucia
Attendance mode
In Person
Units
2
Administrative campus
St Lucia
Coordinating unit
Elec Engineering & Comp Science School

Systems Programming in C. Operating Systems Principles: memory management, basics of machine organization, file systems, processes and threads, interprocess communication. Computer Networks Principles: topologies and models of computer networks, protocols, network programming, network applications.

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 additional functionality to implement in assignments 3 and 4.

Course contact

Course coordinator

Associate Professor Peter Sutton

Consultation details will be made available on Blackboard.

Course staff

Lecturer

Associate Professor Peter Sutton

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.

Use the Subversion version control system, including being able to identify appropriate commands for various operations and write appropriate SVN commit messages.

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
15%

23/08/2024 3:00 pm

Computer Code, Quiz Assignment Two - Debugging
  • Hurdle
10%

6/09/2024 3:00 pm

Computer Code Assignment Three - Processes and Pipes
  • Hurdle
15%

4/10/2024 3:00 pm

Computer Code Assignment Four - Threads and Network Programming
  • Hurdle
15%

25/10/2024 3:00 pm

Examination Final Exam
  • Hurdle
  • Identity Verified
45%

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 One - Introductory C Programming

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

23/08/2024 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.

Hurdle requirements

Students must achieve at least 40% on their overall assignment mark. 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

6/09/2024 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.

Hurdle requirements

Students must achieve at least 40% on their overall assignment mark. 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

4/10/2024 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.

Hurdle requirements

Students must achieve at least 40% on their overall assignment mark. 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

25/10/2024 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.

Hurdle requirements

Students must achieve at least 40% on their overall assignment mark. 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

2/11/2024 - 16/11/2024

Other conditions
Time limited.

See the conditions definitions

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. 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 or UQ approved , labelled calculator only

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

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.

Programming Assignment Interviews

For the programming assignments (one, three and four) 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 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 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.

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.

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.

Learning outcomes: L01, L02, L03, L04, L05, L06, L08, L10

Lecture

Lectures & Contacts

Weekly lectures (2 hours) and contacts (1 hour) will introduce the course content and cover examples. In general (but not always) the contact sessions will be more practical in nature, e.g. covering practical issues, programming demonstrations, or working through exercises. In some weeks, the contact sessions will be used for the presentation of lecture materials.

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: