Course overview
- Study period
- Semester 2, 2024 (22/07/2024 - 18/11/2024)
- Study level
- Undergraduate
- Location
- St Lucia
- Attendance mode
- In Person
- Units
- 2
- Administrative campus
- St Lucia
- Coordinating unit
- Elec Engineering & Comp Science School
Implementation and design techniques for operating systems. Core material includes advanced kernel-level and device driver programming techniques, how operating systems principles are realised in practice, principles and practice of operating system support for distributed and real-time computing, case studies and different approaches to operating system design and implementation, including different models of software ownership.
This course aims to develop a theoretical grounding in operating system design, backed up by practical experience from making design and implementation changes to a real operating system.
Over the course of the semester, students will gain practical experience by writing systems programs (e.g., a shell) and implementing changes across core aspects of the operating system such as the scheduler,ᅠfilesystems, or device drivers. This will also involve using a virtual machine-based platform for development and testing.
Changes based on student feedback
We have changed the tutorial session to a contact session for presenting key concepts/advice only related to the assignments and labs. We have also changed the assessment to include more analysis based reflections.
Course requirements
Assumed background
The assignments in this course will involve working with the Linux based operating systems. The assignments will cover differentᅠaspects ofᅠoperating systems such as processes, synchronisation, mailboxes and disk storage. Programmingᅠwill involve C, and therefore good C programming skills are strongly recommended.
If you do not have a strong pass in CSSE2310ᅠ(or otherwise have poor C skills), this course is NOT recommended.
It is NOT recommended to do this course concurrently with CSSE2310.
Prerequisites
You'll need to complete the following courses before enrolling in this one:
COMP2303 or CSSE2310
Incompatible
You can't enrol in this course if you've already completed the following:
COMP3300 or COMP7303 or COMP7308
Course contact
Course staff
Lecturer
Timetable
The timetable for this course is available on the UQ Public Timetable.
Additional timetable information
The lecture session will be a two-hour weekly session, and the contact session will be a one-hour weekly session.
The 2-hour lecture session will be divided into theory lectures and solutions to typical exam-type tutorial problems. We will also have a guest lecturer from industry on OS-related topics.
The order in which this material is presented and the length of each section will vary from week to week, so you should plan to attend the whole two-hour session.
There will also be a two-hour practical session each week to assist with the programming assignments. You should sign up for one of the sessions.
Starting in Week 1, the practical session will be used for consultation or to work through some programmed exercises in preparation for the assignments.
Aims and outcomes
This course will allow you to demonstrate masteryᅠof implementation issues for operating systems, including:
- evaluate design principles and alternatives including
- monolithic systems versus microkernels
- efficiency versus flexibility
- policy versus implementation
- create and apply decisions and alternatives including
- efficiency versus maintainability
- low-level versus high-level languages
- portability versus speed
- apply low-level system C coding
- a detailed understanding of one operating system
- understandᅠhow other types of operating systems may differ from each other
Learning outcomes
After successfully completing this course you should be able to:
LO1.
Identify and define key components of operating systems such as the kernel, process management, memory management, and file systems.
LO2.
Explain the role and functionality of operating systems in managing hardware and software resources and how software interacts with hardware.
LO3.
Create and apply design decisions for low-level operating systems components at the kernel and device driver level.
LO4.
Analyse the performance and trade-offs of operating system components like schedulers or file systems.
LO5.
Evaluate security features and vulnerabilities of operating systems and propose improvements or alternatives.
LO6.
Design a simple operating system module or enhance an existing module, such as a scheduler or a file system, using appropriate programming tools and environments.
Assessment
Assessment summary
Category | Assessment task | Weight | Due date |
---|---|---|---|
Computer Code, Practical/ Demonstration, Quiz, Reflection |
Programming Assignment One
|
15% |
19/08/2024 3:00 pm
You will demonstrate your assignment using the code submitted for that stage during the lab session in the week it is due. |
Computer Code, Practical/ Demonstration, Quiz, Reflection |
Programming Assignment Two
|
25% |
16/09/2024 3:00 pm
You will demonstrate your assignment using the code submitted for that stage during the lab session in the week it is due. |
Computer Code, Quiz, Reflection |
Programming Assignment Three
|
25% |
21/10/2024 3:00 pm
You will demonstrate your assignment using the code submitted for that stage during the lab session in the week it is due. |
Examination |
Final Exam
|
35% |
End of Semester Exam Period 2/11/2024 - 16/11/2024 |
A hurdle is an assessment requirement that must be satisfied in order to receive a specific grade for the course. Check the assessment details for more information about hurdle requirements.
Assessment details
Programming Assignment One
- Hurdle
- In-person
- Mode
- Product/ Artefact/ Multimedia
- Category
- Computer Code, Practical/ Demonstration, Quiz, Reflection
- Weight
- 15%
- Due date
19/08/2024 3:00 pm
You will demonstrate your assignment using the code submitted for that stage during the lab session in the week it is due.
Task description
Each programming assignment will require students to implement a systems programming exercise in C. Students will work individually on assignments.
Hurdle requirements
If you achieve less than 50% on your combined Assignment 1, 2 and 3 mark then your overall percentage will be capped at 49% and your final grade is capped at 3Submission guidelines
All assignment-related code must be submitted to the student's code repository by the due date. The code must be submitted using git push. A Git commit is not a submission as it does not send the code to the student’s online repository. Any other assignment-related assessment items must be submitted to Black Board.
Deferral or extension
You may be able to apply for an extension.
The maximum extension allowed is 7 days. Extensions are given in multiples of 24 hours.
You must post a private note on the ED Discussion Board, using the EXTENSION tag, when your code has been uploaded to your repository. A staff member will respond to your note to state when your demo will be assessed.
Late submission
A penalty of 10% of the maximum possible mark will be deducted per 24 hours from time submission is due for up to 7 days. After 7 days, you will receive a mark of 0.
You must post a private note on the ED Discussion Board, using the LATE tag, when your code has been uploaded to your repository. A staff member will respond to your note to state when your demo will be assessed.
Programming Assignment Two
- Hurdle
- In-person
- Mode
- Product/ Artefact/ Multimedia
- Category
- Computer Code, Practical/ Demonstration, Quiz, Reflection
- Weight
- 25%
- Due date
16/09/2024 3:00 pm
You will demonstrate your assignment using the code submitted for that stage during the lab session in the week it is due.
Task description
Each programming assignment will require students to implement a systems programming exercise in C. Students will work individually on assignments.
Hurdle requirements
If you achieve less than 50% on your combined Assignment 1, 2 and 3 mark then your overall percentage will be capped at 49% and your final grade is capped at 3Submission guidelines
All assignment-related code must be submitted to the student's code repository by the due date. The code must be submitted using git push. A Git commit is not a submission as it does not send the code to the student’s online repository. Any other assignment-related assessment items must be submitted to Black Board.
Deferral or extension
You may be able to apply for an extension.
The maximum extension allowed is 7 days. Extensions are given in multiples of 24 hours.
You must post a private note on the ED Discussion Board, using the EXTENSION tag, when your code has been uploaded to your repository. A staff member will respond to your note to state when your demo will be assessed.
Late submission
A penalty of 10% of the maximum possible mark will be deducted per 24 hours from time submission is due for up to 7 days. After 7 days, you will receive a mark of 0.
You must post a private note on the ED Discussion Board, using the LATE tag, when your code has been uploaded to your repository. A staff member will respond to your note to state when your demo will be assessed.
Programming Assignment Three
- Hurdle
- In-person
- Mode
- Product/ Artefact/ Multimedia
- Category
- Computer Code, Quiz, Reflection
- Weight
- 25%
- Due date
21/10/2024 3:00 pm
You will demonstrate your assignment using the code submitted for that stage during the lab session in the week it is due.
Task description
Each programming assignment will require students to implement a systems programming exercise in C. Students will work individually on assignments.
Hurdle requirements
If you achieve less than 50% on your combined Assignment 1, 2 and 3 mark then your overall percentage will be capped at 49% and your final grade is capped at 3Submission guidelines
All assignment-related code must be submitted to the student's code repository by the due date. The code must be submitted using git push. A Git commit is not a submission as it does not send the code to the student’s online repository. Any other assignment-related assessment items must be submitted to Black Board.
Deferral or extension
You may be able to apply for an extension.
The maximum extension allowed is 7 days. Extensions are given in multiples of 24 hours.
You must post a private note on the ED Discussion Board, using the EXTENSION tag, when your code has been uploaded to your repository. A staff member will respond to your note to state when your demo will be assessed.
Late submission
A penalty of 10% of the maximum possible mark will be deducted per 24 hours from time submission is due for up to 7 days. After 7 days, you will receive a mark of 0.
You must post a private note on the ED Discussion Board, using the LATE tag, when your code has been uploaded to your repository. A staff member will respond to your note to state when your demo will be assessed.
Final Exam
- Hurdle
- Identity Verified
- In-person
- Mode
- Written
- Category
- Examination
- Weight
- 35%
- Due date
End of Semester Exam Period
2/11/2024 - 16/11/2024
- Other conditions
- Time limited.
Task description
The final exam will test students' understanding of the theoretical content of the course.
Hurdle requirements
Students must achieve a minimum of 40% of the exam marks, to pass the course.Exam details
Planning time | 10 minutes |
---|---|
Duration | 120 minutes |
Calculator options | (In person) Casio FX82 series or UQ approved , labelled calculator only |
Open/closed book | Closed Book examination - no written materials permitted |
Exam platform | Paper based |
Invigilation | Invigilated in person |
Submission guidelines
Deferral or extension
You may be able to defer this exam.
Course grading
Full criteria for each grade is available in the Assessment Procedure.
Grade | Cut off Percent | Description |
---|---|---|
1 (Low Fail) | 0 - 19 |
Absence of evidence of achievement of course learning outcomes. Course grade description: Fails to demonstrate understanding of most aspects of operating system design; Unable to program effectively in C; |
2 (Fail) | 20 - 44 |
Minimal evidence of achievement of course learning outcomes. Course grade description: Fails to demonstrate understanding of some aspects of operating system design; Unable to program effectively in C at a low level; |
3 (Marginal Fail) | 45 - 49 |
Demonstrated evidence of developing achievement of course learning outcomes Course grade description: Demonstrates understanding of some aspects of operating system design; Unable to think critically about design alternatives; Unable to program effectively in C at a low level; |
4 (Pass) | 50 - 64 |
Demonstrated evidence of functional achievement of course learning outcomes. Course grade description: Demonstrates understanding of some aspects of operating system design; Able to program effectively in C at a low level; |
5 (Credit) | 65 - 74 |
Demonstrated evidence of proficient achievement of course learning outcomes. Course grade description: Demonstrates understanding of most aspects of operating system design; Able to think critically about some design alternatives; Able to program effectively in C at a low level; |
6 (Distinction) | 75 - 84 |
Demonstrated evidence of advanced achievement of course learning outcomes. Course grade description: Demonstrates understanding of most aspects of operating system design to a deep level; Able to think critically about some design alternatives; Able to program effectively and efficiently in C at a low level; |
7 (High Distinction) | 85 - 100 |
Demonstrated evidence of exceptional achievement of course learning outcomes. Course grade description: Demonstrates understanding of all aspects of operating system design to a deep level; Able to think critically about design alternatives; Able to program effectively and efficiently in C at a low level; |
Additional course grading information
Your overall percentage will be the sum out of 100 of your assessment marks which is then rounded to the nearest whole percent and then possibly capped as described below. Assessment items will be weighted as described above.
If you achieve less than 40% on the final exam then your overall percentage will be capped at 49% and your final grade is capped at 3.
If you achieve less than 50% on your combined Assignment 1, 2 and 3 mark then your overall percentage will be capped at 49% and your final grade is capped at 3.
In other words, to pass the course, you must achieve:
- at least 50% of the total course marks, and
- at least 40% of the final exam marks, and
- at least 50% on the combined Assignment 1, 2 and 3 mark.
Supplementary assessment
Supplementary assessment is available for this course.
Additional assessment information
Use of AI Tools
All assessment tasks evaluate students' abilities, skills and knowledge without the aid of generative Artificial Intelligence (AI) or Machine Translation (MT). Students are advised that the use of AI technologies to develop responses is strictly prohibited and may constitute student misconduct under the Student Code of Conduct.
Learning resources
You'll need the following resources to successfully complete the course. We've indicated below if you need a personal copy of the reading materials or your own item.
Library resources
Find the required and recommended resources for this course on the UQ Library website.
Additional learning resources information
You must use Blackboard as the primary repository of course materials and use the specified online forumᅠfor discussions.
The programming assignments will be based on a Linux/BSD-based operating system and will require advanced programming skills in C.
If you are not a confident C programmer, you might rethink whether this course is a good elective choice.
If you are a strong programmer in another language but not C, it is recommended that you spend the early weeks of the semester getting up to speed in C.
There are many online tutorials, eg. http://www.cprogramming.com/
Learning activities
The learning activities for this course are outlined below. Learn more about the learning outcomes that apply to this course.
Filter activity type by
Please select
Learning period | Activity type | Topic |
---|---|---|
Multiple weeks From Week 1 To Week 13 |
Lecture |
Weekly Lectures Weekly lectures will provide the theoretical foundation for the course material. Lecture slides are provided on the course BlackBoard site. |
Multiple weeks From Week 1 To Week 12 |
Tutorial |
Weekly Contact Session The weekly contact session will present content related to the practicals and assignments, and revise lecture material through revision questions. |
Multiple weeks From Week 1 To Week 8 |
Practical |
Weekly Practicals Students should sign-on to one scheduled weekly practical session. The weekly practical sessions will be on-campus and will provide an opportunity to work through a set of staged exercises which provide students with the necessary skills to undertake the programming assignments. |
Policies and procedures
University policies and procedures apply to all aspects of student life. As a UQ student, you must comply with University-wide and program-specific requirements, including the:
- Student Code of Conduct Policy
- Student Integrity and Misconduct Policy and Procedure
- Assessment Procedure
- Examinations Procedure
- Reasonable Adjustments - Students Policy and Procedure
Learn more about UQ policies on my.UQ and the Policy and Procedure Library.
School guidelines
Your school has additional guidelines you'll need to follow for this course: