Note: This unit is an archived version! See Overview tab for delivered versions.

COMP2129: Operating Systems and Machine Principles (2017 - Semester 1)

Download UoS Outline

Unit: COMP2129: Operating Systems and Machine Principles (6 CP)
Mode: Normal-Day
On Offer: Yes
Level: Intermediate
Faculty/School: School of Computer Science
Unit Coordinator/s: Dr Stavrakakis, John
Session options: Semester 1
Versions for this Unit:
Site(s) for this Unit: https://elearning.sydney.edu.au/
Campus: Camperdown/Darlington
Pre-Requisites: INFO1103 OR INFO1903.
Brief Handbook Description: In this unit of study, elementary methods for developing robust, efficient, and re-usable software will be covered. The unit is taught in C, in a Unix environment. Specific coding topics include memory management, the pragmatic aspects of implementing data structures such as lists and hash tables and managing concurrent threads. Debugging tools and techniques are discussed and common programming errors are considered along with defensive programming techniques to avoid such errors. Emphasis is placed on using common Unix tools to manage aspects of the software construction process, such as version control and regression testing. The subject is taught from a practical viewpoint and it includes a considerable amount of programming practice.
Assumed Knowledge: INFO1105 OR INFO1905.
Lecturer/s: Dr Stavrakakis, John
Tutor/s: Tyson Thomas

Alan Robertson

Elie Moreau

Neill Foweraker

Yixing Zheng

Kosta Dunn

Simon Koch

Abdul Zreika

Greg McAllen

Scott Maxwell

William Wang
Timetable: COMP2129 Timetable
Time Commitment:
# Activity Name Hours per Week Sessions per Week Weeks per Semester
1 Lecture 2.00 1 13
2 Laboratory 2.00 1 12
3 Independent Study 12.00 1 13
T&L Activities: Laboratory: Laboratory classes help the student consolidate the material presented in lectures. Activities include development of small programs, practice quiz questions, and open discussion of topics in systems programming.

Attributes listed here represent the key course goals (see Course Map tab) designated for this unit. The list below describes how these attributes are developed through practice in the unit. See Learning Outcomes and Assessment tabs for details of how these attributes are assessed.

Attribute Development Method Attribute Developed
design and implementation of a program to solve a specified problem Design (Level 2)
fundamental skills in the Unix operating system at user level Engineering/IT Specialisation (Level 2)
fundamental skills in programming and a conceptual understanding of the link between the low level machine and the high level language Maths/Science Methods and Tools (Level 2)
writing quality code following a systematic process Professional Conduct (Level 2)

For explanation of attributes and levels see Engineering & IT Graduate Outcomes Table.

Learning outcomes are the key abilities and knowledge that will be assessed in this unit. They are listed according to the course goal supported by each. See Assessment Tab for details how each outcome is assessed.

Engineering/IT Specialisation (Level 2)
1. Ability to learn to use Unix commands and system calls (including usage of flags etc) from online manual system.
2. Understanding of common memory-related errors (such as memory leaks, dangling pointers) and how to avoid these.Higher performance could involve detecting errors in example code, and fixing them using debuggers.
3. Ability to correctly implement standard linked list data structuresHigher performance could involve slightly more complicated structures such as binary search trees.
4. Ability to read and write correct, clean code in C that allocates, deallocates and manages memory.
5. Ability to read and write code that correctly uses the main standard library functions, especially for I/O, file handling, and string handling.Higher performance could involve elegant use of these functions, particularly avoiding idioms which are extremely inefficient.
6. Experience in using debugging tools.
7. Understanding of the approach and concepts of Unix, including its tools philosophy, processes (including pipes and redirection), the file system, and the shell.
8. Experience of following a thorough automated testing regime using tools such as make, diff, scripts to present the outcomes, and a tool to manage regression testing..Higher performance could involve ability to construct such a regime.
Professional Conduct (Level 2)
9. Ability to use code quality strategies appropriate for C, including preprocessor techniques, and use of common idioms.
Assessment Methods:
# Name Group Weight Due Week Outcomes
1 Tutorial participation No 10.00 Multiple Weeks 2, 3, 4, 5, 6, 7, 8, 9,
2 Final Exam No 40.00 Exam Period 1, 2, 3, 4, 5, 6, 7, 8, 9,
3 *Assignment 1 No 4.00 Week 3 (As specified by your unit coordinator) 1, 5, 7, 9,
4 *Assignment 2 No 8.00 Week 6 (As specified by your unit coordinator) 1, 2, 4, 5, 6, 7, 8, 9,
5 *Assignment 3 No 10.00 Week 11 (As specified by your unit coordinator) 1, 2, 3, 4, 5, 6, 8, 9,
6 Assignment 4 No 10.00 Week 13 (Friday, 9 am) 2, 3, 4, 5, 6, 7, 8, 9,
7 Quiz 1 No 6.00 Week 4 (As specified by your unit coordinator) 1, 5, 7, 8, 9,
8 Quiz 2 No 6.00 Week 9 (As specified by your unit coordinator) 1, 2, 3, 4, 5, 6, 7, 8, 9,
9 Quiz 3 No 6.00 Week 13 (As specified by your unit coordinator) 1, 2, 3, 4, 5, 6, 7, 8, 9,
Assessment Description: * indicates an assessment task which must be repeated if a student misses it due to special consideration. A repeated assessment`s questions/tasks may vary from the original.

Quiz: Test knowledge and understanding of concepts and systems programming. Format is pen and paper. Attendance required.

Tutorial participation: attendance, contribution to tutorial discussion and performance in online challenges. The challenges are a series of programming exercises to be completed throughout the semester. Challenges are released regularly and have varying submission dates. Late enrolments (up to week 4) will be able to submit prior weeks.

Assignments 1-3

- Demonstrating programming ability from specification

- To be completed on campus using standard computer environment

Assignment 4: Assessed by electronic submission. Attendance to tutorial for that week is required as further assessment may be required as per the assignment specification. Late submissions within 3 days only, no re-weighting is possible with this assignment.

Final Exam: The final exam covers all aspects of the course and may involve answering questions about the C language and Unix system, reading short programs and writing short programs, and understanding concurrent and parallel programming.

Late assignment submission of challenges is 50% per day.

Late assignment submission of assignment is 25% per day.

Non-attendance for in lab assessment tasks, such as manual marking or quiz, will receive zero marks, unless special consideration is granted.
Grading:
Grade Type Description
Standards Based Assessment Final grades in this unit are awarded at levels of HD for High Distinction, DI (previously D) for Distinction, CR for Credit, PS (previously P) for Pass and FA (previously F) for Fail as defined by University of Sydney Assessment Policy. Details of the Assessment Policy are available on the Policies website at http://sydney.edu.au/policies . Standards for grades in individual assessment tasks and the summative method for obtaining a final mark in the unit will be set out in a marking guide supplied by the unit coordinator.
Minimum Pass Requirement It is a policy of the School of Computer Science that in order to pass this unit, a student must achieve at least 40% in the written examination. For subjects without a final exam, the 40% minimum requirement applies to the corresponding major assessment component specified by the lecturer. A student must also achieve an overall final mark of 50 or more. Any student not meeting these requirements may be given a maximum final mark of no more than 45 regardless of their average.
Policies & Procedures: IMPORTANT: School policy relating to Academic Dishonesty and Plagiarism.

In assessing a piece of submitted work, the School of IT may reproduce it entirely, may provide a copy to another member of faculty, and/or to an external plagiarism checking service or in-house computer program and may also maintain a copy of the assignment for future checking purposes and/or allow an external service to do so.

Other policies

See the policies page of the faculty website at http://sydney.edu.au/engineering/student-policies/ for information regarding university policies and local provisions and procedures within the Faculty of Engineering and Information Technologies.
Prescribed Text/s: Note: Students are expected to have a personal copy of all books listed.
  • Computer Systems: A Programmer`s Perspective
Recommended Reference/s: Note: References are provided for guidance purposes only. Students are advised to consult these books in the university library. Purchase is not required.
  • Principles of Parallel Programming
  • Problem Solving and Program Design in C
  • The C Programming Language
  • The Indispensable Guide to C
Online Course Content: You will need to have UniKey credentials to access course material via elearning website

https://elearning.sydney.edu.au/

Note that the "Weeks" referred to in this Schedule are those of the official university semester calendar https://web.timetable.usyd.edu.au/calendar.jsp

Week Description
Week 1 Lecture: Admin/Introduction to UNIX and C
Week 2 Lecture: Addressable memory, string and arrays
Lab: Introduction to Unix and C
Week 3 Lecture: Memory management, structures and files
Lab: Unix text processing and C pointer basics
Assessment Due: *Assignment 1
Week 4 Lecture: Linked lists and debugging
Lab: Unix shells scripts, C pointers, structs, unions and files
Assessment Due: Quiz 1
Week 5 Lecture: Function pointers, common C functions, Unit testing
Lab: Dynamic memory and debugging
Week 6 Lecture: Public holiday
Lab: Program structure, common C errors
Assessment Due: *Assignment 2
Week 7 Lecture: Parallelism and concurrency
Lab: Compiler stages and linked lists
Week 8 Lecture: Thread synchronisation, POSIX threads
Lab: Signals and IPC
Week 9 Lecture: Thread safety: Testing and Debugging
Lab: Parallelism and concurrency
Assessment Due: Quiz 2
Week 10 Lecture: Scalable algorithm templates
Lab: Shared memory
Week 11 Lecture: Performance - memory and measure
Lab: Thread constructs & reliability
Assessment Due: *Assignment 3
Week 12 Lecture: TBA
Lab: Recursion and advanced topics in C
Week 13 Lecture: Revision and Examination overview
Lab: Revision
Assessment Due: Assignment 4
Assessment Due: Quiz 3
Exam Period Assessment Due: Final Exam

Course Relations

The following is a list of courses which have added this Unit to their structure.

Course Year(s) Offered
Bachelor of Computer Science and Technology 2015, 2016
Computer Engineering / Commerce 2010
Electrical Engineering / Arts 2011, 2012, 2013, 2014
Electrical Engineering / Commerce 2010, 2011, 2012, 2013, 2014
Electrical Engineering / Medical Science 2011, 2012, 2013, 2014
Electrical Engineering / Science 2011, 2012, 2013, 2014
Electrical Engineering (Computer) / Arts 2011, 2012, 2013, 2014
Electrical Engineering (Computer) / Commerce 2011, 2012, 2013, 2014
Electrical Engineering (Computer) / Medical Science 2011, 2013, 2014
Electrical Engineering (Computer) / Science 2011, 2012, 2013, 2014
Electrical Engineering (Computer) / Law 2011, 2012, 2013, 2014
Electrical Engineering (Power) / Arts 2011, 2012, 2013, 2014
Electrical Engineering (Power) / Commerce 2010, 2011, 2012, 2013, 2014
Electrical Engineering (Power) / Medical Science 2011, 2012, 2013, 2014
Electrical Engineering (Power) / Science 2011, 2012, 2013, 2014
Electrical Engineering (Power) / Law 2010, 2011, 2012, 2013, 2014
Electrical Engineering (Telecommunications) / Arts 2011, 2012, 2013, 2014
Electrical Engineering (Telecommunications) / Commerce 2011, 2012, 2013, 2014
Electrical Engineering (Telecommunications) / Medical Science 2011, 2012, 2013, 2014
Electrical Engineering (Telecommunications) / Science 2011, 2012, 2013, 2014
Electrical Engineering (Telecommunications) / Law 2011, 2012, 2013, 2014
Electrical Engineering 2015, 2016, 2017
Electrical / Arts (2022 and earlier) 2015, 2016, 2017
Electrical / Commerce 2015, 2016, 2017
Electrical / Project Management 2015, 2016, 2017
Electrical / Science 2015, 2016, 2017
Electrical / Law 2015, 2016, 2017
Electrical Engineering (mid-year) 2016, 2017
Software Engineering (mid-year) 2016, 2017
Software Engineering 2015, 2016
Software / Arts (2022 and earlier) 2015, 2016
Software / Commerce 2015, 2016
Software / Project Management 2015, 2016
Software / Science 2015, 2016
Software / Law 2015, 2016
Software Engineering / Arts 2011, 2012, 2013, 2014
Software Engineering / Commerce 2010, 2011, 2012, 2013, 2014
Software Engineering / Medical Science 2011, 2012, 2013, 2014
Software Engineering / Science 2011, 2012, 2013, 2014
Software Engineering / Law 2010, 2011, 2012, 2013, 2014
Aeronautical Engineering / Science 2011, 2012, 2013, 2014
Aeronautical Engineering (Space) / Science 2011, 2012, 2013, 2014
Biomedical Engineering / Science 2013, 2014
Chemical & Biomolecular Engineering / Science 2011, 2012, 2013, 2014
Civil Engineering / Science 2011, 2012, 2013, 2014
Electrical Engineering (Bioelectronics) / Science 2011, 2012
Aeronautical / Science 2015, 2016, 2017
Aeronautical (Space) / Science 2015
Biomedical Engineering (mid-year) 2016
Biomedical Engineering 2016
Biomedical /Science 2015, 2016, 2017
Chemical & Biomolecular / Science 2015
Civil / Science 2015
Mechanical / Science 2015, 2016, 2017
Mechanical (Space) / Science 2015
Mechatronic / Science 2015, 2016, 2017
Mechatronic (Space) / Science 2015
Mechanical Engineering (Biomedical) / Science 2011, 2012
Mechanical Engineering / Science 2011, 2012, 2013, 2014
Mechanical Engineering (Space) / Science 2011, 2012, 2013, 2014
Mechatronic Engineering / Science 2011, 2012, 2013, 2014
Mechatronic Engineering (Space) / Science 2011, 2012, 2013, 2014
Project Engineering and Management (Civil) / Science 2011
Flexible First Year (Stream A) / Science 2012, 2013, 2014

Course Goals

This unit contributes to the achievement of the following course goals:

Attribute Practiced Assessed
Maths/Science Methods and Tools (Level 2) Yes 0%
Project and Team Skills (Level 2) No 0%
Design (Level 2) Yes 0%
Engineering/IT Specialisation (Level 2) Yes 86.31%
Information Seeking (Level 1) No 0%
Communication (Level 2) No 0%
Professional Conduct (Level 2) Yes 13.68%

These goals are selected from Engineering & IT Graduate Outcomes Table which defines overall goals for courses where this unit is primarily offered. See Engineering & IT Graduate Outcomes Table for details of the attributes and levels to be developed in the course as a whole. Percentage figures alongside each course goal provide a rough indication of their relative weighting in assessment for this unit. Note that not all goals are necessarily part of assessment. Some may be more about practice activity. See Learning outcomes for details of what is assessed in relation to each goal and Assessment for details of how the outcome is assessed. See Attributes for details of practice provided for each goal.