Systems Programming

Queensland University of Technology

Course Description

  • Course Name

    Systems Programming

  • Host University

    Queensland University of Technology

  • Location

    Brisbane, Australia

  • Area of Study

    Aerospace Engineering, Computer Engineering, Computer Programming, Electrical Engineering, Engineering Science, Information Technologies, Systems Engineering

  • Language Level

    Taught In English

  • Prerequisites

    CAB201 and CAB202 and (CAB302 or INB370 or MZB126)

  • Course Level Recommendations

    Upper

    ISA offers course level recommendations in an effort to facilitate the determination of course levels by credential evaluators.We advice each institution to have their own credentials evaluator make the final decision regrading course levels.

    Hours & Credits

  • Credit Points

    12
  • Recommended U.S. Semester Credits
    3 - 4
  • Recommended U.S. Quarter Units
    4 - 6
  • Overview

    Synopsis:
    This unit gives you experience in programming at the level of a computer's operating system, as is needed for IT system administration or to interface computer processors with peripheral hardware devices. Systems programming is one of the many specialisations of software development and maintenance. It concerns software that works at the level of the computer's physical architecture. This unit introduces some of the principles and practices associated with writing programs that operate at such a low level of abstraction. It builds on the knowledge you have already acquired about general applications software development and computer architectures.
    Learning Outcomes
    On successful completion of this unit you should be able to:
    1. Demonstrate knowledge of concurrent and distributed systems, process management kernels (process synchronisation, communication, scheduling, deadlock handling) and an understanding of memory and file management [Technology];
    2. Demonstrate an understanding of the architecture of operating systems [Technology];
    3. Apply parallel threads to implement and make effective use of process management and process communication [Build];
    4. Show improvement in your critical, creative and analytical thinking and effective problem solving within the IT context through learning and applying a low-level programming language [Design];
    5. Demonstrate the ability to work in a self-reliant and independent way including the ability to manage time and prioritise activities to achieve deadlines typical of work with operating systems; and demonstrate an aptitude for lifelong learning and develop a sense of basic curiosity about aspects of information technology [Impact].
    Content
    In this unit you will learn:
    • Operating and computer system structures;
    • Characteristics of operating system processes and threads; Process synchronisation;
    • Operating system scheduling and memory management; Deadlock handling techniques;
    • Distributed communication (Client-Server);
    • File systems; and
    • Access control (security) features of such systems.
    Approaches to Teaching and Learning
    This unit includes theory reinforced by practical, artefact-driven projects. Weekly contact is via a lecture and a practical session. The Blackboard site contains slides for lectures. However, although the slides contain the content of the unit they are insufficient on their own. You are expected to attend lectures and take notes on anything the lecturer says which is not included in the slides. More detail can be found in the textbook and online materials. In lectures, where appropriate, examples will be worked out and code explained. The practicals contain exercises relevant to the lectures. You should study the lecture material, work through the exercises and check the answers against the solutions, to verify your understanding of the material. To clarify anything, check with any demonstrator or lecturer associated with this unit either by email or during their normal consulting times. This learning process requires your weekly commitment. The learning process addresses objectives 1, 2 and 5. The assignments involve programming tasks. This addresses objectives 3 to 5. The practical sessions reinforce the code and theory presented in the lecture. Lab classes for these programming tasks are conducted by demonstrators who will facilitate this vital practical experience. You may use the practical class to ask questions about your assignments.

Course Disclaimer

Courses and course hours of instruction are subject to change.

Eligibility for courses may be subject to a placement exam and/or pre-requisites.

Some courses may require additional fees.

Credits earned vary according to the policies of the students' home institutions. According to ISA policy and possible visa requirements, students must maintain full-time enrollment status, as determined by their home institutions, for the duration of the program.