The University of Western Australia
Department of Computer Science and Software Engineering

Department of Computer Science and Software Engineering

CITS2002 Systems Programming

Overview for 2018

Welcome to the CITS2002 website for 2018. All online material for the unit will be published here. No unit material is published in UWA LMS.

Understanding the relationship between a programming language and the contemporary operating systems on which it executes is central to developing many skills in Computer Science. This unit introduces the standard C programming language, on which many other programming languages are based and with which significant systems are built, through a study of core operating system services including input and output, memory management, and file systems.

The C language is introduced through discussions on basic topics like data types, variables, expressions, control structures, scoping rules, functions and parameter passing. More advanced topics like C's run-time environment, system calls, dynamic memory allocation, pointers and recursion are presented in the context of operating system services related to process execution, memory management and file systems. The importance of process scheduling, memory management, and interprocess communication in modern operating systems is discussed in the context of operating system support for multiprogramming.

Laboratory and workshop exercises place a strong focus on the practical application of fundamental programming concepts, with examples designed to compare and contrast many key features of contemporary operating systems.

Unit coordinator

Dr Chris McDonald, Rm 2.20 of the CSSE Building,

Weekly consultation time (Office Hours)

Tuesdays 2pm-4pm, Rm 2.20 of the CSSE Building, or email for an appointment.

Who'll be helping in laboratories

Chris McDonald

Ryan Bunney

Daniel Cowen

Jordan Hedges

Weekly Timetable

Students are strongly encouraged to attend the two 1-hour lectures and the 1-hour workshop each week (starting week 1), and one 2-hour laboratory session each week (starting week 2).

The UWA Timetable for CITS2002.

Mon: 10-12, 12-2, 2-4
Tue: 11-1
Wed: 8-10, 10-12, 12-2
Thu: 8-10, 10-12

The lectures and the workshop are recorded, but be aware that recordings sometimes fail. Each week's workshop and each week's lab session will focus on and extend material from the previous week.

Workshops reiterate the material introduced in the lectures and are aimed as review exercises for students who need extra assistance in understanding unit material. Workshops are held in a standard lecture venue, and no (or very little) new material is introduced. Students should use these sessions to ask questions about the lecture material and to seek assistance in solving the week's workshop problem. Students should attempt these exercises before attending the workshop. Attendance at workshop classes is not compulsory.

Practical work is a very important component of this unit, both in weekly laboratory sessions that will reinforce lecture material, and in project material that requires you to increase the depth of your knowledge. This unit has a number of 2 hour weekly lab sessions in which you are able to undertake the laboratory and project work. Attendance at laboratory session is not compulsory - in fact we do not have enough laboratory times available for the whole class - rather, they are times at which you will be able to receive assistance.

Learning Objectives

By undertaking this unit, students will:
  1. gain a sound appreciation of the fundamentals of the standard C programming language and the imperative programming paradigm;
  2. learn how to decide when to choose the C programming language and its standard library for their programming requirements;
  3. learn how to apply the most appropriate techniques to successfully develop robust programs in the C language;
  4. understand the role of an operating system in the wider computing context;
  5. develop knowledge of the relationship and interactions between an operating system's critical components; and
  6. develop an understanding of the relationship between contemporary operating systems, programming languages and user interfaces.


The assessment for CITS2002 comprises a mid-semester multi-choice test, a practical project, and a final examination. All programming work is submitted using cssubmit. As the semester proceeds, your marks will be updated and recorded in csmarks.

Assessment % of final mark Assessment Dates
Mid-semester test 20% 9am, Fri 7th Sept (wk 6)
Practical project
(individual work, or in a team of two students)
30% 11:59AM, Fri 26th Oct (wk 12)
Final examination 50% 2 hours in November 2018


Before undertaking this unit, students are strongly encouraged to read the university policies that apply to this unit:

Department of Computer Science and Software Engineering

This Page

Written by: