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

School of Computer Science and Software Engineering

CITS2002 Systems Programming

Overview for 2018

Welcome to the website for CITS2002 in 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 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 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, two practical projects, 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% TBA
1st practical project 15% TBA
2nd practical project 15% TBA
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:

This Page

Written by: