Computer Science

COMP – Computer Science unit of study descriptions

COMP2017 Systems Programming

Credit points: 6 Session: Semester 1 Classes: lectures, laboratories Prerequisites: INFO1113 OR INFO1105 OR INFO1905 OR INFO1103 Corequisites: COMP2123 OR COMP2823 OR INFO1105 OR INFO1905 Prohibitions: COMP2129 Assessment: through semester assessment (50%), final exam (50%) Mode of delivery: Normal (lecture/lab/tutorial) day
In this unit of study, elementary methods for developing robust, efficient, and re-usable software will be covered. The unit is taught in C, in a Unix environment. Specific coding topics include memory management, the pragmatic aspects of implementing data structures such as lists and hash tables and managing concurrent threads. Debugging tools and techniques are discussed and common programming errors are considered along with defensive programming techniques to avoid such errors. Emphasis is placed on using common Unix tools to manage aspects of the software construction process, such as version control and regression testing. The subject is taught from a practical viewpoint and it includes a considerable amount of programming practice.
COMP2022 Programming Languages, Logic and Models

Credit points: 6 Session: Semester 2 Classes: Lectures, Tutorials Prerequisites: INFO1103 OR INFO1903 OR INFO1113 Prohibitions: COMP2922 Assumed knowledge: MATH1004 OR MATH1904 OR MATH1064 OR MATH2069 OR MATH2969 Assessment: Through semester assessment (50%) and Final Exam (50%) Mode of delivery: Normal (lecture/lab/tutorial) day
This unit provides an introduction to the foundations of computational models, and their connection to programming languages/tools. The unit covers various abstract models for computation including Lambda Calculus, and Logic calculi (e. g. concept of formal proofs in propositional, predicate, and temporal logic). For each abstract model, we introduce programming languages/tools that are built on the introduced abstract computational models. We will discuss functional languages including Scheme/Haskell, and Prolog/Datalog.
COMP2123 Data Structures and Algorithms

Credit points: 6 Session: Semester 1 Classes: Lectures, Tutorials Prerequisites: INFO1110 OR INFO1910 OR INFO1113 OR DATA1002 OR DATA1902 OR INFO1103 OR INFO1903 Prohibitions: INFO1105 OR INFO1905 OR COMP2823 Assessment: through semester assessment (50%), final exam (50%) Mode of delivery: Normal (lecture/lab/tutorial) day
This unit will teach some powerful ideas that are central to solving algorithmic problems in ways that are more efficient than naive approaches. In particular, students will learn how data collections can support efficient access, for example, how a dictionary or map can allow key-based lookup that does not slow down linearly as the collection grows in size. The data structures covered in this unit include lists, stacks, queues, priority queues, search trees, hash tables, and graphs. Students will also learn efficient techniques for classic tasks such as sorting a collection. The concept of asymptotic notation will be introduced, and used to describe the costs of various data access operations and algorithms.
COMP2555 Computer Science Exchange

Credit points: 6 Session: Intensive January,Intensive July,Semester 1,Semester 2 Mode of delivery: Normal (lecture/lab/tutorial) day
This unit of study is for University of Sydney students in the Exchange program studying at an overseas University.
COMP2556 Computer Science Exchange

Credit points: 6 Session: Semester 1,Semester 2 Mode of delivery: Normal (lecture/lab/tutorial) day
This unit of study is for University of Sydney students in the Exchange program studying at an overseas University.
COMP2557 Computer Science Exchange

Credit points: 6 Session: Semester 1,Semester 2 Mode of delivery: Normal (lecture/lab/tutorial) day
This unit of study is for University of Sydney students in the Exchange program studying at an overseas University.
COMP2558 Computer Science Exchange

Credit points: 6 Session: Semester 1,Semester 2 Mode of delivery: Normal (lecture/lab/tutorial) day
This unit of study is for University of Sydney students in the Exchange program studying at an overseas University.
COMP2591 Advanced Computer Science Exchange

Credit points: 6 Session: Semester 1,Semester 1a,Semester 1b,Semester 2,Semester 2a,Semester 2b Mode of delivery: Normal (lecture/lab/tutorial) day
This unit of study is for University of Sydney students in the Exchange program studying at an overseas University.
COMP2592 Advanced Computer Science Exchange

Credit points: 6 Session: Semester 1,Semester 1a,Semester 1b,Semester 2,Semester 2a,Semester 2b Mode of delivery: Normal (lecture/lab/tutorial) day
This unit of study is for University of Sydney students in the Exchange program studying at an overseas University.
COMP2823 Data Structures and Algorithms (Adv)

Credit points: 6 Session: Semester 1 Classes: lectures, tutorials Prerequisites: INFO1110 OR INFO1910 OR INFO1113 OR DATA1002 OR DATA1902 OR INFO1103 OR INFO1903 Prohibitions: INFO1105 OR INFO1905 OR COMP2123 Assessment: through semester assessment (50%), final exam (50%) Mode of delivery: Normal (lecture/lab/tutorial) day
Note: Department permission required for enrolment
This unit will teach some powerful ideas that are central to solving algorithmic problems in ways that are more efficient than naive approaches. In particular, students will learn how data collections can support efficient access, for example, how a dictionary or map can allow key-based lookup that does not slow down linearly as the collection grows in size. The data structures covered in this unit include lists, stacks, queues, priority queues, search trees, hash tables, and graphs. Students will also learn efficient techniques for classic tasks such as sorting a collection. The concept of asymptotic notation will be introduced, and used to describe the costs of various data access operations and algorithms.
COMP2922 Programming Languages, Logic and Models (Adv)

Credit points: 6 Session: Semester 2 Classes: lectures, tutorials Prerequisites: Distinction level result in INFO1103 OR INFO1903 OR INFO1113 Prohibitions: COMP2022 Assumed knowledge: MATH1004 OR MATH1904 OR MATH1064 OR MATH2069 OR MATH2969 Assessment: through semester assessment (50%), final exam (50%) Mode of delivery: Normal (lecture/lab/tutorial) day
Note: Department permission required for enrolment
This unit provides an introduction to the foundations of computational models, and their connection to programming languages/tools. The unit covers various abstract models for computation including Lambda Calculus, and Logic calculi (e.g. concept of formal proofs in propositional, predicate, and temporal logic). For each abstract model, we introduce programming languages/tools that are built on the introduced abstract computational models. We will discuss functional languages including Scheme/Haskell, and Prolog/Datalog.
COMP3027 Algorithm Design

Credit points: 6 Session: Semester 1 Classes: lectures, tutorials Prerequisites: COMP2123 OR COMP2823 OR INFO1105 OR INFO1905 Prohibitions: COMP2007 OR COMP2907 OR COMP3927 Assumed knowledge: MATH1004 OR MATH1904 OR MATH1064 Assessment: through semester assessment (40%), final exam (60%) Mode of delivery: Normal (lecture/lab/tutorial) day
This unit provides an introduction to the design techniques that are used to find efficient algorithmic solutions for given problems. The techniques covered included greedy, divide-and-conquer, dynamic programming, and adjusting flows in networks. Students will extend their skills in algorithm analysis. The unit also provides an introduction to the concepts of computational complexity and reductions between problems.
COMP3221 Distributed Systems

Credit points: 6 Session: Semester 1 Classes: Lectures, Laboratories, Project Work - own time Prerequisites: (INFO1105 OR INFO1905) OR ((INFO1103 OR INFO1113) AND (COMP2123 OR COMP2823)) Prohibitions: COMP2121 Assessment: through semester assessment (60%), final exam (40%) Mode of delivery: Normal (lecture/lab/tutorial) day
This unit will provide broad introduction to the principles of distributed computing and distributed systems and their design; provide students the fundamental knowledge required to analyse, design distributed algorithms and implement various types of applications, like blockchains; explain the common algorithmic design principles and approaches used in the design of message passing at different scales (e.g., logical time, peer-to-peer overlay, gossip-based communication).
COMP3308 Introduction to Artificial Intelligence

Credit points: 6 Session: Semester 1 Classes: Tutorials, Lectures Prohibitions: COMP3608 Assumed knowledge: Algorithms. Programming skills (e.g. Java, Python, C, C++, Matlab) Assessment: Through semester assessment (45%) and Final Exam (55%) Mode of delivery: Normal (lecture/lab/tutorial) day
Artificial Intelligence (AI) is all about programming computers to perform tasks normally associated with intelligent behaviour. Classical AI programs have played games, proved theorems, discovered patterns in data, planned complex assembly sequences and so on. This unit of study will introduce representations, techniques and architectures used to build intelligent systems. It will explore selected topics such as heuristic search, game playing, machine learning, neural networks and probabilistic reasoning. Students who complete it will have an understanding of some of the fundamental methods and algorithms of AI, and an appreciation of how they can be applied to interesting problems. The unit will involve a practical component in which some simple problems are solved using AI techniques.
COMP3419 Graphics and Multimedia

Credit points: 6 Session: Semester 2 Classes: Lectures, Tutorials Prerequisites: COMP2123 OR COMP2823 OR INFO1105 OR INFO1905 Assumed knowledge: Programming skills Assessment: Through semester assessment (40%) and Final Exam (60%) Mode of delivery: Normal (lecture/lab/tutorial) day
This unit provides a broad introduction to the field of graphics and multimedia computing to meet the diverse requirements of application areas such as entertainment, industrial design, virtual reality, intelligent media management, social media and remote sensing. It covers both the underpinning theories and the practices of computing and manipulating digital media including graphics / image, audio, animation, and video. Emphasis is placed on principles and cutting-edge techniques for multimedia data processing, content analysis, media retouching, media coding and compression.
COMP3520 Operating Systems Internals

Credit points: 6 Session: Semester 2 Classes: Lectures, Tutorials Prerequisites: (COMP2017 OR COMP2129) AND (COMP2123 OR COMP2823 OR INFO1105 OR INFO1905) Assessment: Through semester assessment (40%) and Final Exam (60%) Mode of delivery: Normal (lecture/lab/tutorial) day
This unit will provide a comprehensive discussion of relevant OS issues and principles and describe how those principles are put into practice in real operating systems. The contents include internal structure of OS; several ways each major aspect (process scheduling, inter-process communication, memory management, device management, file systems) can be implemented; the performance impact of design choices; case studies of common OS (Linux, MS Windows NT, etc.).
COMP3530 Discrete Optimization

Credit points: 6 Session: Semester 2 Classes: Lectures, Tutorials Prerequisites: COMP2007 or COMP2907 Assessment: Through semester assessment (50%) and Final Exam (50%) Mode of delivery: Normal (lecture/lab/tutorial) day
This unit introduces students to the algorithmic theory and applications of discrete optimisation. The main aims of this unit are: Learn how to model various practical problems as abstract optimisation problems; Learn the theory underlying efficient algorithms for solving these problems; Learn how to use these tools in practice.
Specific topics include: Linear and integer programming, polyhedral theory, and approximation algorithms.
COMP3556 Computer Science Exchange

Credit points: 6 Session: Intensive January,Intensive July,Semester 1,Semester 2 Mode of delivery: Normal (lecture/lab/tutorial) day
This unit of study is for University of Sydney students in the Exchange program studying at an overseas University.
COMP3557 Computer Science Exchange

Credit points: 6 Session: Semester 1,Semester 2 Mode of delivery: Normal (lecture/lab/tutorial) day
This unit of study is for University of Sydney students in the Exchange program studying at an overseas University.
COMP3558 Computer Science Exchange

Credit points: 6 Session: Semester 1,Semester 2 Mode of delivery: Normal (lecture/lab/tutorial) day
This unit of study is for University of Sydney students in the Exchange program studying at an overseas University.
COMP3559 Computer Science Exchange

Credit points: 6 Session: Semester 1,Semester 2 Mode of delivery: Normal (lecture/lab/tutorial) day
This unit of study is for University of Sydney students in the Exchange program studying at an overseas University.
COMP3608 Introduction to Artificial Intelligence (Adv)

Credit points: 6 Session: Semester 1 Classes: Lectures, Tutorials Prerequisites: Distinction-level results in at least one 2000 level COMP or MATH or SOFT unit Prohibitions: COMP3308 Assumed knowledge: Algorithms. Programming skills (e.g. Java, Python, C, C++, Matlab) Assessment: Through semester assessment (45%) and Final Exam (55%) Mode of delivery: Normal (lecture/lab/tutorial) day
Note: COMP3308 and COMP3608 share the same lectures, but have different tutorials and assessment (the same type but more challenging).
An advanced alternative to COMP3308; covers material at an advanced and challenging level.
COMP3888 Computer Science Project

Credit points: 6 Session: Semester 2 Classes: meetings, project work, site visits Prerequisites: (COMP2123 OR COMP2823) AND COMP2017 AND (COMP2022 OR COMP2922) Prohibitions: INFO3600 OR COMP3600 OR COMP3615 OR COMP3988 Assessment: through semester assessment (100%) Mode of delivery: Normal (lecture/lab/tutorial) day
This unit will provide students an opportunity to apply the knowledge and practise the skills acquired in the prerequisite and qualifying units, in the context of designing and building a substantial software development system in diverse application domains including life sciences. Working in groups for an external client combined with academic supervision, students will need to carry out the full range of activities including requirements capture, analysis and design, coding, testing and documentation. Students will use the XP methodology and make use of professional tools for the management of their project.
COMP3988 Computer Science Project (Advanced)

Credit points: 6 Session: Semester 2 Classes: meetings, project work, site visits Prerequisites: [(COMP2123 OR COMP2823) AND COMP2017 AND (COMP2022 OR COMP2922) with Distinction level results in at least one of these units.] Prohibitions: INFO3600 OR COMP3615 OR COMP3600 OR COMP3888 Assessment: through semester assessment (100%) Mode of delivery: Normal (lecture/lab/tutorial) day
Note: Department permission required for enrolment
This unit will provide students an opportunity to apply the knowledge and practise the skills acquired in the prerequisite and qualifying units, in the context of designing and building a substantial software development system in diverse application domains including life sciences. Working in groups for an external client combined with academic supervision, students will need to carry out the full range of activities including requirements capture, analysis and design, coding, testing and documentation. Students will use the XP methodology and make use of professional tools for the management of their project.
COMP3927 Algorithm Design (Adv)

Credit points: 6 Session: Semester 1 Classes: lectures, tutorials Prerequisites: COMP2123 OR COMP2823 OR INFO1105 OR INFO1905 Prohibitions: COMP2007 OR COMP2907 OR COMP3027 Assumed knowledge: MATH1004 OR MATH1904 OR MATH1064 Assessment: through semester assessment (40%), final exam (60%) Mode of delivery: Normal (lecture/lab/tutorial) day
Note: Department permission required for enrolment
This unit provides an introduction to the design techniques that are used to find efficient algorithmic solutions for given problems. The techniques covered included greedy, divide-and-conquer, dynamic programming, and adjusting flows in networks. Students will extend their skills in algorithm analysis. The unit also provides an introduction to the concepts of computational complexity and reductions between problems.
COMP4551 Computer Science Exchange

Credit points: 6 Session: Semester 1,Semester 2 Mode of delivery: Normal (lecture/lab/tutorial) day
This unit of study is for University of Sydney students in the Exchange program studying at an overseas University.
COMP4552 Computer Science Exchange

Credit points: 6 Session: Semester 1,Semester 2 Mode of delivery: Normal (lecture/lab/tutorial) day
This unit of study is for University of Sydney students in the Exchange program studying at an overseas University.
COMP4553 Computer Science Exchange

Credit points: 6 Session: Semester 1,Semester 2 Mode of delivery: Normal (lecture/lab/tutorial) day
This unit of study is for University of Sydney students in the Exchange program studying at an overseas University.
COMP4554 Computer Science Exchange

Credit points: 6 Session: Semester 1,Semester 2 Mode of delivery: Normal (lecture/lab/tutorial) day
This unit of study is for University of Sydney students in the Exchange program studying at an overseas University.
COMP5045 Computational Geometry

Credit points: 6 Session: Semester 1 Classes: Project Work Assumed knowledge: Students are assumed to have a basic knowledge of the design and analysis of algorithms and data structures: you should be familiar with big-O notations and simple algorithmic techniques like sorting, binary search, and balanced search trees. Assessment: Through semester assessment (72%) and Final Exam (28%) Mode of delivery: Normal (lecture/lab/tutorial) day
In many areas of computer science- robotics, computer graphics, virtual reality, and geographic information systems are some examples- it is necessary to store, analyse, and create or manipulate spatial data. This course deals with the algorithmic aspects of these tasks: we study techniques and concepts needed for the design and analysis of geometric algorithms and data structures. Each technique and concept will be illustrated on the basis of a problem arising in one of the application areas mentioned above.
COMP5046 Natural Language Processing

Credit points: 6 Session: Semester 1 Classes: Lectures, Laboratory Assumed knowledge: Knowledge of an OO programming language Assessment: Through semester assessment (50%) and Final Exam (50%) Mode of delivery: Normal (lecture/lab/tutorial) day
This unit introduces computational linguistics and the statistical techniques and algorithms used to automatically process natural languages (such as English or Chinese). It will review the core statistics and information theory, and the basic linguistics, required to understand statistical natural language processing (NLP).
Statistical NLP is used in a wide range of applications, including information retrieval and extraction; question answering; machine translation; and classifying and clustering of documents. This unit will explore the key challenges of natural language to computational modelling, and the state of the art approaches to the key NLP sub-tasks, including tokenisation, morphological analysis, word sense representation, part-of-speech tagging, named entity recognition and other information extraction, text categorisation, phrase structure parsing and dependency parsing.
Students will implement many of these sub-tasks in labs and assignments. The unit will also investigate the annotation process that is central to creating training data for statistical NLP systems. Students will annotate data as part of completing a real-world NLP task.
COMP5047 Pervasive Computing

Credit points: 6 Session: Semester 2 Classes: Studio class Assumed knowledge: ELEC1601 AND (COMP2129 OR COMP2017). Background in programming and operating systems that is sufficient for the student to independently learn new programming tools from standard online technical materials. Assessment: Through semester assessment (60%) and Final Exam (40%) Mode of delivery: Normal (lecture/lab/tutorial) day
Note: Department permission required for enrolment
This is an advanced course on Pervasive Computing, with a focus on the "Internet of Things" (IoT). It introduces the key aspects of the IoT and explores these in terms of the new research towards creating user interfaces that disappear into the environment and are available pervasively, for example in homes, workplaces, cars and carried.
COMP5048 Visual Analytics

Credit points: 6 Session: Semester 2 Classes: Lectures, Tutorials Assumed knowledge: It is assumed that students will have basic knowledge of data structures, algorithms and programming skills. Assessment: Through semester assessment (60%) and Final Exam (40%) Mode of delivery: Normal (lecture/lab/tutorial) day
Visual Analytics aims to facilitate the data analytics process through Information Visualisation. Information Visualisation aims to make good pictures of abstract information, such as stock prices, family trees, and software design diagrams. Well designed pictures can convey this information rapidly and effectively. The challenge for Visual Analytics is to design and implement effective Visualisation methods that produce pictorial representation of complex data so that data analysts from various fields (bioinformatics, social network, software visualisation and network) can visually inspect complex data and carry out critical decision making. This unit will provide basic HCI concepts, visualisation techniques and fundamental algorithms to achieve good visualisation of abstract information. Further, it will also provide opportunities for academic research and developing new methods for Visual Analytic methods.
COMP5216 Mobile Computing

Credit points: 6 Session: Semester 2 Classes: Lectures, Tutorials Assumed knowledge: COMP5214 OR COMP9103. Software Development in JAVA, or similar introductory software development units. Assessment: Through semester assessment (45%) and Final Exam (55%) Mode of delivery: Normal (lecture/lab/tutorial) day
Mobile computing is becoming a main stream for many IT applications, due to the availability of more and more powerful and affordable mobile devices with rich sensors such as cameras and GPS, which have already significantly changed many aspects in business, education, social network, health care, and entertainment in our daily life. Therefore it has been critical for students to be equipped with sufficient knowledge of such new computing platform and necessary skills. The unit aims to provide an in-depth overview of existing and emerging mobile computing techniques and applications, the eco-system of the mobile computing platforms, and its key building components. The unit will also train students with hand-on experiences in developing mobile applications in a broad range of areas.
COMP5313 Large Scale Networks

Credit points: 6 Session: Semester 1 Classes: Lectures, Tutorials Assumed knowledge: Algorithmic skills (as expected from any IT graduate). Basic probability knowledge. Assessment: Through semester assessment (60%) and Final Exam (40%) Mode of delivery: Normal (lecture/lab/tutorial) day
The growing connected-ness of modern society translates into simplifying global communication and accelerating spread of news, information and epidemics. The focus of this unit is on the key concepts to address the challenges induced by the recent scale shift of complex networks. In particular, the course will present how scalable solutions exploiting graph theory, sociology and probability tackle the problems of communicating (routing, diffusing, aggregating) in dynamic and social networks.
COMP5318 Machine Learning and Data Mining

Credit points: 6 Session: Semester 1,Semester 2 Classes: Lectures, Tutorials Assumed knowledge: INFO2110 OR ISYS2110 OR COMP9120 OR COMP5138 Assessment: Through semester assessment (50%) and Final Exam (50%) Mode of delivery: Normal (lecture/lab/tutorial) day
Machine learning is the process of automatically building mathematical models that explain and generalise datasets. It integrates elements of statistics and algorithm development into the same discipline. Data mining is a discipline within knowledge discovery that seeks to facilitate the exploration and analysis of large quantities for data, by automatic and semiautomatic means. This subject provides a practical and technical introduction to machine learning and data mining.
Topics to be covered include problems of discovering patterns in the data, classification, regression, feature extraction and data visualisation. Also covered are analysis, comparison and usage of various types of machine learning techniques and statistical techniques.
COMP5328 Advanced Machine Learning

Credit points: 6 Session: Semester 2 Classes: Lectures, tutorials Assumed knowledge: COMP5318 Assessment: Through semester assessment (50%) and Final Exam (50%) Mode of delivery: Normal (lecture/lab/tutorial) day
Machine learning models explain and generalise data. This course introduces some fundamental machine learning concepts, learning problems and algorithms to provide understanding and simple answers to many questions arising from data explanation and generalisation. For example, why do different machine learning models work? How to further improve them? How to adapt them to different purposes?
The fundamental concepts, learning problems and algorithms are carefully selected. Many of them are closely related to practical questions of the day, such as transfer learning, learning with label noise and multi-view learning.
COMP5329 Deep Learning

Credit points: 6 Session: Semester 1 Classes: Tutorials, Lectures Assumed knowledge: COMP5318 Assessment: through semester assessment (50%), final exam (50%) Mode of delivery: Normal (lecture/lab/tutorial) day
This course provides an introduction to deep machine learning, which is rapidly emerging as one of the most successful and widely applicable set of techniques across a range of applications. Students taking this course will be exposed to cutting-edge research in machine learning, starting from theories, models, and algorithms, to implementation and recent progress of deep learning. Specific topics include: classical architectures of deep neural network, optimization techniques for training deep neural networks, theoretical understanding of deep learning, and diverse applications of deep learning in computer vision.
COMP5338 Advanced Data Models

Credit points: 6 Session: Semester 2 Classes: Tutorials, Lectures Assumed knowledge: This unit of study assumes foundational knowledge of relational database systems as taught in COMP5138/COMP9120 (Database Management Systems) or INFO2120/INFO2820/ISYS2120 (Database Systems 1). Assessment: Through semester assessment (40%) and Final Exam (60%) Mode of delivery: Normal (lecture/lab/tutorial) day
This unit of study gives a comprehensive overview of post-relational data models and of latest developments in data storage technology.
Particular emphasis is put on spatial, temporal, and NoSQL data storage. This unit extensively covers the advanced features of SQL:2003, as well as a few dominant NoSQL storage technologies. Besides in lectures, the advanced topics will be also studied with prescribed readings of database research publications.
COMP5347 Web Application Development

Credit points: 6 Session: Semester 1 Classes: Lectures, Laboratory, Project Work Prerequisites: INFO1103 or INFO1113 or COMP9103 or COMP9220 or COMP5028 Assumed knowledge: COMP9220 or COMP5028. The course assumes basic knowledge on OO design and proficiency in a programming language Assessment: Through semester assessment (40%) and Final Exam (60%) Mode of delivery: Normal (lecture/lab/tutorial) day
Nowadays most client facing enterprise applications are running on web or at least with a web interface. The design and implementation of a web application require totally different set of skills to those are required for traditional desktop applications. All web applications are of client/ server architecture. Requests sent to a web application are expected to go through the public Internet, which slows the responsiveness and increases the possible security threat. A typical web application is also expected to handle large number of requests coming from every corner of the Internet and sent by all sorts of client systems. This further complicates the design of such system.
This course aims at providing both conceptual understanding and hand-on experiences for the technologies used in building web applications. We will examine how data/messages are communicated between client and server; how to improve the responsiveness using rich client technology; as well as how to build a secure web application.
At the end of this course, students are expected to have a clear understanding of the structure and technologies of web applications. Students are also expected to have practical knowledge of some major web application environments and to be able to develop and deploy simple web applications. Cloud based platform are increasingly popular as the development and deployment platform. This course will incorporate the cloud aspect of web application development as well.
COMP5348 Enterprise Scale Software Architecture

This unit of study is not available in 2019

Credit points: 6 Session: Semester 1 Classes: Lectures, Laboratory Assumed knowledge: Programming competence in Java or similar OO language. Capacity to master novel technologies (especially to program against novel APIs) using manuals, tutorial examples, etc. Assessment: Through semester assessment (40%) and Final Exam (60%) Mode of delivery: Normal (lecture/lab/tutorial) day
This unit covers topics on software architecture for large-scale enterprises. Computer systems for large-scale enterprises handle critical business processes, interact with computer systems of other organisations, and have to be highly reliable, available and scalable. This class of systems are built up from several application components, incorporating existing "legacy" code and data stores as well as linking these through middleware technologies, such as distributed transaction processing, remote objects, message-queuing, publish-subscribe, and clustering. The choice of middleware can decide whether the system achieves essential non- functional requirements such as performance and availability. The objective of this unit of study is to educate students for their later professional career and it covers Software Architecture topics of the ACM/IEEE Software Engineering curriculum. Objective: The objective of this unit of study is to educate students for their later professional career and it covers topics of the ACM/IEEE Software Engineering curriculum.
COMP5349 Cloud Computing

Credit points: 6 Session: Semester 1 Classes: Lectures, Practical Labs, Project Work Assumed knowledge: Good programming skills, especially in Java for the practical assignment, as well as proficiency in databases and SQL. The unit is expected to be taken after introductory courses in related units such as COMP5214 or COMP9103 Software Development in JAVA Assessment: Through semester assessment (45%) and Final Exam (55%) Mode of delivery: Normal (lecture/lab/tutorial) day
This unit covers topics of active and cutting-edge research within IT in the area of 'Cloud Computing'.
Cloud Computing is an emerging paradigm of utilising large-scale computing services over the Internet that will affect individual and organization's computing needs from small to large. Over the last decade, many cloud computing platforms have been set up by companies like Google, Yahoo!, Amazon, Microsoft, Salesforce, Ebay and Facebook. Some of the platforms are open to public via various pricing models. They operate at different levels and enable business to harness different computing power from the cloud.
In this course, we will describe the important enabling technologies of cloud computing, explore the state-of-the art platforms and the existing services, and examine the challenges and opportunities of adopting cloud computing. The course will be organized as a series of presentations and discussions of seminal and timely research papers and articles. Students are expected to read all papers, to lead discussions on some of the papers and to complete a hands-on cloud-programming project.
COMP5415 Multimedia Design and Authoring

Credit points: 6 Session: Semester 2 Classes: Lectures, Tutorials Assessment: Through semester assessment (40%) and Final Exam (60%) Mode of delivery: Normal (lecture/lab/tutorial) day
This unit provides principles and practicalities of creating interactive and effective multimedia products. It gives an overview of the complete spectrum of different media platforms and current authoring techniques used in multimedia production. Coverage includes the following key topics: enabling multimedia technologies; multimedia design issues; interactive 2D and 3D computer animation; multimedia object modelling and rendering; multimedia scripting programming; post-production and delivery of multimedia applications.
COMP5416 Advanced Network Technologies

Credit points: 6 Session: Semester 2 Classes: Lectures, Laboratory Assumed knowledge: ELEC3506 OR ELEC9506 OR ELEC5740 OR COMP5116 Assessment: Through semester assessment (40%) and Final Exam (60%) Mode of delivery: Normal (lecture/lab/tutorial) day
The unit introduces networking concepts beyond the best effort service of the core TCP/IP protocol suite. Understanding of the fundamental issues in building an integrated multi-service network for global Internet services, taking into account service objectives, application characteristics and needs and network mechanisms will be discussed. Enables students to understand the core issues and be aware of proposed solutions so they can actively follow and participate in the development of the Internet beyond the basic bit transport service.
COMP5424 Information Technology in Biomedicine

Credit points: 6 Session: Semester 1 Classes: Lectures, Tutorials Assessment: Through semester assessment (40%) and Final Exam (60%) Mode of delivery: Normal (lecture/lab/tutorial) day
Information technology (IT) has significantly contributed to the research and practice of medicine, biology and health care. The IT field is growing enormously in scope with biomedicine taking a lead role in utilising the evolving applications to its best advantage. The goal of this unit of study is to provide students with the necessary knowledge to understand the information technology in biomedicine. The major emphasis will be on the principles associated with biomedical digital imaging systems and related biomedicine data processing, analysis, visualisation, registration, modelling, retrieval and management. A broad range of practical integrated clinical applications will be also elaborated.
COMP5425 Multimedia Retrieval

Credit points: 6 Session: Semester 1 Classes: Lectures, Tutorials Assumed knowledge: COMP9007 or COMP5211. Basic Programming skills and data structure knowledge. Assessment: Through semester assessment (40%) and Final Exam (60%) Mode of delivery: Normal (lecture/lab/tutorial) day
The explosive growth of multimedia data, including text, audio, images and video has imposed unprecedented challenges for search engines to meet various information needs of users. This unit provides students with the necessary and updated knowledge of this field in the context of big data, from the information retrieval basics of a search engine, to many advanced techniques towards next generation search engines, such as content based image and video retrieval, large scale visual information retrieval, and social media.
COMP5426 Parallel and Distributed Computing

Credit points: 6 Session: Semester 1 Classes: Lectures, Tutorials Assessment: Through semester assessment (45%) and Final Exam (55%) Mode of delivery: Normal (lecture/lab/tutorial) day
This unit is intended to introduce and motivate the study of high performance computer systems. The student will be presented with the foundational concepts pertaining to the different types and classes of high performance computers. The student will be exposed to the description of the technological context of current high performance computer systems. Students will gain skills in evaluating, experimenting with, and optimising the performance of high performance computers. The unit also provides students with the ability to undertake more advanced topics and courses on high performance computing.
COMP5427 Usability Engineering

Credit points: 6 Session: Semester 2 Classes: Lectures, Laboratory Assessment: Through semester assessment (60%) and Final Exam (40%) Mode of delivery: Normal (lecture/lab/tutorial) day
Usability engineering is the systematic process of designing and evaluating user interfaces so that they are usable. This means that people can readily learn to use them efficiently, can later remember how to use them and find it pleasant to use them. The wide use of computers in many aspects of people's lives means that usability engineering is of the utmost importance.
There is a substantial body of knowledge about how to elicit usability requirements, identify the tasks that a system needs to support, design interfaces and then evaluate them. This makes for systematic ways to go about the creation and evaluation of interfaces to be usable for the target users, where this may include people with special needs. The field is extremely dynamic with the fast emergence of new ways to interact, ranging from conventional WIMP interfaces, to touch and gesture interaction, and involving mobile, portable, embedded and desktop computers.
This unit will enable students to learn the fundamental concepts, methods and techniques of usability engineering. Students will practice these in small classroom activities. They will then draw them together to complete a major usability evaluation assignment in which they will design the usability testing process, recruit participants, conduct the evaluation study, analyse these and report the results