Section: Home

Units

QUT Course Structure
Systems Programming

Unit code: INB365
Contact hours: 3 per week
Credit points: 12
Information about fees and unit costs

Systems programming is an essential part of any computer-science education. This unit uses operating system concepts to teach the foundations of systems programming and advanced concepts for producing softwares that provide services to computer hardware. Through this study, you will be able to demonstrate knowledge of the principles and techniques of process management, memory and file management, protection & security, and distributed systems.


Availability
Semester Available
2013 Semester 2 Yes

Sample subject outline - Semester 2 2013

Note: Subject outlines often change before the semester begins. Below is a sample outline.

Rationale

Systems programming is the activity of programming system software. The aim of systems programming is to produce software that provides services to computer hardware. The successful softwares of systems programming are operating systems that are an essential part of any computer system. An operating system manages the computer hardware that provides an environment in which users can easily interface with the computer to execute programs. Usually an operating system is large and complex and it must be created piece by piece. This unit discusses the concepts, structure and mechanisms of modern operating systems for systems programming, e.g., processes, concurrency, storage management, and so on. It also looks at distributed systems and protection & security issues that are required to support systems programming. Through this study, students will be able to demonstrate knowledge of systems programming. It also enables students to design software that provide services to systems, such as operating systems, control systems, games, business applications, and data processing systems.

You may take this unit if you are enrolled in other courses, or in other degree programs of the University, as long as you meet the required prerequisites or equivalents.

Assumed Knowledge
You should be familiar with the following IT concepts:

  • Fundamentals of computer architecture;
  • high-level programming languages (such as C, C++, C#, Java, python).

    Aims

    Systems programming is an essential part of any computer-science education. This unit uses operating system concepts to teach the foundations of systems programming and advanced concepts for producing softwares that provide services to computer hardware. Through this study, you will be able to demonstrate knowledge of the principles and techniques of process management, memory and file management, protection & security, and distributed systems. You will also be able to use and develop C programs for systems programming.

    Objectives

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

      Theory:
    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 (GC1);
    2. Demonstrate understanding of the architecture of operating systems (GC1, GC2);

      Practice:
    3. Apply C threads to implement and make effective use of process management and process communication; use C for distributed programming (GC1, GC2);
    4. Show improvement in your critical, creative and analytical thinking and effective problem solving within the IT context through learning and applying a programming language (GC1, GC2, GC3);
    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 (GC4).

    Key: Graduate Capabilities
    GC1 - Knowledge and Skills
    GC2 - Critical and Creative Thinking
    GC3 - Communication
    GC4 - Lifelong Learning

    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;
  • Protection and security features of systems.

    Approaches to Teaching and Learning

    Weekly contact is a 2-hour lecture and 1-hour practical. The Blackboard contains slides for lectures. However, although the slides contain the content of the unit they are insufficient. 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. In lectures, where appropriate, examples will be worked out and code explained. The practicals contain some exercises relevant to lectures. You should study the lecture material, work out 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. Both assignments use C programming language. This addresses objectives 3 - 5.

    Practical: 1 hour weekly programming tasks. These will reinforce the code and theory presented in the lecture. These commence in Week 2. 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.

    This unit is being taught concurrently with a graduate offering of the same subject. University policy permits postgraduate and undergraduate students to attend the same lectures. Separate practical sessions will be provided for postgraduate students where student numbers allow.

    Assessment

    Appropriate assessment criteria will be made available to students at the introduction of the Problem Solving Tasks.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 in person at specified times or via email to answer questions.
    For the Final Exam you are referred to the Faculty's formal Rules, Policy and Procedures.

    Assessment name: Problem Solving Task
    Description: Process management and Client-Server computing
    Relates to objectives: 3, 4 and 5
    Weight: 40%
    Internal or external: Internal
    Group or individual: Individual
    Due date: Week 7 and 12

    Assessment name: Quiz/Test
    Description: Weekly textbook quiz.
    Relates to objectives: 1 and 2
    Weight: 10%
    Internal or external: Internal
    Group or individual: Individual
    Due date: During Practical

    Assessment name: Examination (written)
    Description: Final Examination (Theory)
    Testing Weeks 1-13 Lectures & Practicals
    Relates to objectives: 1, 2, 3, 4 and 5
    Weight: 50%
    Internal or external: Internal
    Group or individual: Individual
    Due date: Examination Period

    Academic Honesty

    QUT is committed to maintaining high academic standards to protect the value of its qualifications. To assist you in assuring the academic integrity of your assessment you are encouraged to make use of the support materials and services available to help you consider and check your assessment items. Important information about the university's approach to academic integrity of assessment is on your unit Blackboard site.

    A breach of academic integrity is regarded as Student Misconduct and can lead to the imposition of penalties.

    Resource materials

    Textbook(s) (required):
    Silberschatz, Abraham; Baer Galvin, Peter and Gagne, Greg, (2009) Operating System Concepts, 8th Edition. New York: John Wiley & Sons
    ISBN: 0-471-69466-5

    Reference(s):
    Stallings, William (2004), Operating systems: internals and design principles, 5th ed. Upper Saddle River, NJ: Pearson/Prentice Hall

    No extraordinary charges or costs are associated with the requirements for this unit.

    top
    Risk assessment statement

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

    Disclaimer - Offer of some units is subject to viability, and information in these Unit Outlines is subject to change prior to commencement of semester.

    Last modified: 04-May-2012