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, and pointers 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.
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 and current weeks.
The weekly UWA Timetable for CITS2002 (the mid-semester test is, of course, only held in week-5 of semester).
Workshops reiterate the material introduced in the lectures and provide review exercises for students who need extra assistance. 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.
Weekly laboratory sessions, which reinforce lecture material, are a very important component of this unit; Each student will need to undertake 4-6 hours of practical/laboratory work each week.
Attendance at laboratory sessions is not compulsory (in fact we do not have enough laboratory times available for the whole class). Instead, there are a number of 2 hour laboratory periods each week at which students will be able to gain assistance from laboratory demonstrators. Students are encouraged to attend at least one of these sessions each week to informally assess their progress. All of our laboratory sessions will be held in CSSE Lab 2.03. Please keep in mind that other units also use Lab 2.03, (at Tuesday 9-11, Tuesday 2-6, and Wednesday 2-4) and may not welcome CITS2002 students at these times.
Mon: 10-12, 12-2, 2-4.
Wed: 10-12, 12-2.
Thu: 10-12, 2-4, 4-6.
The assessment for CITS2002 comprises a mid-semester multi-choice test, two programming projects, and a final examination. Students may choose to undertake each project individually, or with one other student. 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 30th Aug (wk 5)|
|1st programming project||20%||11:59PM, Fri 13th Sept (wk 7)|
|2nd programming project||20%||11:59PM, Fri 18th Oct (wk 11)|
|Final examination||40%||2 hours in November 2019|
Before undertaking this unit, students are strongly encouraged to read the university policies that apply to this unit: