COMP 2019 Systems Programming 1
Credit Points 10
Legacy Code 300167
Coordinator Chun Ruan Opens in new window
Description This subject provides an introduction to the knowledge and skills required for the design, writing and support of technical software and other such functions normally falling within the role of the systems programmer. It provides for detailed study of a systems programming environment and its application to systems programming tasks.
School Computer, Data & Math Sciences
Discipline Programming
Student Contribution Band HECS Band 2 10cp
Check your fees via the Fees page.
Level Undergraduate Level 2 subject
Pre-requisite(s) COMP 2015 OR
COMP 2016 OR
COMP 2020 OR
COMP 2014 OR
ELEC 1006 AND
ELEC 1001
Restrictions Students in Bachelor of Engineering, Bachelor of Engineering (Advanced) or Bachelor of Engineering Science must be enrolled in one of the Majors attached to the program.
Assumed Knowledge
This subject requires a knowledge base of at least the level of a completed first year in a professional Computing degree. Ability to apply fundamental concepts in data structures, algorithms, programming principles will be assumed.
Learning Outcomes
- Exhibit facility with the predominant systems programming language - C.
- Demonstrate their understanding of the interface to the operating system by applying this knowledge to write and explain programs making system calls.
- Discuss the nature of a systems program and put into practice the canons of good programming style and of sound software engineering in designing and writing short system utilities.
- Analyse and maintain longer and more complex programs.
- Demonstrate further development and reinforcement of their grasp on abstract concepts of data and programming structures by being able to explain how these ideas are realized in a specific programming language and environment.
- Identify the Central role of concurrency in systems programming.
- Be able to solve relatively simple problems requiring concurrency.
Subject Content
Applications of the Concepts of functions, scope, lifetimes and data abstraction in the specific case of C.
Error propagation and handling in C.
File systems, terminal control and signals.
Interface with the operating system: general properties and style of system calls, operating system structures, and how they can be accessed.
Systems administration functions, shell programming.
Event-driven programming: writing a video game.
Concepts and formalisms of concurrent programming, realization via UNIX system calls.
Interprocess communication, synchronous and asynchronous message passing, shared memory, mutual exclusion, interrupts and signals and application to operating principles of UNIX daemons and of client-server structures in general.
Assessment
The following table summarises the standard assessment tasks for this subject. Please note this is a guide only. Assessment tasks are regularly updated, where there is a difference your Learning Guide takes precedence.
Type | Length | Percent | Threshold | Individual/Group Task | Mandatory |
---|---|---|---|---|---|
Practical | 20 - 25 hours | 30 | N | Individual | Y |
Practical | 2 hours each, total 10 hours | 20 | N | Individual | Y |
Final Exam | 2 hours | 50 | Y | Individual | Y |
Teaching Periods
Autumn (2024)
Penrith (Kingswood)
On-site
Subject Contact Chun Ruan Opens in new window
View timetable Opens in new window
Parramatta - Victoria Rd
On-site
Subject Contact Chun Ruan Opens in new window
View timetable Opens in new window
Autumn (2025)
Penrith (Kingswood)
On-site
Subject Contact Chun Ruan Opens in new window
View timetable Opens in new window
Hybrid
Subject Contact Chun Ruan Opens in new window
View timetable Opens in new window
Parramatta - Victoria Rd
On-site
Subject Contact Chun Ruan Opens in new window
View timetable Opens in new window
Hybrid
Subject Contact Chun Ruan Opens in new window