CAB403 Systems Programming


To view more information for this unit, select Unit Outline from the list below. Please note the teaching period for which the Unit Outline is relevant.


Unit Outline: Semester 2 2024, Gardens Point, Internal

Unit code:CAB403
Credit points:12
Pre-requisite:(CAB201 or MZB126 or EGB103 or EGD103 or ITD121) and CAB202
Equivalent:INB365, ITB706, ITB745
Anti-requisite:INN365
Coordinator:Timothy Chappell | timothy.chappell@qut.edu.au
Disclaimer - Offer of some units is subject to viability, and information in these Unit Outlines is subject to change prior to commencement of the teaching period.

Overview

Most of our other Computer Science units focus on high-level applications programming. Applications programmers are insulated from the low- level intricacies of the underlying hardware by making use of services provided by the operating system such as threads, virtual memory, file systems and device drivers. This unit focuses on Systems Programming, where the programmer can’t necessarily rely on high level services provided by the operating system and must interact directly with the underlying hardware. Systems software is either part of the operating system or software that operates at a similar level. This unit aims to give you practical programming skills for developing systems level applications and services.

Learning Outcomes

On successful completion of this unit you will be able to:

  1. Break down the architecture and components of modern operating systems.
    Relates to: ACS CBOK: 3, 3.1
  2. Articulate industry standards and critically apply best practice for developing safety-critical systems.
    Relates to: ACS CBOK: 1, 1.6
  3. Determine the potential societal and safety impact of systems programming failures in given scenarios.
    Relates to: ACS CBOK: 1, 1.6
  4. Construct low-level systems programs to carry out authentic systems programming tasks.
    Relates to: ACS CBOK: 3, 3.1, 4, 4.2

Content

In this unit you will learn:

  • Operating System Concepts and Architecture
  • Practical systems level programming using C

Learning Approaches

This unit includes theory reinforced by practical, artefact-driven projects. Weekly contact is via a lecture and a practical session. The Canvas 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 or watch the recorded sessions 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 theory portion of the unit is assessed through the final exam and addresses learning outcomes 1, 2 and 3. The assignments involve programming tasks, which address learning outcomes 2 and 4. 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.

Feedback on Learning and Assessment

You will receive feedback on completed and marked assignments via individual comments on assignment scripts.
Demonstrators and the unit coordinator and lecturers will be available via email or in person (by appointment) to answer questions.
For the Final Exam you are referred to the Faculty's formal Rules, Policy and Procedures.

Assessment

Overview

This unit comprises theory and practice, and assessment is via problem solving tasks and an exam. Assessment criteria will be made available to students at the introduction of the problem solving tasks.

Unit Grading Scheme

7- point scale

Assessment Tasks

Assessment: Problem Solving Task

Problem solving task related to systems programming.

This is an assignment for the purposes of an extension.

Weight: 20
Individual/Group: Individual
Due (indicative): Week 8
Related Unit learning outcomes: 4
Related Standards: EASTG1CMP: 1, 1.5, 2, 2.1, 2.2

Assessment: Project (applied)

Use the C programming language to complete an authentic systems programming task. Examples will be sourced from Industry partners such as Boeing and Red Hat.

This is an assignment for the purposes of an extension.

Weight: 40
Individual/Group: Individual
Due (indicative): Week 13
Related Unit learning outcomes: 2, 4
Related Standards: EASTG1CMP: 1, 1.5, 1.6, 2, 2.1, 2.3

Assessment: Examination (written)

Final examination (theory), based on all lectures and practicals.  Written theory paper evaluating students' understanding of operating systems architecture, systems programming concepts and safety-critical software development. Students will be assessed on both theoretical and practical topics.

Weight: 40
Individual/Group: Individual
Due (indicative): Central Examination Period
Central exam duration: 2:10 - Including 10 minute perusal
Related Unit learning outcomes: 1, 2, 3
Related Standards: EASTG1CMP: 1, 1.3, 1.4, 2, 2.3

Academic Integrity

Students are expected to engage in learning and assessment at QUT with honesty, transparency and fairness. Maintaining academic integrity means upholding these principles and demonstrating valuable professional capabilities based on ethical foundations.

Failure to maintain academic integrity can take many forms. It includes cheating in examinations, plagiarism, self-plagiarism, collusion, and submitting an assessment item completed by another person (e.g. contract cheating). It can also include providing your assessment to another entity, such as to a person or website.

You are encouraged to make use of QUT’s learning support services, resources and tools to assure the academic integrity of your assessment. This includes the use of text matching software that may be available to assist with self-assessing your academic integrity as part of the assessment submission process.

Further details of QUT’s approach to academic integrity are outlined in the Academic integrity policy and the Student Code of Conduct. Breaching QUT’s Academic integrity policy is regarded as student misconduct and can lead to the imposition of penalties ranging from a grade reduction to exclusion from QUT.

Resources

A variety of online and textbook materials will be helpful for this unit.
Other resources will be advised via Canvas as appropriate.

Resource Materials

Recommended text(s)

Silberschatz, Abraham; Baer Galvin, Peter; and Gagne, Greg, (2018). Operating System Concepts, 10th Edition. Hoboken, N.J Wiley.

Risk Assessment Statement

There are no out of the ordinary risks associated with this unit.

Standards/Competencies

This unit is designed to support your development of the following standards\competencies.

Australian Computer Society Core Body of Knowledge

1: ICT Professional Knowledge

  1. Understanding the ICT profession
    Relates to: ULO2, ULO3

3: Technology Resources

  1. Hardware and software fundamentals
    Relates to: ULO1, ULO4

4: Technology Building

  1. Programming
    Relates to: ULO4

Engineers Australia Stage 1 Competency Standard for Professional Engineer

1: Knowledge and Skill Base


  1. Relates to: Examination (written)

  2. Relates to: Examination (written)

  3. Relates to: Problem Solving Task, Project (applied)

  4. Relates to: Project (applied)

2: Engineering Application Ability


  1. Relates to: Problem Solving Task, Project (applied)

  2. Relates to: Problem Solving Task

  3. Relates to: Project (applied), Examination (written)

Course Learning Outcomes

This unit is designed to support your development of the following course/study area learning outcomes.

EN01 Bachelor of Engineering (Honours)

  1. Make decisions ethically within the social, cultural, and organisational contexts of professional engineering practice.
    Relates to: ULO3, Examination (written)
  2. Deploy appropriate approaches to engineering design and quality.
    Relates to: ULO4, Problem Solving Task, Project (applied)
  3. Engage with and apply regulatory requirements relating to safety, risk management, and sustainability in professional engineering practice.
    Relates to: ULO2, Project (applied), Examination (written)
  4. Demonstrate a thorough understanding of one engineering discipline, its research directions, and its application in contemporary professional engineering practice.
    Relates to: ULO1, Examination (written)

EV01 Bachelor of Engineering (Honours)

  1. Make decisions ethically within the social, cultural, and organisational contexts of professional engineering practice.
    Relates to: Examination (written)
  2. Deploy appropriate approaches to engineering design and quality.
    Relates to: Problem Solving Task, Project (applied)
  3. Engage with and apply regulatory requirements relating to safety, risk management, and sustainability in professional engineering practice.
    Relates to: Project (applied), Examination (written)
  4. Demonstrate a thorough understanding of one engineering discipline, its research directions, and its application in contemporary professional engineering practice.
    Relates to: Examination (written)

IN01 Bachelor of Information Technology

  1. Demonstrate well-developed IT discipline knowledge
    Relates to: ULO1
  2. Employ appropriate IT Methods
    Relates to: ULO2
  3. Purposefully appraise personal values, attitudes and performance in your continuing professional development
    Relates to: ULO3
  4. Create considered and relevant IT solutions
    Relates to: ULO4