Note: This unit is an archived version! See Overview tab for delivered versions.
COMP2129: Operating Systems and Machine Principles (2017 - Semester 1)
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: |
|
||||||||||||||||||||
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)Assessment Methods: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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.
|
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.
|
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 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.