Units
Systems Programming
Unit code: INN365
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:
- 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);
- Demonstrate understanding of the architecture of operating systems (GC1, GC2);
- Apply C threads to implement and make effective use of process management and process communication; use C for distributed programming (GC1, GC2);
- 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);
- 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; demonstrate an aptitude for lifelong learning and develop a sense of basic curiosity about aspects of information technology (GC4).
Practice:
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 an undergraduate 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. As a postgraduate student, you will be required to complete separate assessment tasks that reflect advanced knowledge and understanding of the subject. For this unit, this means your assessment will be of increased complexity but not necessarily of greater length or effort. The assessment will require you to show additional evidence of critical evaluation.
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:
There are two problem-solving tasks during the semester. The first (due Week 7) implements a process management model and the second (due Week 12) implements a client-server model. Although this unit is taught concurrently with INB365, in INN365 these problem-solving tasks have been tailored for the postgraduate unit. This assessment is of increased complexity and requires you to show advanced knowledge and understanding of the subject material.
Relates to objectives:
3, 4, 5
Weight:
40%
Internal or external:
Internal
Group or individual:
Individual
Due date:
Weeks 7 and 12
Assessment name:
Quiz/Test
Description:
Weekly textbook quiz
Relates to objectives:
1, 2
Weight:
10%
Internal or external:
Internal
Group or individual:
Individual
Due date:
During Practical
Assessment name:
Examination (written)
Description:
Testing Weeks 1-13 Lectures & Practicals. Although this unit is taught concurrently with INB365, the examination questions for INN365 will require the postgraduate student to demonstrate advanced knowledge and understanding of the subject material.
Relates to objectives:
1, 2, 3, 4, 5
Weight:
50%
Internal or external:
Internal
Group or individual:
Individual
Due date:
Exam 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.
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: 01-May-2012