Units
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:
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);
Practice: - 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; 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:
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.
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