University of Technology Sydney

32547 UNIX Systems Programming

Warning: The information on this page is indicative. The subject outline for a particular session, location and mode of offering is the authoritative source of all information about the subject for that offering. Required texts, recommended texts and references in particular are likely to change. Students will be provided with a subject outline once they enrol in the subject.

Subject handbook information prior to 2022 is available in the Archives.

UTS: Information Technology: Electrical and Data Engineering
Credit points: 6 cp

Subject level:

Postgraduate

Result type: Grade and marks

There are course requisites for this subject. See access conditions.

Recommended studies:

students are expected to be confident computer users with some prior programming experience

Description

This information technology subject provides students with professional skills and knowledge for working in a UNIX environment. UNIX is a widely popular operating system for computing platforms ranging from tablet PCs to server farms. In this subject, students learn the fundamentals of UNIX and how to perform system programming in the UNIX shell and programming language Python. These skills are essential for professional profiles as diverse as IT system administrators, system developers, data engineers, software engineers, network administrators, and IT managers at large.

Subject learning objectives (SLOs)

Upon successful completion of this subject students should be able to:

1. Utilise the UNIX environment effectively to perform a range of system-level tasks.
2. Analyse, write and apply shell and Python scripts of medium complexity to solve system-level problems and form an appropriate skill set.
3. Construct and apply regular expressions in shell and Python to process text, search files and validate formats.

Course intended learning outcomes (CILOs)

This subject also contributes specifically to the development of the following Course Intended Learning Outcomes (CILOs):

  • Technically Proficient: FEIT graduates apply theoretical, conceptual, software and physical tools and advanced discipline knowledge to research, evaluate and predict future performance of systems characterised by complexity. (D.1)

Teaching and learning strategies

The teaching modality in this subject is based on a series of classes and tutorials alternated with assessment and feedback components which act as building blocks to support student progress.

Each class consists of a slide presentation intertwined with interactive programming demonstrations that adapt to address the questions raised by the students. Canvas is accessed by students to gain post class materials to reinforce concepts and practical skills. This is repeated weekly to enable students to build deeper understanding when preparing for the next class and subsequent tutorials.

Weekly tutorials consist of recap notes and guided exercises delivered by a tutor followed by individual practice supported by commented solutions and the tutor’s feedback. Tutorials are delivered in two parts. The first part is presented by the tutor and the second part is entirely practical (Lab work) and assisted by the tutor. The nature of this subject encourages student collaboration where students can learn from each other. Inherently, however, the subject lends itself spontaneously to individual progress.

The assessment is based on a combination of programming exercises, quizzes and a take-home assignment. The programming exercises are run using a contemporary online educational platform for learning programming. This platform is designed to provide formative feedback including immediate diagnostics for each answer.

Content (topics)

  1. UNIX commands and command line
  2. Programming using the UNIX bash shell
  3. Programming using Python
  4. UNIX and Python regular expressions
  5. Sockets and inter-process communication in Python

Assessment

Assessment task 1: Programming Test - Unix

Intent:

Test students’ ability to develop scripts of simple and medium complexity in the Unix shell.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1, 2 and 3

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

D.1

Type: Laboratory/practical
Groupwork: Individual
Weight: 20%

Assessment task 2: Multiple Choice - Unix

Intent:

Assess students’ understanding of Unix concepts and their ability to solve problems such as the computation of regular expressions, filename globbing, maximum file sizes, and others.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1, 2 and 3

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

D.1

Type: Quiz/test
Groupwork: Individual
Weight: 15%

Assessment task 3: Programming Test - Python

Intent:

Test students’ ability to develop scripts of simple and medium complexity in Python.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

2 and 3

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

D.1

Type: Laboratory/practical
Groupwork: Individual
Weight: 20%

Assessment task 4: Multiple Choice - Python

Intent:

Assess students’ understanding of Python concepts and their ability to solve problems such as the evaluation of regular expressions, elements of lists and dictionaries, numerical expressions and others.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

2 and 3

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

D.1

Type: Quiz/test
Groupwork: Individual
Weight: 15%

Assessment task 5: Assignment

Intent:

This assignment is a take-home, individual programming assignment using Python. It reflects authentic professional practice by being presented as a set of functional specifications that can be tested individually using test patterns. It resembles a typical programming task assigned to a professional programmer, scaled to the scope and extent of this subject.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

2 and 3

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

D.1

Type: Laboratory/practical
Groupwork: Individual
Weight: 30%

Minimum requirements

In order to pass the subject, a student must achieve an overall mark of 50% or more.

References

Students will need references for Unix and Python; they can choose them from the following list of hardcopy and online books:

Unix (online, free):

The Linux Documentation Project at http://www.tldp.org/

The Linux Foundation at http://www.linuxfoundation.org/

Unix (hardcopy):

Michael Palmer, Guide to UNIX Using Linux, Fourth Edition (or previous editions), Course Technology

Python (online):

Python’s official website: http://www.python.org, maintained by the Python Software Foundation, a nonprofit organisation devoted to the Python programming language

Python (PDF or hardcopy):

Dr Charles Severance’s book, Python for Everybody - Exploring Data In Python 3 - an easy, nicely narrated book from a popular Python trainer

Mark Lutz, Programming Python, 4th Edition, O'Reilly Media; a monumental (1600+ pages) reference guide to the language; use only for consultation on specific topics

Other resources

Online support is on the subject’s website on Canvas: http://canvas.uts.edu.au/. The website makes available:

  • subject information
  • materials
  • assessment resources
  • your grades