CITS2002 Systems Programming  
 

Unit home

Project 1

help2002

Lecture & Workshop
recordings on LMS

Schedule

FAQ

Unit outline

C textbooks

OS textbooks

Information resources


Extra reading

Past projects

Recent feedback


Working effectively

Look after yourself!

Frequently asked questions

CITS2002 is not using LMS?
That's correct. All teaching materials and resources for the unit, with the exception of lecture and workshop recordings, will be published on teaching.csse.uwa.edu.au/units/CITS2002/. This enables everyone, regardless of whether they're enrolled in CITS2002 this semester, or even a UWA student, to view the materials. Knowledge should not be locked away (unfortunately, you'll still need to navigate through UWA's LMS to reach the recordings).

Is attendance mandatory or even recorded?
Attendance at all CITS2002 events is optional, and not recorded. Even attendance at the final exam is optional.

What is the expected workload for CITS2002?
The expected workload for all units in our School (Physics, Mathematics, and Computing) is 150 hours across the semester, or roughly 10-12 hours per week. This will naturally vary for each student, depending of your abilities, level of interest, curiosity, and enthusiasm to succeed. You should devote your time to attending weekly lectures and workshops (3hrs/wk), reading a recommended textbook and webpages/tutorials (2hrs/wk), and undertaking the laboratory tasks and projects (4-6hrs/wk).

The clear message from past student surveys is - don't get behind!

Why doesn't the unit have a required textbook?
UWA requires that textbooks be described as either required or recommended. It is expected that required textbooks are referenced extensively in a unit, cover the majority of the unit's material, and contribute to much of the assessment. Those requirements don't provide a good match with CITS2002, where much of our material is available from higher-quality tutorial websites, reference, and standards material. But a number of students do, still like reading and learning from textbooks.

A number of recommended textbooks, covering the C Programming Language and Operating Systems, from very well respected operating system textbooks and authors, are identified and reading relevant sections from any of these texts will certainly benefit your understanding of the unit's material. This unit is not covering bleeding-edge developments and, so, past editions of these texts (even up to 10 years old), found in libraries or purchased second-hand, will be very suitable.

Why doesn't this unit allocate students to a regular laboratory session each week?
Unfortunately, this unit has more students enrolled than we can allocate labs (times) to. The labs (rooms) are shared with other CSSE units, and are fully timetabled between 8am-6pm each day. Moreover, there's a limited number of lab facilitators able to assist with the unit. Instead, the lab sessions are run as "drop-in-sessions" - times when there's guaranteed to be someone there to help - rather than "everyone gets a seat just for their nominated 2hour lab session". In the week before project deadlines we endeavour to increase the number of facilitators in each lab. Students should attend at least one lab session per week, and are welcome to attend more if requiring extra assistance. Most students will need to undertake 4-6 hours of practical work each week, and most prefer to undertake their practical work on their own laptops.

What operating-system does this unit use?
This unit doesn't require you to use a specific operating system for your laboratory exercises. However, the two assessed projects will be marked on either Linux or macOS. You are free to choose between the two platforms.

  • If your computer is already running Windows-11, you may run Ubuntu Linux within the standard Windows Subsystem for Linux (WSL) application (if your computer is running Windows-10, you are encouraged to upgrade to Windows-11). Installing WSL-2 is strongly preferred.
  • If your computer is already running Linux (natively), then any modern and up-to-date distribution will be a suitable substitute for Ubuntu Linux (Ubuntu 24.04 recommended) in CITS2002.
  • If your computer is an Intel or Apple Silicon based Apple Mac, running macOS v12 (Monterey), v13 (Ventura), or v14 (Sonoma), you will be able to undertake laboratory exercises and projects without much difficulty (any differences will be announced).

What software does this unit use?
Ubuntu Linux and macOS will both require command-line software tools, collectively termed developer tools, to complete laboratory exercises and projects. Most important will be a compiler (actually the whole toolchain) that supports the C11 programming language. Under Linux the preferred C compiler is gcc, and under macOS the preferred C compiler is clang. Throughout the unit, to avoid confusion, we will not identify the compiler being used, and will just execute the default, locally-installed, compiler with the command cc.

Is there a recommended editor for coding, such as VSCode?
We don't require, teach, or assess the use of any specific editor - students may use whatever editor they wish. Moreover, it's not the role of a second-year university unit to teach computing students how to use a general software tool. VSCode is a good platform-independent choice if you prefer IDEs.

However, we do encourage students to at least try using a character-based traditional text editor such as 'vi' as, one day, you'll be using a system without any graphical interface, perhaps over a network or on a headless device, and you'll need to know a text-only editor.

I've heard that this unit is hard. Will the marks be scaled?
No. From 2019, UWA has employed criterion referenced assessment, with rubrics provided for each assessment item, under which scaling is not permitted.

This FAQ was tl;dr
You may struggle in this unit.


The University of Western Australia

Computer Science and Software Engineering

CRICOS Code: 00126G
Presented by [email protected]