Information Security

This unit is concerned with the protection and privacy of information in computer systems. The focus of the course is primarily on introducing basic concepts in computer and information security and then using this knowledge as the vehicle to study the design and implementation of secure computer and network systems. This unit also provides students with practical experience with security programming. In more specific terms, the unit is intended to provide the following: basic concepts of conventional and public key encryption; number theory and its application in public key encryption and signatures; protocols used in secure computer systems.

Computer Architecture

This unit is designed for computer science students, particularly those interested in systems programming, hardware/software interfaces, and computer system performance evaluation. The topics cover memory system organisation and architecture, CPU functional organisation, pipelined and superscalar microarchitectures, multiprocessor systems, and I/O systems. After completing this unit students will understand the major issues in the state-of-the-art computer architecture, especially modern microprocessors, and will be able to use this knowledge as a basis for product choice and systems configuration.

Operating Systems

This unit provides an introduction to the theory and practice of the internal structure, implementation and functionality of operating systems. The unit is relevant not only for systems programmers, but also for applications developers who need to understand how operating systems control computer hardware, and how they provide convenience, efficiency and security for application development and implementation.

Distributed Systems and Programming

This unit covers concepts and design of, and programming for distributed systems. It builds on basic network communication protocols (specifically IP) to cover client-server programming using both the system level socket interface and remote procedure calls. It also examines large-scale distributed system architectures, particularly those based on distributed objects, and considers the complexities inherent in distributed transactions. Key concepts covered include data and algorithmic distribution, idempotent protocols, stateless and stateful servers, and distributed system transparency. Illustrative case studies are included.

Systems Administration Programming

This unit covers programming techniques and tools used to administer standalone and networked computer systems. The unit focuses on the use of high level interpretive scripting languages to automate everyday administrative tasks, and to monitor and control running systems. Techniques to extend scripting language capabilities by dynamic linking to compiled code are examined, particularly in terms of access to operating system level functions. The unit also examines the use of administrative programs and tools to monitor and adjust system performance and capacity.

Systems Programming 2

This unit complements and extends the work already done in Systems Programming 1. It covers advanced topics in programming that are directly relevant to systems level application design and implementation. As such it addresses the main concepts, principles, and techniques for system level programs that utilise virtual memory, dynamic link libraries, asynchronous I/O, and multi-threading that can support high levels of concurrency. The unit also emphasises and builds a sound understanding of kernel level objects, as well as error and exception handling techniques, and focuses primarily on using the low-level functionality exposed by the operating system's C/C++ language API.

Network Security

This unit is concerned with the protection of information transferred over computer networks. It includes discussion of techniques for securing data transported over local and wide area networks. At the conclusion of the unit students will have a good understanding of the practical aspects of securing a computer network against internal and external attacks.

Computer Security

This unit identifies and analyses various principles and technologies related to security and privacy and discusses practical application of those principles and technologies in securing computer systems. It is designed to provide basic computer security skills required by any discipline that uses computer systems and also lays a solid foundation for individuals who are keen to pursue a career in computer security. In particular, but not limited to, this unit aims at the implementation and management of security and privacy policies of organisations within the standards and legal framework that is also applicable to the Australian standards.