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

On successful completion of this subject, students should be able to:
  1. Exhibit facility with the predominant systems programming language - C.
  2. Demonstrate their understanding of the interface to the operating system by applying this knowledge to write and explain programs making system calls.
  3. 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.
  4. Analyse and maintain longer and more complex programs.
  5. 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.
  6. Identify the Central role of concurrency in systems programming.
  7. Be able to solve relatively simple problems requiring concurrency.

Subject Content

Nature of 'systems programming', requirements of a system programming language.
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

View timetable Opens in new window