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

School of Computer Science and Software Engineering

CITS2002 Systems Programming

Overview for 2016

Welcome to the website for CITS2002 in 2016. All online material for the course 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 and systems are based, 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 tutorial work 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,

Office consultation

Wednesdays 10am-12noon in Rm 2.20 of the CSSE Building, or email for an appointment.

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% 2pm Tuesday 6th September 2016 (week 6)
1st practical project 15% 12noon Friday 23rd September 2016 (week 8)
2nd practical project 15% 12noon Friday 4th November 2016 (week 13)
Final examination 50% 2 hours in November 2016


Students should attend the two 1-hour lectures and the 1-hour tutorial each week (starting week 1), and one 2-hour laboratory session each week (starting week 2). The lectures and the tutorial are recorded, but be aware that recordings sometimes fail. Each week's tutorial and each week's lab session will focus on and extend material from the previous week.

Tutorials reiterate the material introduced in the lectures and are aimed as review exercises for students who need extra assistance in understanding unit material. Students should use these sessions to ask questions about the lecture material and to seek assistance in solving the posted tutorial problems. Students should attempt these exercises before attending the tutorial. Attendance at tutorial 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 - rather, they are times at which you will be able to receive assistance. Laboratories will be supervised for the full 2 hours of each session.

Lecture 2pm - 3pm Tuesday Weatherburn Lect.Th (Maths)
Lecture 3pm - 4pm Thursday Ross Lect.Th (Physics)
Tutorial 9am - 10am Friday Weatherburn Lect.Th (Maths)
Laboratory 3pm - 5pm Tuesday CSSE Laboratory 2.03 (Chris)
(attend one each week) 9am - 11am Wednesday CSSE Laboratory 2.03 (Amar)
11am - 1pm Wednesday CSSE Laboratory 2.03 (Trent)
2pm - 4pm Wednesday CSSE Laboratory 2.03 (Trent)
4pm - 6pm Wednesday CSSE Laboratory 2.03 (Trent)
9am - 11am Thursday CSSE Laboratory 2.03 (Amar)
11am - 1pm Thursday CSSE Laboratory 2.03 (Amar)


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

This Page

Written by: