CITS2002 Systems Programming

Credit
6 points
Offering
(see Timetable)
AvailabilityLocationMode
Semester 2UWA (Perth)Face to face
Details for undergraduate courses
  • Level 2 core unit in the Computer Science; Data Science major sequences
  • Level 2 core unit in the Software Engineering specialisation in the Engineering Science major sequence
  • Category B broadening unit for students
  • Level 2 elective
Content
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.
Outcomes
Students are able to (1) identify and appreciate the fundamentals of the imperative programming paradigm, using the standard C programming language as an example; (2) decide when to choose the C programming language and its standard library for their systems programming requirements; (3) apply the most appropriate techniques to successfully develop robust systems programs in the C language; (4) understand the role of an operating system in the wider computing context; (5) understand the relationship and interactions between an operating system's critical components and their affect on performance; and (6) develop an understanding of the relationship between contemporary operating systems, programming languages and systems-level application programming interfaces.
Assessment
Typically this unit is assessed in the following ways: (1) computer-based implementation projects; (2) mid-semester test; and (3) a final examination. Further information is available in the unit outline.

Supplementary assessment is not available in this unit except in the case of a bachelor's pass degree student who has obtained a mark of 45 to 49 overall and is currently enrolled in this unit, and it is the only remaining unit that the student must pass in order to complete their course.
Unit Coordinator(s)
Dr Chris McDonald
Unit rules
Advisable prior study:
CITS1001 Object-oriented Programming and Software Engineering
or
CITS1401 Problem Solving and Programming
or
CITS2401 Computer Analysis and Visualisation
Incompatibility:
CITS1210 C Programming, CITS2230 Operating Systems, CITS1002 Programming and Systems
  • The availability of units in Semester 1, 2, etc. was correct at the time of publication but may be subject to change.
  • All students are responsible for identifying when they need assistance to improve their academic learning, research, English language and numeracy skills; seeking out the services and resources available to help them; and applying what they learn. Students are encouraged to register for free online support through GETSmart; to help themselves to the extensive range of resources on UWA's STUDYSmarter website; and to participate in WRITESmart and (ma+hs)Smart drop-ins and workshops.
  • Books and other material wherever listed may be subject to change. Book lists relating to 'Preliminary reading', 'Recommended reading' and 'Textbooks' are, in most cases, available at the University Co-operative Bookshop (from early January) and appropriate administrative offices for students to consult. Where texts are listed in the unit description above, an asterisk (*) indicates that the book is available in paperback.