Graduate Coursework

Master of Software Engineering

Course code: MC-SOFTENG

Showing information for
Domestic students
domestic
International students
international
Duration

3 years full time / 6 years part time

2 years full time (or part time equivalent) with relevant prior qualifications

Check entry points

Mode (Location)
On campus (Parkville)
Intake

March, July

Key dates

Fees

Commonwealth Supported Places (CSPs) available

Learn more

Entry schemes

Access Melbourne is available

Learn more

How to apply
Enquire
Register for updates
Duration

3 years full time

2 years full time with relevant prior qualifications

Check entry points

Mode (Location)
On campus (Parkville)
Intake

March, July

Key dates

Fees

AUD $62,976 (2026 indicative first year fee)

Learn more

English language requirements

IELTS 6.5: with no band less than 6.0

View full entry requirements

CRICOS code
106110B
How to apply
Enquire
Register for updates

Course structure

Overview

The Master of Software Engineering is a 2–3 year degree (full-time) degree depending on your prior study.

Course structure

First year

In your first year (or equivalent) you’ll complete foundation engineering subjects – tailored to students from a non-engineering background. If you’ve completed the Computing and Software Systems major or Computing major in your bachelor’s degree, plus the required maths and science subjects, you’ll receive credit for these foundation engineering subjects and start in the second year.

Second and third year

In the second and third year (or equivalent), you’ll focus on your chosen engineering discipline. As a software engineering student, you will focus on learning how to produce and manage large and small-scale software systems. You’ll specialise in algorithms, internet technologies and database systems and gain expertise in in subjects from artificial intelligence to cloud computing.

You’ll undertake an industry, design or research project and gain the skills and knowledge to practice as a professional software engineer.

Choose your specialisation

As a Master of Software Engineering student, you can pursue your career goals and interests through one of five specialisations, or you can choose not to specialise if you’d prefer.

Artificial Intelligence

Develop expertise in the design, implementation and analysis of machines that learn, plan and reason, covering topics like machine learning and digital ethics.

Business

Study tailored business subjects developed in partnership with the Melbourne Business School, covering how economics, marketing and finance relate to engineering.

Cyber Security

Discover how to create new technologies to improve security and minimise vulnerabilities in design systems, covering topics like cryptography and security analytics.

Distributed Computing

Learn how to manage large quantities of data through networked computers by exploring topics like distributed algorithms and parallel computing.

Human Computer Interaction

Evaluate interactive technologies, learn how to create the next generation of interfaces and gain expertise in areas like user experience and social computing.

Learn more about FEIT specialisations

Industry, design and research subjects

Internship subject

Gain skills and work experience through our academically credited internship subject. Running over 10–15 weeks, you could intern as a software engineer in a variety of industries, including healthcare and financial services or technology companies and start-ups.

Creating Innovative Engineering subject

Collaborate on a real-world innovation challenge with an industry mentor through our Creating Innovative Engineering subject.

Master Advanced Software Project

Be guided by experienced engineers through the agile software development process to produce a software system for an external client in the year-long Masters Advanced Software Project.

Master Software Engineering Project

You could develop and manage a repeatable process within a software system for an external client with Masters Software Engineering Project. You’ll learn advanced software engineering techniques and methodologies first-hand, including analysis and modelling, product and project metrics, design and technologies, product testing and measurement and validation.

Handbook entries

Master of Software Engineering

Please note: the sample course plans below are intended as a guide only. Current Students should consult the Handbook and My Course Planner for detailed information on how to plan their study.

Sample course plan

View some sample course plans to help you select subjects that will meet the requirements for this coursework.

Semester 1 entry: no specialisation

* Choose one of: ENGR90021 Critical Communication for Engineers; ENGR90034 Creating Innovative Engineering; or ENGR90039 Creating Innovative Professionals. ** Details of the project subjects will be published in the 2022 Handbook

Accordion

Year 1

100 pts

Semester 1 · 50 pts
  • Object Oriented Software Development – core – SWEN20003 – 12.5 pts
  • Database Systems – core – INFO20003 – 12.5 pts
  • Design of Algorithms – core – COMP20007 – 12.5 pts
  • elective – 12.5 pts
Semester 2 · 50 pts
  • Models of Computation – core – COMP30026 – 12.5 pts
  • Software Modelling and Design – core – SWEN30006 – 12.5 pts
  • elective – 12.5 pts
  • elective – 12.5 pts
Accordion

Year 2

100 pts

Semester 1 · 50 pts
  • Software Processes and Management – core – SWEN90016 – 12.5 pts
  • Software Requirements Analysis – core – SWEN90009 – 12.5 pts
  • Computer Systems – core – COMP30023 – 12.5 pts
  • elective – 12.5 pts
Semester 2 · 50 pts
  • Security & Software Testing – core – SWEN90006 – 12.5 pts
  • Masters Software Engineering Project – core – SWEN90014 – 12.5 pts
  • elective – 12.5 pts
  • elective – 12.5 pts
Accordion

Year 3

100 pts

Semester 1 · 50 pts
  • Masters Advanced Software Project Part 1 – core – SWEN90017 – 12.5 pts
  • Software Design and Architecture – core – SWEN90007 – 12.5 pts
  • elective – 12.5 pts
  • Modelling Complex Software Systems – core – SWEN90004 – 12.5 pts
Semester 2 · 50 pts
  • Masters Advanced Software Project Part 2 – core – SWEN90018 – 12.5 pts
  • High Integrity Systems Engineering – core – SWEN90010 – 12.5 pts
  • elective – 12.5 pts
  • elective – 12.5 pts
Semester 1 entry: Artificial Intelligence

* Choose one of: ENGR90021 Critical Communication for Engineers; ENGR90034 Creating Innovative Engineering; or ENGR90039 Creating Innovative Professionals. ** Details of the project subjects will be published in the 2022 Handbook

Accordion

Year 1

100 pts

Semester 1 · 50 pts
  • Database Systems – core – INFO20003 – 12.5 pts
  • Object Oriented Software Development – core – SWEN20003 – 12.5 pts
  • Design of Algorithms – core – COMP20007 – 12.5 pts
  • elective – 12.5 pts
Semester 2 · 50 pts
  • elective – 12.5 pts
  • Models of Computation – core – COMP30026 – 12.5 pts
  • Software Modelling and Design – core – SWEN30006 – 12.5 pts
  • elective – 12.5 pts
Accordion

Year 2

100 pts

Semester 1 · 50 pts
  • Computer Systems – core – COMP30023 – 12.5 pts
  • Modelling Complex Software Systems – core – SWEN90004 – 12.5 pts
  • Software Requirements Analysis – core – SWEN90009 – 12.5 pts
  • Software Processes and Management – core – SWEN90016 – 12.5 pts
Semester 2 · 50 pts
  • Security & Software Testing – core – SWEN90006 – 12.5 pts
  • Masters Software Engineering Project – core – SWEN90014 – 12.5 pts
  • Introduction to Machine Learning – core – COMP90049 – 12.5 pts
  • AI Planning for Autonomy – core – COMP90054 – 12.5 pts
Accordion

Year 3

100 pts

Semester 1 · 50 pts
  • Masters Advanced Software Project Part 1 – core – SWEN90017 – 12.5 pts
  • Software Design and Architecture – core – SWEN90007 – 12.5 pts
  • elective – 12.5 pts
  • elective – 12.5 pts
Semester 2 · 50 pts
  • Masters Advanced Software Project Part 2 – core – SWEN90018 – 12.5 pts
  • High Integrity Systems Engineering – core – SWEN90010 – 12.5 pts
  • elective – 12.5 pts
  • elective – 12.5 pts
Semester 1 entry: Business

* Choose one of: ENGR90021 Critical Communication for Engineers; ENGR90034 Creating Innovative Engineering; or ENGR90039 Creating Innovative Professionals. ** Details of the project subjects will be published in the 2022 Handbook

Accordion

Year 1

100 pts

Semester 1 · 50 pts
  • Database Systems – core – INFO20003 – 12.5 pts
  • Object Oriented Software Development – core – SWEN20003 – 12.5 pts
  • Design of Algorithms – core – COMP20007 – 12.5 pts
  • elective – 12.5 pts
Semester 2 · 50 pts
  • elective – 12.5 pts
  • Models of Computation – core – COMP30026 – 12.5 pts
  • Software Modelling and Design – core – SWEN30006 – 12.5 pts
  • elective – 12.5 pts
Accordion

Year 2

100 pts

Semester 1 · 50 pts
  • Computer Systems – core – COMP30023 – 12.5 pts
  • Modelling Complex Software Systems – core – SWEN90004 – 12.5 pts
  • Software Requirements Analysis – core – SWEN90009 – 12.5 pts
  • Software Processes and Management – core – SWEN90016 – 12.5 pts
Semester 2 · 50 pts
  • Security & Software Testing – core – SWEN90006 – 12.5 pts
  • Masters Software Engineering Project – core – SWEN90014 – 12.5 pts
  • The World of Engineering Management – core – ENGM90014 – 12.5 pts
  • elective – 12.5 pts
Accordion

Year 3

100 pts

Semester 1 · 50 pts
  • Masters Advanced Software Project Part 1 – core – SWEN90017 – 12.5 pts
  • Software Design and Architecture – core – SWEN90007 – 12.5 pts
  • Economic Analysis for Engineers – core – ENGM90011 – 12.5 pts
  • Strategy Execution for Engineers – core – ENGM90013 – 12.5 pts
Semester 2 · 50 pts
  • Masters Advanced Software Project Part 2 – core – SWEN90018 – 12.5 pts
  • High Integrity Systems Engineering – core – SWEN90010 – 12.5 pts
  • Engineering Contracts and Procurement – core – ENGM90006 – 12.5 pts
  • Marketing Management for Engineers – core – ENGM90012 – 12.5 pts
Semester 1 entry: Cyber Security

* Choose one of: ENGR90021 Critical Communication for Engineers; ENGR90034 Creating Innovative Engineering; or ENGR90039 Creating Innovative Professionals. ** Details of the project subjects will be published in the 2022 Handbook

Accordion

Year 1

100 pts

Semester 1 · 50 pts
  • Database Systems – core – INFO20003 – 12.5 pts
  • Object Oriented Software Development – core – SWEN20003 – 12.5 pts
  • Design of Algorithms – core – COMP20007 – 12.5 pts
  • elective – 12.5 pts
Semester 2 · 50 pts
  • elective – 12.5 pts
  • Models of Computation – core – COMP30026 – 12.5 pts
  • Software Modelling and Design – core – SWEN30006 – 12.5 pts
  • elective – 12.5 pts
Accordion

Year 2

100 pts

Semester 1 · 50 pts
  • Computer Systems – core – COMP30023 – 12.5 pts
  • Modelling Complex Software Systems – core – SWEN90004 – 12.5 pts
  • Software Requirements Analysis – core – SWEN90009 – 12.5 pts
  • Software Processes and Management – core – SWEN90016 – 12.5 pts
Semester 2 · 50 pts
  • Security & Software Testing – core – SWEN90006 – 12.5 pts
  • Masters Software Engineering Project – core – SWEN90014 – 12.5 pts
  • Distributed Systems – core – COMP90015 – 12.5 pts
  • Introduction to Machine Learning – core – COMP90049 – 12.5 pts
Accordion

Year 3

100 pts

Semester 1 · 50 pts
  • Masters Advanced Software Project Part 1 – core – SWEN90017 – 12.5 pts
  • Software Design and Architecture – core – SWEN90007 – 12.5 pts
  • Cryptography and Security – core – COMP90043 – 12.5 pts
  • elective – 12.5 pts
Semester 2 · 50 pts
  • Masters Advanced Software Project Part 2 – core – SWEN90018 – 12.5 pts
  • High Integrity Systems Engineering – core – SWEN90010 – 12.5 pts
  • elective – 12.5 pts
  • elective – 12.5 pts
Semester 1 entry: Distributed Computing

* Choose one of: ENGR90021 Critical Communication for Engineers; ENGR90034 Creating Innovative Engineering; or ENGR90039 Creating Innovative Professionals. ** Details of the project subjects will be published in the 2022 Handbook

Accordion

Year 1

100 pts

Semester 1 · 50 pts
  • Database Systems – core – INFO20003 – 12.5 pts
  • Object Oriented Software Development – core – SWEN20003 – 12.5 pts
  • Design of Algorithms – core – COMP20007 – 12.5 pts
  • elective – 12.5 pts
Semester 2 · 50 pts
  • elective – 12.5 pts
  • Models of Computation – core – COMP30026 – 12.5 pts
  • Software Modelling and Design – core – SWEN30006 – 12.5 pts
  • elective – 12.5 pts
Accordion

Year 2

100 pts

Semester 1 · 50 pts
  • Computer Systems – core – COMP30023 – 12.5 pts
  • Modelling Complex Software Systems – core – SWEN90004 – 12.5 pts
  • Software Requirements Analysis – core – SWEN90009 – 12.5 pts
  • Software Processes and Management – core – SWEN90016 – 12.5 pts
Semester 2 · 50 pts
  • Security & Software Testing – core – SWEN90006 – 12.5 pts
  • Masters Software Engineering Project – core – SWEN90014 – 12.5 pts
  • Distributed Systems – core – COMP90015 – 12.5 pts
  • elective – 12.5 pts
Accordion

Year 3

100 pts

Semester 1 · 50 pts
  • Masters Advanced Software Project Part 1 – core – SWEN90017 – 12.5 pts
  • Software Design and Architecture – core – SWEN90007 – 12.5 pts
  • elective – 12.5 pts
  • elective – 12.5 pts
Semester 2 · 50 pts
  • Masters Advanced Software Project Part 2 – core – SWEN90018 – 12.5 pts
  • High Integrity Systems Engineering – core – SWEN90010 – 12.5 pts
  • elective – 12.5 pts
  • elective – 12.5 pts
Semester 1 entry: Human Computer Interaction

* Choose one of: ENGR90021 Critical Communication for Engineers; ENGR90034 Creating Innovative Engineering; or ENGR90039 Creating Innovative Professionals. ** Details of the project subjects will be published in the 2022 Handbook

Accordion

Year 1

100 pts

Semester 1 · 50 pts
  • Database Systems – core – INFO20003 – 12.5 pts
  • Object Oriented Software Development – core – SWEN20003 – 12.5 pts
  • Design of Algorithms – core – COMP20007 – 12.5 pts
  • elective – 12.5 pts
Semester 2 · 50 pts
  • elective – 12.5 pts
  • Models of Computation – core – COMP30026 – 12.5 pts
  • Software Modelling and Design – core – SWEN30006 – 12.5 pts
  • elective – 12.5 pts
Accordion

Year 2

100 pts

Semester 1 · 50 pts
  • Computer Systems – core – COMP30023 – 12.5 pts
  • Modelling Complex Software Systems – core – SWEN90004 – 12.5 pts
  • Software Requirements Analysis – core – SWEN90009 – 12.5 pts
  • Software Processes and Management – core – SWEN90016 – 12.5 pts
Semester 2 · 50 pts
  • Security & Software Testing – core – SWEN90006 – 12.5 pts
  • Masters Software Engineering Project – core – SWEN90014 – 12.5 pts
  • elective – 12.5 pts
  • elective – 12.5 pts
Accordion

Year 3

100 pts

Semester 1 · 50 pts
  • Masters Advanced Software Project Part 1 – core – SWEN90017 – 12.5 pts
  • Software Design and Architecture – core – SWEN90007 – 12.5 pts
  • Designing Novel Interactions – core – INFO90003 – 12.5 pts
  • Evaluating the User Experience – core – INFO90004 – 12.5 pts
Semester 2 · 50 pts
  • Masters Advanced Software Project Part 2 – core – SWEN90018 – 12.5 pts
  • High Integrity Systems Engineering – core – SWEN90010 – 12.5 pts
  • elective – 12.5 pts
  • elective – 12.5 pts

Explore this course

Explore the subjects you could choose as part of this degree.

Suggested first 100 points

Students with non-Software Engineering backgrounds need to complete the first 100 points (or part thereof where credit applies).

Core

Students must complete the following subjects (62.5 points):

Accordion
Algorithms and Data Structures · 12.5 pts

AIMS

Programmers can choose between several representations of data. These will have different strengths and weaknesses, and each will require its own set of algorithms. Students will be introduced to the most frequently used data structures and their associated algorithms. The emphasis will be on justification of algorithm correctness, on analysis of algorithm performance, and on choosing the right data structure for the problem at hand. Leading up to an exam with a programming component, quality implementation of algorithms and data structures is emphasized.

This subject, or its cognate COMP20007 Design of Algorithms, is a prerequisite for many 300-level subjects in the Computing and Software Systems major.

INDICATIVE CONTENT

Topics include: justification of algorithm correctness; asymptotic and empirical analysis of algorithm performance; algorithms for sorting and searching, including fundamental data structures such as trees and hash tables; and graph algorithms.

Please view this video for further information: Algorithms and Data Structures

View detailed information in the Handbook

Models of Computation · 12.5 pts

AIMS

Formal logic and discrete mathematics provide the theoretical foundations for computer science. This subject uses logic and discrete mathematics to model the science of computing. It provides a grounding in the theories of logic, sets, relations, functions, automata, formal languages, and computability, providing concepts that underpin virtually all the practical tools contributed by the discipline, for automated storage, retrieval, manipulation and communication of data.

INDICATIVE CONTENT

  • Logic: Propositional and predicate logic, resolution proofs, mathematical proof
  • Discrete mathematics: Sets, functions, relations, order, well-foundedness, induction and recursion
  • Automata: Regular languages, finite-state automata, context-free grammars and languages, parsing
  • Computability briefly: Turing machines, computability, decidability.

View detailed information in the Handbook

Database Systems · 12.5 pts

AIMS

Contemporary online services such as social networking and multimedia-sharing sites, massive multiplayer online games and commerce services have database management systems at their back-end. In this subject, students will obtain a deep understanding of the concepts behind database management systems. In particular, the students will become familiar with the database system architecture, and will exercise the concepts such as query processing and optimisation, database tuning and transactions, which are the foundation of any modern data processing application. This subject is core within the Bachelor of Science for the Major of Computing and Software Systems and the Major of Informatics. Students completing the Diploma of Informatics are also required to undertake this subject.

INDICATIVE CONTENT

This subject serves as an introduction to data modelling and databases from a technical and data management perspective. The subject will include Entity Relationship modelling (from conceptual design to physical modelling), normalisation, de-normalisation, relational model and relational algebra, SQL, query processing and query optimisation, transactions, storage organisation, database administration, data warehousing and big data analytics. Other topics in data management and DBMS technology with an overview of modern NoSQL systems may also be included.

View detailed information in the Handbook

Object Oriented Software Development · 12.5 pts

AIMS

Developing medium and large scale software systems requires analysis and design prior to implementation. This subject introduces students to software design, with specific focus on object-oriented design, and the implementation of designs using an object-oriented programming language. The subject aims to lay the foundations to software design, and is the first subject of a sequence of subjects that teaches the students the concepts in software design.

INDICATIVE CONTENT

Topics covered include:

  • Object-oriented programming techniques
  • Object-oriented design concepts and modelling
  • Design patterns and their applications
  • Object-oriented frameworks

Please view this video for further information: Object Oriented Software Development

View detailed information in the Handbook

Software Modelling and Design · 12.5 pts

AIMS

To construct a software system, requirements must be analysed and modelled, and designs developed and evaluated; this subject teaches knowledge and skills needed for these tasks. This includes the development of static and dynamic models for aspects of both the problem space and the solution space. The emphasis here is on an Agile approach, and on techniques appropriate for object-oriented development.

INDICATIVE CONTENT

Topics covered include:

  • Analysis and modelling requirements
  • Developing, modelling and evaluating designs
  • Modelling using the Unified Modelling Language (UML)
  • Software design processes and principles
  • Common design patterns and software architectures
  • Tools for design and development

View detailed information in the Handbook

Selective

Choose one of the following 12.5 point subjects. University of Melbourne pathway students are recommended to take Creating Innovative Engineering (ENGR90034).

Accordion
Critical Communication for Engineers · 12.5 pts

Critical Communication for Engineers (CCE) addresses the skills vital for professional success. Problem analysis skills and being able to present solutions effectively to your engineering peers, leaders and the broader community are a powerful combination. These are the focus of CCE.

They are challenging skills to learn—and you will likely work to improve them throughout your career. Effective communication is not merely about how to write a report or to give a formal presentation. Developing a strong argument—having something insightful to communicate—is essential for capturing the attention of an audience. This requires developing good interpersonal skills for gathering information and testing ideas.

The subject is divided into four ‘topics’ presented in sequence through the semester. Each topic is self-contained and dedicated to a different engineering issue. There is an assessment for each topic, meaning that you will be able to apply what you have learned from one topic to the following topics. This way, you will have a lot of opportunities to practise and develop your analytical and communication skills.

View detailed information in the Handbook

Design Innovation and Leadership · 12.5 pts

A central innovation task is to identify the real problem that lies beneath the surface-level symptoms. Another is to find the best solution to that underlying problem. Professional work is often the same. Clearly defined tasks can frequently be delegated to a machine or a technician. Furthermore, because innovation problems are big and messy, we often need diverse teams to solve them. This subject aims to give you theoretical frameworks, practical insights, and preliminary skills to solve ambiguous problems and to work successfully in teams.

You will develop these understandings, insights and skills by working on two projects.  In the first, your multi-disciplinary team, supported by a mentor, will propose an innovation that helps a partner (industry, hospital, not-for-profit, start-up, the University) address a strategic challenge.  Through that project, you will learn the “what and how” of delivering innovation-like projects – understanding the relationship between your challenge and the organisation’s strategy; designing, securing, and conducting interviews; analysing qualitative data to generate insights; ideation and creativity techniques to create value; stakeholder management; working in an intense team on an ambiguous problem; visual and oral communication.  In the second, you will develop the ability to apply to the same concepts to yourself – How will you know what you want and need?   How will you know if you need to change?  How will you innovate yourself as your interests, needs, and work world shift?

We aim for you and your team to own your project and your learning.

Design Innovation and Leadership (DIAL) is delivered by the University's multi-award-winning Innovation Practice Program. To learn more about the Program, including a video about the subject, the range of organizations that have participated as sponsors, examples of past projects, and to hear students talk about their experiences in the predecessor subject, CIE/CIP, please go to the Innovation Practice Program’s website.

All project sponsors will require that students maintain the confidentiality of their proprietary information.  The University will require all students (except those working on projects sponsored by the University itself) to assign any Intellectual Property they create (other than Copyright in their Assessment Materials) to the sponsor of their project. The projects may vary in the hours needed for a successful outcome.

Master of Engineering students please note: This subject has been integrated with the Skills Towards Employment Program (STEP) to create a straightforward pathway for completion of the Engineering Practice Hurdle (EPH). See the STEP page for more information.

Please note: If you commenced a Master of Engineering degree prior to 2025, DIAL qualifies for the selective slot previously held by Creating Innovative Engineering. Engineering students who commenced in 2025 or later may only take DIAL as an elective.

View detailed information in the Handbook

Creating Innovative Professionals · 12.5 pts

This subject aims to give you theoretical frameworks, practical insights, and preliminary skills to work in your chosen profession in contexts where determining what problem to work on is an important complement to knowing how to solve that problem.

You will develop these understandings, insights and skills by working on two projects. In the first, they will work in multi-disciplinary teams on a strategically-important innovation challenge sponsored by an industry organisation. Through that project, you will learn the “what and how” of delivering innovation-like projects – understanding the relationship between your challenge and the organisation’s strategy; designing, securing, and conducting interviews; analysing qualitative data to generate insights; ideation and creativity techniques to create value; stakeholder management; working in an intense team on an ambiguous problem; visual and oral communication. In the second, you will develop the ability to apply to the same concepts to yourself – How will you know what you want and need? How will you know if you need to change? How will you innovate yourself as your interests, needs, and work world shift?

We aim for you and your team to own your project and your learning.

Creating Innovative Professionals (CIP) and its companion subject, Creating Innovative Engineering ENGR90034 (CIE), are delivered by the University's Innovation Practice Program. To learn more about the Program, including the range of organizations that have participated as sponsors, examples of past projects and to hear students talk about their experiences in taking CIE/CIP, please go to the Innovation Practice Program’s website.

All project sponsors will require students to maintain the confidentiality of their proprietary information. The University will require all students (except those working on projects sponsored by the University itself) to assign any Intellectual Property they create (other than Copyright in their Assessment Materials) to the sponsor of their project.

View detailed information in the Handbook

Suggested second 100 points

Graduates of corresponding University of Melbourne undergraduate pathways start here.

Core

Students must complete the following subjects (75 points):

Accordion
Computer Systems · 12.5 pts

AIMS

Over the last half-century, computers have improved at a faster rate than almost any other technology on the planet, yet the principles on which they work have remained mostly constant. In this subject, students will learn how computer systems work "under the hood".

The specific aim of this subject is for the students to develop an understanding of the basic concepts underlying computer systems. A key focus of this subject is the introduction of operating systems principles and computer network protocols. This knowledge is essential for writing secure software, for writing high performance software, and for writing network-based services and applications.

INDICATIVE CONTENT

Topics covered include:

  • The role of the operating system
  • The memory hierarchy (caches, virtual memory, and working sets)
  • Interrupt handling, processes and scheduling
  • File systems
  • Introduction to multiprocessors and synchronization
  • Introduction to network protocols (OSI model)
  • Development of client-server applications
  • Computer system security and cryptographic protocols

View detailed information in the Handbook

Modelling Complex Software Systems · 12.5 pts

AIMS

Mathematical modelling is important for understanding and engineering many facets of complex systems. The aim of this subject is for students to understand the range and use of mathematical theories and notations in the analysis of discrete systems, how to abstract the key aspects of a problem into a model to handle complexity, and how models can be employed to verify large-scale complex software systems.

INDICATIVE CONTENT

Topics covered will be selected from: deterministic and stochastic modelling; dynamical systems; cellular automata; agent-based modelling; complex networks; simulation and analysis of complex systems; concurrent systems modelling, analysis and implementation; process algebra; temporal logic and model checking.

View detailed information in the Handbook

Security & Software Testing · 12.5 pts

AIMS

Software is present in almost every part of our lives, and continues to change the world. Of importance to users is that software is correct, secure, reliable and efficient. The scale and complexity of most software ensures that achieving these qualities is non-trivial. This subject introduces students to the software engineering principles, processes, tools and techniques for analysing, measuring and developing correct, secure, and reliable software.

The subject is one of the foundation subjects for the MC-ENG Master of Engineering (Software) and (Software with Business).

INDICATIVE CONTENT

Topics covered may include: methods for static and dynamic software testing; software security, quality and dependability; reliability measurement and engineering; performance measurement and engineering;software problem analysis and fault isolation; and software engineering tools.

View detailed information in the Handbook

Software Requirements Analysis · 12.5 pts

AIMS

The aim of this subject is to give students an understanding of the theoretical and technical principles behind systems analysis and software requirements engineering, applying techniques in a real-world project environment to analyse the requirements for systems.

The subject is core in the MC-ENG Master of Engineering (Software) degree.

INDICATIVE CONTENT

The first step in the development of any non-trivial software system is an analysis of the problem domain in order to formulate a requirements specification. In this subject students will explore the aims, principles, processes and techniques involved in business and domain analysis and the formulation of requirements. Topics covered will include: an understanding of the domain analysis problem; business and domain analysis; an exploration of methods for eliciting, analysing, specifying and validating requirements; requirements metrics; analysis techniques for ‘special domains’ drawn from a selection of enterprise systems, safety critical systems, usability and security.

View detailed information in the Handbook

Masters Software Engineering Project · 12.5 pts

AIMS

This subject gives students in the Master of Engineering (Software) their first experience in analysing, designing, implementing, managing and delivering a small software engineering project. The aim of the subject is to give students an understanding of the major phases of software development, what each phase requires and how that phase fits into the overall engineering process. The subject also aims to give students an understanding of the importance of analysis, design, quality assurance activities and management activities within a software engineering process and to underpin the practical aspects of the management, analysis, design and validation subjects within the degree.

INDICATIVE CONTENT

Students will work in teams to conceive, analyse, design, implement and test a non-trivial software system for an external client. A key part of the project is for students to develop and manage a repeatable process in order to deliver a quality software product Workshops will explore the application of theory to your project and include selected topics drawn from: requirements analysis, design, implementation, testing and software project management relevant to the phase of the project that students are currently working on.

This subject has been integrated with the Skills Towards Employment Program (STEP) and contains activities that can assist in the completion of the Engineering Practice Hurdle (EPH).

View detailed information in the Handbook

Software Processes and Management · 12.5 pts

AIMS

The aim of this subject is to introduce students to the software engineering principles, processes, tools and techniques for analysing and managing complex software projects.

INDICATIVE CONTENT

Topics covered include: software engineering processes; project management; planning and scheduling; estimation and metrics; quality assurance; risk; configuration management; individuals and teams; ethics; change management; and project management tools.

View detailed information in the Handbook

Core (Artificial Intelligence)

Students must complete the following subjects (25 points):

Accordion
Introduction to Machine Learning · 12.5 pts

AIMS

Machine Learning is the study of making accurate, computationally efficient, interpretable and robust inferences from data, often drawing on principles from statistics. This subject aims to introduce students to the intellectual foundations of machine learning, including the mathematical principles of learning from data, algorithms and data structures for machine learning, and practical skills of data analysis.

INDICATIVE CONTENT

Indicative content includes: cleaning and normalising data, supervised learning (classification, regression, linear & non-linear models), and unsupervised learning (clustering), and mathematical foundations for a career in machine learning.

View detailed information in the Handbook

AI Planning for Autonomy · 12.5 pts

AIMS

The key focus of this subject is the foundations of autonomous agents that reason about action, applying techniques such as automated planning, reinforcement learning, game theory, and their real-world applications. Autonomous agents are active entities that perceive their environment, reason, plan and execute appropriate actions to achieve their goals, in service of their users (the real world, human beings, or other agents). The subject focuses on the foundations that enable agents to reason autonomously about goals & rewards, perception, actions, strategy, and the knowledge of other agents during collaborative task execution, and the ethical impacts of agents with this ability.

The programming language used in this subject is Python. No lectures or workshops on Python will be delivered.

INDICATIVE CONTENT

Topics are drawn from the field of advanced artificial intelligence including:

  • Search algorithms and heuristic functions
  • Classical (AI) planning
  • Markov Decision Processes
  • Reinforcement learning
  • Game theory
  • Ethics in AI planning

View detailed information in the Handbook

Electives (Artificial Intelligence)

Select three of the following subjects (37.5 points):

Accordion
Natural Language Processing · 12.5 pts

AIMS

Much of the world's knowledge is stored in the form of text, and accordingly, understanding and harnessing knowledge from text are key challenges. In this subject, students will learn computational methods for working with text, in the form of natural language understanding, and language generation. Students will develop an understanding of the main algorithms used in natural language processing, for use in a diverse range of applications including machine translation, text mining, sentiment analysis, and question answering. The programming language used is Python.

INDICATIVE CONTENT

Topics covered may include:

  • Text classification and unsupervised topic discovery
  • Vector space models for natural language semantics
  • Structured prediction for tagging
  • Syntax models for parsing of sentences and documents
  • N-gram language modelling
  • Automatic translation, and multilingual methods
  • Relation extraction and coreference resolution

View detailed information in the Handbook

Constraint Programming · 12.5 pts

AIMS

The aims for this subject is for students to develop an understanding of approaches to solving combinatorial optimization problems with computers, and to be able to demonstrate proficiency in modelling and solving programs using a high-level modelling language, and understanding of different solving technologies. The modelling language used is MiniZinc.

INDICATIVE CONTENT

Topics covered will include:

  • Modelling with Constraints
  • Global constraints
  • Multiple Modelling
  • Model Debugging
  • Scheduling and Packing
  • Finite domain constraint solving
  • Mixed Integer Programming

View detailed information in the Handbook

Advanced Database Systems · 12.5 pts

AIMS

Many applications require reliability in access to data, and data should not be lost even in the presence of hardware failures. The ability to retrieve and process the data very efficiently is also paramount even when multiple users access the data from remote sites simultaneously. With the increasing size of data used in these applications, advanced techniques for data management have emerged to make many such advanced requirements for access to data a reality. The subject covers the technologies used in advanced database systems that use these techniques. Topics covered will include: transactions, concurrency control, reliability, ACID properties, performance, indexing of both structured and unstructured data, query processing, and further topics on different database types and database architectures.

INDICATIVE CONTENT

Topics covered include:

  • Introduction to High Performance Database Systems
  • Issues of Performance and Reliability
  • Transaction Processing
  • Recovery from Failures
  • Map Reduce Models

View detailed information in the Handbook

Statistical Machine Learning · 12.5 pts

AIMS

With exponential increases in the amount of data becoming available in fields such as finance and biology, and on the web, there is an ever-greater need for methods to detect interesting patterns in that data, and classify novel data points based on curated data sets. Learning techniques provide the means to perform this analysis automatically, and in doing so to enhance understanding of general processes or to predict future events.

Topics covered will include: supervised learning, semi-supervised and active learning, unsupervised learning, kernel methods, probabilistic graphical models, classifier combination, neural networks.

This subject is intended to introduce graduate students to machine learning though a mixture of theoretical methods and hands-on practical experience in applying those methods to real-world problems.

INDICATIVE CONTENT

Topics covered will include: linear models, support vector machines, random forests, AdaBoost, stacking, query-by-committee, multiview learning, deep neural networks, un/directed probabilistic graphical models (Bayes nets and Markov random fields), hidden Markov models, principal components analysis, kernel methods.

View detailed information in the Handbook

Trustworthy Machine Learning · 12.5 pts

AIMS

As machine learning systems are increasingly integrated into critical and data sensitive applications, ensuring their confidentiality, reliability, robustness, and fairness becomes imperative. The complexity of modern AI models, coupled with evolving threats such as data inference, adversarial attacks, data poisoning, and biases, necessitates new methodologies to build and evaluate trustworthy machine learning systems. Trustworthy Machine Learning will explore techniques to enhance the privacy, security, interpretability, and safety in deployment of machine learning models, ensuring they operate reliably in real-world environments.

INDICATIVE CONTENT

The subject will begin by introducing the key dimensions of trustworthiness in machine learning, including privacy, robustness, reliability, and fairness. Students will examine real-world case studies that highlight failures and vulnerabilities in deployed AI systems.

The first part of the subject will explore different types of information leakage that can arise under various threat models and examine methods for protecting sensitive data during analysis. The second part will introduce machine learning techniques that enhance model reliability, with a particular focus on unsupervised learning methods such as anomaly detection, alarm correlation, and intrusion detection. The third part of the subject will introduce some of the theoretical challenges and emerging issues for security analytics research, based on recent trends in the evolution of security threats.

By the end of the subject, students will gain both theoretical knowledge and practical skills to design, evaluate, and deploy machine learning models with trustworthiness as a core principle.

View detailed information in the Handbook

Computational Modelling and Simulation · 12.5 pts

Computers are invaluable tools for modelling and simulating complex systems in a range of real-world domains. The complex behaviours exhibited by many biological, social, and technological systems - such as epidemics, urban systems, and robotics - challenge our ability to predict, analyse, and design such systems. Building computational models of these systems can help us better understand their structure and behaviour and make better decisions about their design and control.

The aim of this subject is to provide students with a solid foundation in the conceptual and technical skills required to design, implement, and evaluate computational models of complex systems.

INDICATIVE CONTENT

Topics covered will be selected from:

  • the use of models for science, engineering, and policy
  • dynamical systems analysis
  • complexity and emergent behaviour
  • agent-based models
  • design, communication, and evaluation of models
  • analysis and visualisation of model behaviour
  • case study exemplars of specific types of models, such as:
    • spatial models (e.g., transportation)
    • network models (e.g., epidemics)
    • adaptive models (e.g., robotics)

View detailed information in the Handbook

The Ethics of Artificial Intelligence · 12.5 pts

This subject aims to provide students with the necessary tools to: identify social and ethical issues of digital technology particularly artificial intelligence and reason about these issues; communicate concerns, or discuss ideas, from differing points of view; and ultimately build technology with awareness of, and respect for, inclusion and the responsibility that comes with building powerful tools. Not contemplating ethical or social implications of AI and other technological tools may open up unintended consequences and risks. Ethical dilemmas can also cause additional personal stress for individuals who lack the skills to think about them reflectively. For these reasons, the growing societal and ethical problems raised by artificial intelligence and other technologies have become a major focus of many organisations, including for start-ups, government, defence, and many corporations.

Topics include:

  • the history of artificial intelligence
  • established ethical theories and concepts and their relation to artificial intelligence and technology
  • fairness, equity, and discrimination in automated decision making
  • accountability, explainability, and transparency of AI
  • practical approaches and ethical frameworks for designing, developing and deploying technology responsibly

View detailed information in the Handbook

Machine Learning Applications for Health · 12.5 pts

Artificial Intelligence (AI) is an ever growing field that holds the promise to revolutionise the way we develop drugs, treat and manage patients. In particular, Machine Learning has become an important tool to make sense of clinical data that is routinely collected and stored as electronic health records to enable personalised medicine.

This subject aims to introduce students to different AI applications in health, using different clinical data sources and computational techniques, discussing their idiosyncrasies and the main challenges in the area.

INDICATIVE CONTENT

Topics covered may include: supervised, unsupervised learning and their applications in health scenarios, interpretable machine learning in health, natural language processing in health, process mining, data sources and clinical information modelling, data wrangling, harmonising and filtering, clinical image data and deep learning.

View detailed information in the Handbook

Text Analytics for Health · 12.5 pts

AIMS

Text analytics (also known as natural language processing) is becoming increasingly important in clinical and public health given the near-ubiquitous adoption of text-based Electronic Health Record (EHR) systems in clinical care, and the widespread use of social media and online communities for health-related peer support. This subject aims to provide students with a grounding in applied health-related text analytics using a range of different data sources and application areas.

INDICATIVE CONTENT

Topics covered may include: introduction to text analytics and text analytics for health applications; introduction to healthcare and public health; development of text analytics pipelines for clinical notes; best practice in data annotation; clinical information extraction using rule-based methods and machine learning; knowledge resources for clinical text analytics;  clinical text analytics toolkits; utilization of text analytics and social media for health applications; sentiment and stance analysis in social media data; data management, privacy, and ethical issues in health-related text analytics.

View detailed information in the Handbook

Core (Business)

Students must complete the following subject (12.5 points):

Accordion
The World of Engineering Management · 12.5 pts

AIMS

This subject examines the structure and basic building blocks of high performing organisations from a senior management perspective. It covers tools and techniques to conduct both an analysis of the external environment and the strategies to align the appropriate internal skills and capabilities.

INDICATIVE CONTENT

The subject includes:

  • The role of leadership in strategy formulation and its balance with execution
  • Overcoming the barriers to implementation of strategic plans
  • Business integration and managing technology
  • Entrepreneurship in modern business.

View detailed information in the Handbook

Core (Cyber Security)

Students must complete the following subjects (25 points):

Accordion
Distributed Systems · 12.5 pts

AIMS

The subject aims to provide an understanding of the principles on which the Web, Email, DNS and other interesting distributed systems are based. Questions concerning distributed architecture, concepts and design; and how these meet the demands of contemporary distributed applications will be addressed.

INDICATIVE CONTENT

Topics covered include: characterization of distributed systems, system models, interprocess communication, remote invocation, indirect communication, operating system support, distributed objects and components, web services, security, distributed file systems, and name services.

View detailed information in the Handbook

Introduction to Machine Learning · 12.5 pts

AIMS

Machine Learning is the study of making accurate, computationally efficient, interpretable and robust inferences from data, often drawing on principles from statistics. This subject aims to introduce students to the intellectual foundations of machine learning, including the mathematical principles of learning from data, algorithms and data structures for machine learning, and practical skills of data analysis.

INDICATIVE CONTENT

Indicative content includes: cleaning and normalising data, supervised learning (classification, regression, linear & non-linear models), and unsupervised learning (clustering), and mathematical foundations for a career in machine learning.

View detailed information in the Handbook

Core (Distributed Computing)

Students must complete the following subject (12.5 points):

Accordion
Distributed Systems · 12.5 pts

AIMS

The subject aims to provide an understanding of the principles on which the Web, Email, DNS and other interesting distributed systems are based. Questions concerning distributed architecture, concepts and design; and how these meet the demands of contemporary distributed applications will be addressed.

INDICATIVE CONTENT

Topics covered include: characterization of distributed systems, system models, interprocess communication, remote invocation, indirect communication, operating system support, distributed objects and components, web services, security, distributed file systems, and name services.

View detailed information in the Handbook

Electives (Distributed Computing)

Select one of the following subjects (12.5 points):

Accordion
Sensor Networks and Applications · 12.5 pts

AIMS

Sensor networks are a key component of today’s increasingly pervasive computing technologies. In this subject, the aim is to develop an understanding of sensor network technologies from three different perspectives: sensing, communication, and computing (including hardware, software, and algorithms) and their applications.

INDICATIVE CONTENT

Topics covered include:

  • Attributes of sensor networks
  • Wired and wireless sensors
  • Sensors and networks design and deployment issues
  • Bandwidth and energy constraints aware techniques for network discovery
  • Network control and routing
  • Collaborative information processing
  • Offloading processing and data management tasks, querying
  • Tasking and programming sensor networks
  • Standards that provide the models and schema encoding for defining the geometric, dynamic and observational characteristics of a sensor, and
  • Applications

View detailed information in the Handbook

Mobile Computing Systems Programming · 12.5 pts

AIMS

Mobile devices are ubiquitous nowadays. Mobile computing encompasses technologies, devices and software that enable (wireless) access to services anyplace, anytime, and anywhere. This subject will cover fundamental mobile computing techniques and technologies, and explain challenges that are unique to the design, implementation, and evaluation of mobile computing. In particular, this subject will enable students to develop mobile phone applications that take advantage of the unique sensing capabilities of mobile devices, their multi-modal interaction capabilities, and their ability to sense and respond to context.

View detailed information in the Handbook

Distributed Algorithms · 12.5 pts

AIMS

The Internet, World Wide Web, bank networks, mobile phone networks and many others are examples for Distributed Systems. Distributed Systems rely on a key set of algorithms and data structures to run efficiently and effectively. In this subject, we learn these key algorithms that professionals work with while dealing with various systems. Clock synchronization, leader election, mutual exclusion, and replication are just a few areas were multiple well known algorithms were developed during the evolution of the Distributed Computing paradigm.

INDICATIVE CONTENT

Topics covered include:

  • Synchronous and asynchronous network algorithms that address resource allocation, communication
  • Consensus among distributed processes
  • Distributed data structures
  • Data consistency
  • Deadlock detection
  • Lader election, and
  • Global snapshots issues.

View detailed information in the Handbook

Cluster and Cloud Computing · 12.5 pts

AIMS

The growing popularity of the Internet along with the availability of powerful computers and high-speed networks as low-cost commodity components are changing the way we do parallel and distributed computing (PDC). Cluster and Cloud Computing are two approaches for PDC. Clusters employ cost-effective commodity components for building powerful computers within local-area networks. Recently, “cloud computing” has emerged as the new paradigm for delivery of computing as services in a pay-as-you-go-model via the Internet. These approaches are used to tackle may research problems with particular focus on "big data" challenges that arise across a variety of domains.

Some examples of scientific and industrial applications that use these computing platforms are: system simulations, weather forecasting, climate prediction, automobile modelling and design, high-energy physics, movie rendering, business intelligence, big data computing, and delivering various business and consumer applications on a pay-as-you-go basis.

This subject will enable students to understand these technologies, their goals, characteristics, and limitations, and develop both middleware supporting them and scalable applications supported by these platforms.

This subject is an elective subject in the Master of Information Technology. It can also be taken as an Advanced Elective subject in the Master of Engineering (Software).

INDICATIVE CONTENT

  • Cluster computing: elements of parallel and distributed computing, cluster systems architecture, resource management and scheduling, single system image, parallel programming paradigms, cluster programming with MPI
  • Utility computing: foundations and grid computing technologies
  • Cloud computing: cloud platforms, Virtualization, Cloud Application Programming Models (Task, Thread, and MapReduce), Cloud applications, and future directions in utility and cloud computing
  • "Big data" processing and analytics in distributed environments

Please view this video for further information: Cluster and Cloud Computing

View detailed information in the Handbook

Parallel and Multicore Computing · 12.5 pts

AIMS

The subject aims to introduce students to parallel algorithms and their analysis. Fundamental principles of parallel computing are discussed. Various parallel architectures and programming platforms are introduced. Parallel algorithms for different architectures, as well as parallel algorithms addressing specific scientific problems are critically analysed.

INDICATIVE CONTENT

Topics include: principles of parallel computing, PRAM model, PRAM algorithms, parallel architectures, OpenMP, shared memory algorithms, systolic algorithms, parallel communication patterns, PVM/MPI, scientific applications, hypercube, graph embeddings and extended parallel computing models.

View detailed information in the Handbook

Cryptography and Security · 12.5 pts

AIMS

The subject will explore foundational knowledge in the area of cryptography and information security. The overall aim is to gain an understanding of fundamental cryptographic concepts like encryption and signatures and use it to build and analyse security in computers, communications and networks. This subject covers fundamental concepts in information security on the basis of methods of modern cryptography, including encryption, signatures and hash functions.

This subject is an elective subject in the Master of Engineering (Software). It can also be taken as an advanced elective in Master of Information Technology.

INDICATIVE CONTENT

The subject will be made up of three parts:

  • Cryptography: the essentials of public and private key cryptography, stream ciphers, digital signatures and cryptographic hash functions
  • Access Control: the essential elements of authentication and authorization; and
  • Secure Protocols; which are obtained through cryptographic techniques.

A particular emphasis will be placed on real-life protocols such as Secure Socket Layer (SSL) and Kerberos.

Topics drawn from:

  • Symmetric key crypto systems
  • Public key cryptosystems
  • Hash functions
  • Authentication
  • Secret sharing
  • Protocols
  • Key Management.

View detailed information in the Handbook

Stream Computing and Applications · 12.5 pts

AIM

With exponential growth in data generated from sensor data streams, search engines, spam filters, medical services, online analysis of financial data streams, and so forth, there is demand for fast monitoring and storage of huge amounts of data in real-time. Traditional technologies were not aimed to such fast streams of data. Usually they required data to be stored and indexed before it could be processed.

Stream computing was created to tackle those problems that require processing and classification of continuous, high volume of data streams. It is highly used on applications such as Twitter, Facebook, High Frequency Trading and so forth.

This subject will focus on the algorithms and data structures behind the analysis and management of streams. Theoretical underpinnings are emphasized, with implementation of some fundamental algorithms.

INDICATIVE CONTENT

  • Why stream processing is important
  • Hash functions, probability, and fundamental data structures
  • Data stream model
  • Data stream algorithms: Sampling, sketching, distinct items, frequent items, frequency moments, etc.
  • Data stream mining: clustering, histograms, query tracking
  • Graph streams: connectivity, matchings, covers

View detailed information in the Handbook

Advanced Theoretical Computer Science · 12.5 pts

AIMS

At the heart of theoretical computer science are questions of both philosophical and practical importance. What does it mean for a problem to be solvable by computer? What are the limits of computability? Which types of problems can be solved efficiently? What are our options in the face of intractability? This subject covers such questions in the content of a wide-ranging exploration of the nexus between logic, complexity and algorithms, and examines many important (and sometimes surprising) results about the nature of computing.

INDICATIVE CONTENT

  • Turing machines
  • The Church-Turing Thesis
  • Decidable languages
  • Reducability
  • Time Complexity: The classes P and NP, NP-complete problems
  • Space complexity: including sub-linear space
  • Circuit complexity
  • Approximation algorithms
  • Probabilistic complexity classes
  • Additional topics may include descriptive complexity, interactive proofs, communication complexity, complexity as applied to cryptography
  • Space complexity, including sub-linear space
  • Finite state automata, pushdown automata, regular languages, context-free languages to the Recommended Background Knowledge.

Example of assignment

  • Proving the equivalence of a variant of a standard machine to the original version
  • Describing an NP-hardness reduction
  • Designing an approximation algorithm for an NP-hard problem.

View detailed information in the Handbook

Applied High Performance Computing · 12.5 pts

The use of physics-based computer simulation is a powerful tool in the scientific and engineering fields that allows for the investigation of phenomena that are often inaccessible by other means. As modern compute architectures continue to increase in terms of parallelism and power, so too can these simulations increase in scale and fidelity, but only when equipped with an understanding of the mathematics and underlying hardware, necessary to leverage this power. This subject will aim to develop such an understanding by tying together key tools and techniques used in the design of scientific software targeted at High Performance Computing (HPC) resources.

This subject will introduce several numerical methods that are ubiquitous in the solution of ordinary differential equations (e.g. Euler and Runge-Kutta methods), partial differential equations (e.g. finite difference and finite element methods), linear systems (e.g. conjugate gradient method), and apply these tools to solve governing equations commonly found in areas such as fluid dynamics and thermodynamics. This subject will investigate the development of software targeting shared memory multicore architectures, distributed memory architectures with MPI, and GPU accelerators.

View detailed information in the Handbook

Electives (Human Computer Interaction)

Select two of the following subjects (25 points):

Accordion
Distributed Systems · 12.5 pts

AIMS

The subject aims to provide an understanding of the principles on which the Web, Email, DNS and other interesting distributed systems are based. Questions concerning distributed architecture, concepts and design; and how these meet the demands of contemporary distributed applications will be addressed.

INDICATIVE CONTENT

Topics covered include: characterization of distributed systems, system models, interprocess communication, remote invocation, indirect communication, operating system support, distributed objects and components, web services, security, distributed file systems, and name services.

View detailed information in the Handbook

Mobile Computing Systems Programming · 12.5 pts

AIMS

Mobile devices are ubiquitous nowadays. Mobile computing encompasses technologies, devices and software that enable (wireless) access to services anyplace, anytime, and anywhere. This subject will cover fundamental mobile computing techniques and technologies, and explain challenges that are unique to the design, implementation, and evaluation of mobile computing. In particular, this subject will enable students to develop mobile phone applications that take advantage of the unique sensing capabilities of mobile devices, their multi-modal interaction capabilities, and their ability to sense and respond to context.

View detailed information in the Handbook

Introduction to Machine Learning · 12.5 pts

AIMS

Machine Learning is the study of making accurate, computationally efficient, interpretable and robust inferences from data, often drawing on principles from statistics. This subject aims to introduce students to the intellectual foundations of machine learning, including the mathematical principles of learning from data, algorithms and data structures for machine learning, and practical skills of data analysis.

INDICATIVE CONTENT

Indicative content includes: cleaning and normalising data, supervised learning (classification, regression, linear & non-linear models), and unsupervised learning (clustering), and mathematical foundations for a career in machine learning.

View detailed information in the Handbook

Information Visualisation · 12.5 pts

Information visualisation is about using and designing effective mechanisms for presenting and exploring the patterns embedded in large and complex data sets, and to support decision making. Information Visualisation is important in a range of domains dealing with voluminous data rich in structure, among them, prominently, data in the spatial domain or data referenced to the spatial domain. Through its focus on presentation and interaction with spatial information, this subject complements related subjects that deal with the storage and querying of data (such as GEOM90008 Spatial Data Management), and the processing of data (such as GEOM90006 Spatial Data Analytics). This subject is vital for anyone wishing to work with large datasets. It will also be of relevance to those with an interest in design, especially graphical and interaction design.

The subject will cover: Fundamentals of information visualisation and data graphics; visual thinking, human sensing and perception; foundations of data graphics and cartography; graphical user interface design; human computer interaction and human centred design. The lectures are also supported with several labs to develop student experience in this domain.

In the labs, some tools such as Tableau and R libraries will be used to create a wide range of spatial and non-spatial visualisations in order to present data and discover patterns. These tools will also be used to create interactivity on visualisations. In addition, different visualisation types will be discussed and critiqued for different purposes. These will empower you to visualise various data sets in an appropriate form based on identified communication needs.

View detailed information in the Handbook

Human-AI Interaction · 12.5 pts

This subject is designed to equip students with the essential knowledge and skills required to apply Artificial Intelligence (AI) techniques to the design, development, and evaluation of interactive technologies. The subject builds upon the foundational subjects in Human Computer Interaction (HCI) subjects, providing students with a deeper understanding of the role of AI in enhancing user experiences and designing intelligent interactive systems. Students will learn to apply AI algorithms and methodologies to enhance user experiences, usability, and interaction design, gaining the skills necessary to design and implement AI-driven HCI solutions that meet user needs and preferences through practical projects and hands-on exercises.

View detailed information in the Handbook

Fieldwork for Design · 12.5 pts

This subject introduces students to the theories and methods used to understand people and settings for designing technical systems. The subject will equip students with the knowledge and skills needed to gather information about people and activities, to understand the intended users of the systems, and to use the insights gained from this process to identify design requirements. This subject is for students interested in a career in user experience (UX) design, interaction design, service design, usability engineering, and human-computer interaction research. It will be of value to students aiming to work in all areas of information technology development and implementation.

View detailed information in the Handbook

Social Computing · 12.5 pts

Social Computing is a field of study that investigates computing techniques and systems to support, mediate, and understand aspects of social behaviours. Understanding the principles and foundations of Social Computing is important because of the rapid proliferation of social systems, particularly those aimed at end-users (e.g. social networking websites, crowd sourcing platforms, knowledge sharing platforms, etc.). This subject will introduce you to key concepts and principles of Social Computing, and provide you with training to investigate how these systems influence human behaviours, how to improve current implementations, and how to identify ways to better support social activities and interactions.

View detailed information in the Handbook

Computing and Information Systems advanced electives

See the sample courses above for the number of electives included in each specialisation.

Accordion
Algorithms for Bioinformatics · 12.5 pts

Technological advances in DNA sequencing, RNA sequencing and proteomics have provided a wealth of data from which biological insight can be obtained. Refining this data is a non-trivial matter due to the increased input sizes seen in modern high-throughput bioinformatics. This subject provides algorithmic strategies and data structures capable of meeting the challenge. While focused on bioinformatic data, the concepts herein apply to big data analysis as a whole.

This subject covers key algorithms and data structures used in bioinformatics and assumes you have experience in programming. Strategies which frequently appear in modern software are explored so that bioinformatics tools may be appropriately selected, executed, and interpreted. This exploration yields a toolkit from which new computational methods can be created. Indicative topics include sequence operations for comparison, alignment and indexing, graph data structures in the context of genome assembly, phylogenetics and network analysis, and both supervised and unsupervised machine learning within the fields of optimisation, dimensionality reduction, clustering and classification.

View detailed information in the Handbook

Distributed Systems · 12.5 pts

AIMS

The subject aims to provide an understanding of the principles on which the Web, Email, DNS and other interesting distributed systems are based. Questions concerning distributed architecture, concepts and design; and how these meet the demands of contemporary distributed applications will be addressed.

INDICATIVE CONTENT

Topics covered include: characterization of distributed systems, system models, interprocess communication, remote invocation, indirect communication, operating system support, distributed objects and components, web services, security, distributed file systems, and name services.

View detailed information in the Handbook

Computational Genomics · 12.5 pts

AIM

The study of genomics is on the forefront of biology. Current laboratory technologies generate huge amounts of data and computational analysis is necessary to make sense of these data. This subject covers a broad range of approaches to the computational analysis of genomic data. Students will learn the theory behind a variety of different approaches to genomic analysis, and be introduced to key tools in current use, preparing them to use existing methods appropriately as well as developing new ways to analyse genomic data. Students will also have opportunities to apply their skills in workshops and assignments using both existing computational genomics tools and writing custom Python functions.

Computational Genomics can be taken as an elective subject. It can also be taken by undergraduate students, exchange students and PhD students, subject to the written approval of the subject coordinator.

INDICATIVE CONTENT

This subject covers the computational analysis of several important forms of genomic data. Topics include computational resource management, reproducible research principles, genomics workflows, sequence alignment, genome annotation, parallel computing, metagenomics and single-cell sequencing. The subject domain rapidly progresses, and subject content is regularly revised and updated.

Practical work includes writing bioinformatics functions with Python code, accessing genomics data repositories and using popular command-line tools.

Please view this video for further information: Computational Genomics

View detailed information in the Handbook

Mobile Computing Systems Programming · 12.5 pts

AIMS

Mobile devices are ubiquitous nowadays. Mobile computing encompasses technologies, devices and software that enable (wireless) access to services anyplace, anytime, and anywhere. This subject will cover fundamental mobile computing techniques and technologies, and explain challenges that are unique to the design, implementation, and evaluation of mobile computing. In particular, this subject will enable students to develop mobile phone applications that take advantage of the unique sensing capabilities of mobile devices, their multi-modal interaction capabilities, and their ability to sense and respond to context.

View detailed information in the Handbook

Distributed Algorithms · 12.5 pts

AIMS

The Internet, World Wide Web, bank networks, mobile phone networks and many others are examples for Distributed Systems. Distributed Systems rely on a key set of algorithms and data structures to run efficiently and effectively. In this subject, we learn these key algorithms that professionals work with while dealing with various systems. Clock synchronization, leader election, mutual exclusion, and replication are just a few areas were multiple well known algorithms were developed during the evolution of the Distributed Computing paradigm.

INDICATIVE CONTENT

Topics covered include:

  • Synchronous and asynchronous network algorithms that address resource allocation, communication
  • Consensus among distributed processes
  • Distributed data structures
  • Data consistency
  • Deadlock detection
  • Lader election, and
  • Global snapshots issues.

View detailed information in the Handbook

Cluster and Cloud Computing · 12.5 pts

AIMS

The growing popularity of the Internet along with the availability of powerful computers and high-speed networks as low-cost commodity components are changing the way we do parallel and distributed computing (PDC). Cluster and Cloud Computing are two approaches for PDC. Clusters employ cost-effective commodity components for building powerful computers within local-area networks. Recently, “cloud computing” has emerged as the new paradigm for delivery of computing as services in a pay-as-you-go-model via the Internet. These approaches are used to tackle may research problems with particular focus on "big data" challenges that arise across a variety of domains.

Some examples of scientific and industrial applications that use these computing platforms are: system simulations, weather forecasting, climate prediction, automobile modelling and design, high-energy physics, movie rendering, business intelligence, big data computing, and delivering various business and consumer applications on a pay-as-you-go basis.

This subject will enable students to understand these technologies, their goals, characteristics, and limitations, and develop both middleware supporting them and scalable applications supported by these platforms.

This subject is an elective subject in the Master of Information Technology. It can also be taken as an Advanced Elective subject in the Master of Engineering (Software).

INDICATIVE CONTENT

  • Cluster computing: elements of parallel and distributed computing, cluster systems architecture, resource management and scheduling, single system image, parallel programming paradigms, cluster programming with MPI
  • Utility computing: foundations and grid computing technologies
  • Cloud computing: cloud platforms, Virtualization, Cloud Application Programming Models (Task, Thread, and MapReduce), Cloud applications, and future directions in utility and cloud computing
  • "Big data" processing and analytics in distributed environments

Please view this video for further information: Cluster and Cloud Computing

View detailed information in the Handbook

Parallel and Multicore Computing · 12.5 pts

AIMS

The subject aims to introduce students to parallel algorithms and their analysis. Fundamental principles of parallel computing are discussed. Various parallel architectures and programming platforms are introduced. Parallel algorithms for different architectures, as well as parallel algorithms addressing specific scientific problems are critically analysed.

INDICATIVE CONTENT

Topics include: principles of parallel computing, PRAM model, PRAM algorithms, parallel architectures, OpenMP, shared memory algorithms, systolic algorithms, parallel communication patterns, PVM/MPI, scientific applications, hypercube, graph embeddings and extended parallel computing models.

View detailed information in the Handbook

Natural Language Processing · 12.5 pts

AIMS

Much of the world's knowledge is stored in the form of text, and accordingly, understanding and harnessing knowledge from text are key challenges. In this subject, students will learn computational methods for working with text, in the form of natural language understanding, and language generation. Students will develop an understanding of the main algorithms used in natural language processing, for use in a diverse range of applications including machine translation, text mining, sentiment analysis, and question answering. The programming language used is Python.

INDICATIVE CONTENT

Topics covered may include:

  • Text classification and unsupervised topic discovery
  • Vector space models for natural language semantics
  • Structured prediction for tagging
  • Syntax models for parsing of sentences and documents
  • N-gram language modelling
  • Automatic translation, and multilingual methods
  • Relation extraction and coreference resolution

View detailed information in the Handbook

Cryptography and Security · 12.5 pts

AIMS

The subject will explore foundational knowledge in the area of cryptography and information security. The overall aim is to gain an understanding of fundamental cryptographic concepts like encryption and signatures and use it to build and analyse security in computers, communications and networks. This subject covers fundamental concepts in information security on the basis of methods of modern cryptography, including encryption, signatures and hash functions.

This subject is an elective subject in the Master of Engineering (Software). It can also be taken as an advanced elective in Master of Information Technology.

INDICATIVE CONTENT

The subject will be made up of three parts:

  • Cryptography: the essentials of public and private key cryptography, stream ciphers, digital signatures and cryptographic hash functions
  • Access Control: the essential elements of authentication and authorization; and
  • Secure Protocols; which are obtained through cryptographic techniques.

A particular emphasis will be placed on real-life protocols such as Secure Socket Layer (SSL) and Kerberos.

Topics drawn from:

  • Symmetric key crypto systems
  • Public key cryptosystems
  • Hash functions
  • Authentication
  • Secret sharing
  • Protocols
  • Key Management.

View detailed information in the Handbook

Research Methods · 12.5 pts

AIMS

Research is a process of acquiring new knowledge by systematically and rigorously applying methods to address well-formulated questions. To be valuable, new knowledge must address a significant theoretical question, it must be supported by evidence and be able to stand up to critical scrutiny, and its presentation to other researchers and/or to the public must be persuasive. This subject is an introduction to research thinking, skills and methodologies as they apply to computing and related disciplines. The subject will foster the development of critical thinking, a sceptical and rigorous approach, and awareness of research ethics. This subject will be particularly useful for students contemplating undertaking a research degree, or for students currently enrolled in a research degree (MPhil or PhD) or a course-work degree with a research project (MIT, MIS).

INDICATIVE CONTENT

Research skills covered will include: surveying relevant literature, developing productive research questions, selecting and designing appropriate methods, analysing data and reasoning about their theoretical implications, communicating research both in writing and through oral presentation, and understanding the ethics of research. Qualitative methods covered include: ethnography, field data collection techniques (interviews, focus groups), thematic analysis, case studies and design-based research. Quantitative methods covered include: statistical thinking and techniques, hypothesis testing, experiment design, survey design, simulation studies.

View detailed information in the Handbook

Programming Language Implementation · 12.5 pts

AIMS

Good craftsmen know their tools, and compilers are amongst the most important tools that programmers use. There are many ways in which familiarity with compilers helps programmers. For example, knowledge of semantic analysis helps programmers understand error messages, and knowledge of code generation techniques helps programmers debug problems at assembly language level. The technologies used in compiler development are also useful when implementing other kinds of programs. The concepts and tools used in the analysis phases of a compiler are useful for any program whose input has a structure that is non-trivial to recognize, while those used in the synthesis phases are useful for any program that generates commands for another system. This subject provides an understanding of the main principles of programming language implementation, as well as first hand experience of the application of those principles.

INDICATIVE CONTENT

The subject describes how compilers analyse source programs, how they translate them to target programs, and what tools are available to support these tasks. Topics covered include compiler structures; lexical analysis; syntax analysis; semantic analysis; intermediate representations of programs; code generation; and optimisation.

View detailed information in the Handbook

Declarative Programming · 12.5 pts

AIMS

Declarative programming languages provide elegant and powerful programming paradigms which every programmer should know. This subject presents declarative programming languages and techniques.

INDICATIVE CONTENT

  • The dangers of destructive update
  • Functional programming
  • Recursion
  • Strong type systems
  • Parametric polymorphism
  • Algebraic types
  • Type classes
  • Defensive programming practice
  • Higher order programming
  • Currying and partial application
  • Lazy evaluation
  • Monads
  • Logic programming
  • Unification and resolution
  • Nondeterminism, search, and backtracking

View detailed information in the Handbook

Introduction to Machine Learning · 12.5 pts

AIMS

Machine Learning is the study of making accurate, computationally efficient, interpretable and robust inferences from data, often drawing on principles from statistics. This subject aims to introduce students to the intellectual foundations of machine learning, including the mathematical principles of learning from data, algorithms and data structures for machine learning, and practical skills of data analysis.

INDICATIVE CONTENT

Indicative content includes: cleaning and normalising data, supervised learning (classification, regression, linear & non-linear models), and unsupervised learning (clustering), and mathematical foundations for a career in machine learning.

View detailed information in the Handbook

Advanced Database Systems · 12.5 pts

AIMS

Many applications require reliability in access to data, and data should not be lost even in the presence of hardware failures. The ability to retrieve and process the data very efficiently is also paramount even when multiple users access the data from remote sites simultaneously. With the increasing size of data used in these applications, advanced techniques for data management have emerged to make many such advanced requirements for access to data a reality. The subject covers the technologies used in advanced database systems that use these techniques. Topics covered will include: transactions, concurrency control, reliability, ACID properties, performance, indexing of both structured and unstructured data, query processing, and further topics on different database types and database architectures.

INDICATIVE CONTENT

Topics covered include:

  • Introduction to High Performance Database Systems
  • Issues of Performance and Reliability
  • Transaction Processing
  • Recovery from Failures
  • Map Reduce Models

View detailed information in the Handbook

AI Planning for Autonomy · 12.5 pts

AIMS

The key focus of this subject is the foundations of autonomous agents that reason about action, applying techniques such as automated planning, reinforcement learning, game theory, and their real-world applications. Autonomous agents are active entities that perceive their environment, reason, plan and execute appropriate actions to achieve their goals, in service of their users (the real world, human beings, or other agents). The subject focuses on the foundations that enable agents to reason autonomously about goals & rewards, perception, actions, strategy, and the knowledge of other agents during collaborative task execution, and the ethical impacts of agents with this ability.

The programming language used in this subject is Python. No lectures or workshops on Python will be delivered.

INDICATIVE CONTENT

Topics are drawn from the field of advanced artificial intelligence including:

  • Search algorithms and heuristic functions
  • Classical (AI) planning
  • Markov Decision Processes
  • Reinforcement learning
  • Game theory
  • Ethics in AI planning

View detailed information in the Handbook

Stream Computing and Applications · 12.5 pts

AIM

With exponential growth in data generated from sensor data streams, search engines, spam filters, medical services, online analysis of financial data streams, and so forth, there is demand for fast monitoring and storage of huge amounts of data in real-time. Traditional technologies were not aimed to such fast streams of data. Usually they required data to be stored and indexed before it could be processed.

Stream computing was created to tackle those problems that require processing and classification of continuous, high volume of data streams. It is highly used on applications such as Twitter, Facebook, High Frequency Trading and so forth.

This subject will focus on the algorithms and data structures behind the analysis and management of streams. Theoretical underpinnings are emphasized, with implementation of some fundamental algorithms.

INDICATIVE CONTENT

  • Why stream processing is important
  • Hash functions, probability, and fundamental data structures
  • Data stream model
  • Data stream algorithms: Sampling, sketching, distinct items, frequent items, frequency moments, etc.
  • Data stream mining: clustering, histograms, query tracking
  • Graph streams: connectivity, matchings, covers

View detailed information in the Handbook

Advanced Theoretical Computer Science · 12.5 pts

AIMS

At the heart of theoretical computer science are questions of both philosophical and practical importance. What does it mean for a problem to be solvable by computer? What are the limits of computability? Which types of problems can be solved efficiently? What are our options in the face of intractability? This subject covers such questions in the content of a wide-ranging exploration of the nexus between logic, complexity and algorithms, and examines many important (and sometimes surprising) results about the nature of computing.

INDICATIVE CONTENT

  • Turing machines
  • The Church-Turing Thesis
  • Decidable languages
  • Reducability
  • Time Complexity: The classes P and NP, NP-complete problems
  • Space complexity: including sub-linear space
  • Circuit complexity
  • Approximation algorithms
  • Probabilistic complexity classes
  • Additional topics may include descriptive complexity, interactive proofs, communication complexity, complexity as applied to cryptography
  • Space complexity, including sub-linear space
  • Finite state automata, pushdown automata, regular languages, context-free languages to the Recommended Background Knowledge.

Example of assignment

  • Proving the equivalence of a variant of a standard machine to the original version
  • Describing an NP-hardness reduction
  • Designing an approximation algorithm for an NP-hard problem.

View detailed information in the Handbook

Advanced Algorithms and Data Structures · 12.5 pts

Contemporary software systems such as search engines must deal with huge amounts of data, often in real time. In such cases, standard data structures and algorithms do not scale. This subject aims to provide an overview of contemporary advanced algorithms and data structures in computer science for such problems. These techniques serve as building blocks for solving complex algorithmic problems, and have many practical applications.

View detailed information in the Handbook

Internship · 25 pts

AIMS

This subject involves students undertaking professional work experience with a Host Organisation, generally at the Host Organisation’s premises. Students will work under the supervision of both an academic mentor and an external supervisor at the Host Organisation.

By completing their internship as part of this subject, students will receive support in navigating their placement, guidance on maximising their learning from the experiences they gain and training in how to use these experiences when seeking employment.

This subject uses structured reflection to help students develop the professional skills and competencies required by engineers and IT professionals. Each student is allocated an academic mentor to assist them in their development and support their well-being.

Please view this video for further information: Internship

View detailed information in the Handbook

Leadership for Innovation · 12.5 pts

This subject, which is offered to students who have completed ENGR90034 Creating Innovative Engineering (CIE), will give participants core leadership skills for managing professionals engaged in innovation and other ambiguous project-based work.

The subject teaches leadership at three levels (12 hours each). The first level, taught intensively before the start of the semester, will enable you to learn basic management theory that allows you to bridge from the skills and theory taught in CIE to the level needed to start mentoring a team in CIE or another subject. The second level, taught as four three-hour workshops during the semester, will focus on key thematic issues in the leadership of innovative teams. The third level, taught in twelve one-hour sessions, will focus on specific leadership skills. These include facilitation, coaching, mentoring, conflict resolution, etc. Students will apply the theory and skills to the mentoring of a student project team in CIE or another subject within the University.

You will apply what you are learning, and develop skills, by mentoring an industry-sponsored project within CIE or a project within another subject. CIE mentors will also need to manage their relationship with the external sponsor of the project.

View detailed information in the Handbook

Suggested third 100 points

Project

Students must complete the following subjects (25 points). Details of these subjects will be published in the 2022 Handbook:

Accordion
Masters Advanced Software Project Part 1 · 12.5 pts

AIMS

The aim of the subject is to give students the knowledge and skills required to carry out real life software engineering projects. Students will work in large teams to develop a non-trivial software system for an external client using agile software engineering methods. Workshops are used to explore the application of advanced software engineering techniques to student projects and are drawn from topics in: analysis and modelling, product and project metrics, design and technologies, product testing and measurement and validation, maintenance and deployment.

INDICATIVE CONTENT

Developing real-world software on time and within budget is a challenging task. Students will work in a (large) team to solve a practical problem, applying sound engineering principles to the formulation and solution of their problem. Students will engage in the full software engineering life cycle from requirements engineering through to delivery, to develop a software solution for an external client.

This subject has been integrated with the Skills Towards Employment Program (STEP) and contains activities that can assist in the completion of the Engineering Practice Hurdle (EPH).

View detailed information in the Handbook

Masters Advanced Software Project Part 2 · 12.5 pts

AIMS

The aim of the subject is to give the students the knowledge and skills required to carry out real life software engineering projects. Students will work in large teams to develop a non-trivial software system for an external client using agile software engineering methods. Workshops are used to explore the application of advanced software engineering techniques to student projects and are drawn from topics in: analysis and modelling, product and project metrics, design and technologies, product testing and measurement and validation.

INDICATIVE CONTENT

Developing real-world software on time and under budget is a challenging task. Students will work in a team to solve a practical problem, applying sound engineering principles to the formulation and solution of their problem. Students will engage in the full software engineering life cycle from requirements engineering through to delivery, to develop a software solution for an external client.

This subject has been integrated with the Skills Towards Employment Program (STEP) and contains activities that can assist in the completion of the Engineering Practice Hurdle (EPH).

View detailed information in the Handbook

Core

Students must complete the following subjects (25 points):

Accordion
Software Design and Architecture · 12.5 pts

AIMS

One of the main challenges in developing enterprise-wide distributed systems is in choosing the right software architectures. In this subject students will study software architectures in depth and the principles, techniques and tools for creating, developing and evaluating software architectures.

INDICATIVE CONTENT

Topics covered in this subject will be drawn from: design styles and architectural patterns; design strategies; domain specific architectures; evaluation of designs; architectural design for non-functional requirements; and modelling architectures.

View detailed information in the Handbook

High Integrity Systems Engineering · 12.5 pts

AIMS

High integrity systems are systems that must be engineered to a high level of dependability, that is, a high level of safety, security, reliability and performance. In this subject students will explore the aims, principles, techniques and tools that are used to analyse, design and implement dependable systems.

INDICATIVE CONTENT

Topics include: an introduction to high-integrity systems; safety critical systems and safety engineering; mathematical modelling of systems; fault tolerant systems design; design by contract; static verification; and model-based testing.

View detailed information in the Handbook

Core (Business)

Students must complete the following subjects (50 points):

Accordion
Engineering Contracts and Procurement · 12.5 pts

AIMS

Students will learn how to structure and work with engineering contracts to deliver and procure engineering outcomes in this subject. Students will develop a working knowledge of contract administration and gain an understanding of commercial aspects of engineering. All engineers interface commercially with engineering contracts throughout their careers, and thus the application of the subject content is broad. Those seeking to work as a contractor and as a contract administrator will find a direct application of this subject’s content. Students will learn how to use procurement and contracts to develop successful engineering projects. This includes administration of the contracts and understanding the business environment where these contracts are agreed. These skills will be useful to students in their future work and apply to a wide range of engineering disciplines.

INDICATIVE CONTENT

Management of engineering projects. This includes the role and responsibilities of corporate managers, market analysis, structuring of procurement options, development of contractual terms and conditions and the pricing of work.

Estimating and tendering engineering works via work breakdown structures, work method statements, risk identification and tendering principles. The study material also covers contract administration and project control functions and techniques including time and money negotiations and cash flow management.

View detailed information in the Handbook

Economic Analysis for Engineers · 12.5 pts

This subject seeks to -

  • Build a thorough understanding of the theoretical and conceptual basis upon which the practice of financial project analysis is built and its application to engineering
  • Satisfy the practical needs of the engineering manager toward making informed financial decisions when involved in an engineering project
  • Incorporate critical decision-making tools that engineering managers can bring to the task of making informed financial decisions.

View detailed information in the Handbook

Marketing Management for Engineers · 12.5 pts

This subject prepares graduate engineers to practice basic marketing in the engineering profession where there is a mutual need and reliance upon their training and skills in both engineering and marketing to satisfy the needs, wants and demands of the market, internally within the organisation, and through the entire supply chain in a sustainable manner.

This subject provides an introduction to the basic concepts of marketing, marketing management and marketing engineering. Some of the principal topics include: what is marketing engineering; differences between engineering and consumer products; designing and managing engineering services; sales engineer and managing sales force; online marketing and the internet of things; business-to-business markets; business-to-government markets; company orientation; corporate division and strategic planning; market positioning, segmentation and targeting; marketing mix (product, pricing, place and promotion); marketing plan and strategies; SWOT analysis, understand the legal, economic, sociocultural, natural and technological environments; distribution channels; communications, models and simulations; decision tools; databases and data mining, forecasting; theory and evidence-based decision making; etc. The principles of sustainability will apply throughout the subject.

View detailed information in the Handbook

Strategy Execution for Engineers · 12.5 pts

In fiercely competitive global and dynamic environments, companies face increasing pressures to exceed customer expectations along multiple performance measures, such as cost, quality, flexibility and innovativeness. To outperform their competitors, many firms make the mistake of mimicking their rivals, rather than focusing on developing the organizational capabilities that competitors will find difficult to match over the long term. And although operations are at the core of a firm’s value adding activities, few firms have sought to build a sustainable competitive advantage around these capabilities.

As such, this subject emphasises the critical nature of Operations Management as an essential part of a competent engineer’s portfolio of knowledge and skills. Operations deals with the design, management and continuous improvement of business processes. It aims at providing some of the core concepts in operations that are essential for leveraging a firm’s operational capabilities to achieve sustainable competitive advantage. This course provides a logical and rigorous approach to plan and control process structure and managerial levers to achieve desired business process performance.

View detailed information in the Handbook

Core (Cyber Security)

Students must complete the following subject (12.5 points):

Accordion
Cryptography and Security · 12.5 pts

AIMS

The subject will explore foundational knowledge in the area of cryptography and information security. The overall aim is to gain an understanding of fundamental cryptographic concepts like encryption and signatures and use it to build and analyse security in computers, communications and networks. This subject covers fundamental concepts in information security on the basis of methods of modern cryptography, including encryption, signatures and hash functions.

This subject is an elective subject in the Master of Engineering (Software). It can also be taken as an advanced elective in Master of Information Technology.

INDICATIVE CONTENT

The subject will be made up of three parts:

  • Cryptography: the essentials of public and private key cryptography, stream ciphers, digital signatures and cryptographic hash functions
  • Access Control: the essential elements of authentication and authorization; and
  • Secure Protocols; which are obtained through cryptographic techniques.

A particular emphasis will be placed on real-life protocols such as Secure Socket Layer (SSL) and Kerberos.

Topics drawn from:

  • Symmetric key crypto systems
  • Public key cryptosystems
  • Hash functions
  • Authentication
  • Secret sharing
  • Protocols
  • Key Management.

View detailed information in the Handbook

Core (Human Computer Interaction)

Students must complete the following subjects (50 points):

Accordion
Designing Novel Interactions · 12.5 pts

New interaction technologies continuously expand the range of input and output methods available in human-computer interaction. Interaction is no longer limited to desktop computers, windows-based interfaces, or keyboards and mice. Interfaces now include tangible communication, mobile and ubiquitous devices, ambient displays and sensing in public spaces. Novel interactions require specific methods to enable their conception, design, evaluation and use in creating interactive systems. This subject will introduce a selection of different interaction media and examine the specific methods used to create interactive systems with them. Underlying these specific methods are general conceptual approaches to design that are focused on innovative or disruptive interactions between users and technology. Case studies will cover both fundamental research and industrial design practice. An emphasis is placed on developing the skills to critique and adapt different interface technologies and paradigms, to develop prototype systems, and evaluate new interactions to ensure that they meet their intended goals.

This subject follows a flipped classroom model. The interactive lecture consists of practical activities and active learning tasks. Complementary teaching is provided through pre-recorded lectures.

View detailed information in the Handbook

Evaluating the User Experience · 12.5 pts

User Experience (UX) means the way we respond to technology, including our practical, intellectual, emotional and affective responses. UX is widely recognised as a major determinant of successful technology outcomes, and it provides the design inspiration behind some of the most successful innovations in digital technologies that define the present era. This subject concerns the methods and techniques that are used to identify what characterises UX and how you can recognise, measure and evaluate it in a variety of contexts. This entails a deep understanding of the psychological and social theories underlying UX, combined with practical knowledge of the various industry methods and tools currently in use. In terms of practice, an emphasis is placed on learning the skills needed to design, justify and conduct appropriate evaluations, and the interpretation of findings. In terms of theory, special emphasis is placed on how to identify and evaluate the various facets of UX, across a range of social and work-based settings, and across a range of technologies.

View detailed information in the Handbook

Computing and Information Systems advanced electives

See the sample courses above for the number of electives included in each specialisation.

Accordion
Algorithms for Bioinformatics · 12.5 pts

Technological advances in DNA sequencing, RNA sequencing and proteomics have provided a wealth of data from which biological insight can be obtained. Refining this data is a non-trivial matter due to the increased input sizes seen in modern high-throughput bioinformatics. This subject provides algorithmic strategies and data structures capable of meeting the challenge. While focused on bioinformatic data, the concepts herein apply to big data analysis as a whole.

This subject covers key algorithms and data structures used in bioinformatics and assumes you have experience in programming. Strategies which frequently appear in modern software are explored so that bioinformatics tools may be appropriately selected, executed, and interpreted. This exploration yields a toolkit from which new computational methods can be created. Indicative topics include sequence operations for comparison, alignment and indexing, graph data structures in the context of genome assembly, phylogenetics and network analysis, and both supervised and unsupervised machine learning within the fields of optimisation, dimensionality reduction, clustering and classification.

View detailed information in the Handbook

Distributed Systems · 12.5 pts

AIMS

The subject aims to provide an understanding of the principles on which the Web, Email, DNS and other interesting distributed systems are based. Questions concerning distributed architecture, concepts and design; and how these meet the demands of contemporary distributed applications will be addressed.

INDICATIVE CONTENT

Topics covered include: characterization of distributed systems, system models, interprocess communication, remote invocation, indirect communication, operating system support, distributed objects and components, web services, security, distributed file systems, and name services.

View detailed information in the Handbook

Computational Genomics · 12.5 pts

AIM

The study of genomics is on the forefront of biology. Current laboratory technologies generate huge amounts of data and computational analysis is necessary to make sense of these data. This subject covers a broad range of approaches to the computational analysis of genomic data. Students will learn the theory behind a variety of different approaches to genomic analysis, and be introduced to key tools in current use, preparing them to use existing methods appropriately as well as developing new ways to analyse genomic data. Students will also have opportunities to apply their skills in workshops and assignments using both existing computational genomics tools and writing custom Python functions.

Computational Genomics can be taken as an elective subject. It can also be taken by undergraduate students, exchange students and PhD students, subject to the written approval of the subject coordinator.

INDICATIVE CONTENT

This subject covers the computational analysis of several important forms of genomic data. Topics include computational resource management, reproducible research principles, genomics workflows, sequence alignment, genome annotation, parallel computing, metagenomics and single-cell sequencing. The subject domain rapidly progresses, and subject content is regularly revised and updated.

Practical work includes writing bioinformatics functions with Python code, accessing genomics data repositories and using popular command-line tools.

Please view this video for further information: Computational Genomics

View detailed information in the Handbook

Mobile Computing Systems Programming · 12.5 pts

AIMS

Mobile devices are ubiquitous nowadays. Mobile computing encompasses technologies, devices and software that enable (wireless) access to services anyplace, anytime, and anywhere. This subject will cover fundamental mobile computing techniques and technologies, and explain challenges that are unique to the design, implementation, and evaluation of mobile computing. In particular, this subject will enable students to develop mobile phone applications that take advantage of the unique sensing capabilities of mobile devices, their multi-modal interaction capabilities, and their ability to sense and respond to context.

View detailed information in the Handbook

Distributed Algorithms · 12.5 pts

AIMS

The Internet, World Wide Web, bank networks, mobile phone networks and many others are examples for Distributed Systems. Distributed Systems rely on a key set of algorithms and data structures to run efficiently and effectively. In this subject, we learn these key algorithms that professionals work with while dealing with various systems. Clock synchronization, leader election, mutual exclusion, and replication are just a few areas were multiple well known algorithms were developed during the evolution of the Distributed Computing paradigm.

INDICATIVE CONTENT

Topics covered include:

  • Synchronous and asynchronous network algorithms that address resource allocation, communication
  • Consensus among distributed processes
  • Distributed data structures
  • Data consistency
  • Deadlock detection
  • Lader election, and
  • Global snapshots issues.

View detailed information in the Handbook

Cluster and Cloud Computing · 12.5 pts

AIMS

The growing popularity of the Internet along with the availability of powerful computers and high-speed networks as low-cost commodity components are changing the way we do parallel and distributed computing (PDC). Cluster and Cloud Computing are two approaches for PDC. Clusters employ cost-effective commodity components for building powerful computers within local-area networks. Recently, “cloud computing” has emerged as the new paradigm for delivery of computing as services in a pay-as-you-go-model via the Internet. These approaches are used to tackle may research problems with particular focus on "big data" challenges that arise across a variety of domains.

Some examples of scientific and industrial applications that use these computing platforms are: system simulations, weather forecasting, climate prediction, automobile modelling and design, high-energy physics, movie rendering, business intelligence, big data computing, and delivering various business and consumer applications on a pay-as-you-go basis.

This subject will enable students to understand these technologies, their goals, characteristics, and limitations, and develop both middleware supporting them and scalable applications supported by these platforms.

This subject is an elective subject in the Master of Information Technology. It can also be taken as an Advanced Elective subject in the Master of Engineering (Software).

INDICATIVE CONTENT

  • Cluster computing: elements of parallel and distributed computing, cluster systems architecture, resource management and scheduling, single system image, parallel programming paradigms, cluster programming with MPI
  • Utility computing: foundations and grid computing technologies
  • Cloud computing: cloud platforms, Virtualization, Cloud Application Programming Models (Task, Thread, and MapReduce), Cloud applications, and future directions in utility and cloud computing
  • "Big data" processing and analytics in distributed environments

Please view this video for further information: Cluster and Cloud Computing

View detailed information in the Handbook

Parallel and Multicore Computing · 12.5 pts

AIMS

The subject aims to introduce students to parallel algorithms and their analysis. Fundamental principles of parallel computing are discussed. Various parallel architectures and programming platforms are introduced. Parallel algorithms for different architectures, as well as parallel algorithms addressing specific scientific problems are critically analysed.

INDICATIVE CONTENT

Topics include: principles of parallel computing, PRAM model, PRAM algorithms, parallel architectures, OpenMP, shared memory algorithms, systolic algorithms, parallel communication patterns, PVM/MPI, scientific applications, hypercube, graph embeddings and extended parallel computing models.

View detailed information in the Handbook

Natural Language Processing · 12.5 pts

AIMS

Much of the world's knowledge is stored in the form of text, and accordingly, understanding and harnessing knowledge from text are key challenges. In this subject, students will learn computational methods for working with text, in the form of natural language understanding, and language generation. Students will develop an understanding of the main algorithms used in natural language processing, for use in a diverse range of applications including machine translation, text mining, sentiment analysis, and question answering. The programming language used is Python.

INDICATIVE CONTENT

Topics covered may include:

  • Text classification and unsupervised topic discovery
  • Vector space models for natural language semantics
  • Structured prediction for tagging
  • Syntax models for parsing of sentences and documents
  • N-gram language modelling
  • Automatic translation, and multilingual methods
  • Relation extraction and coreference resolution

View detailed information in the Handbook

Cryptography and Security · 12.5 pts

AIMS

The subject will explore foundational knowledge in the area of cryptography and information security. The overall aim is to gain an understanding of fundamental cryptographic concepts like encryption and signatures and use it to build and analyse security in computers, communications and networks. This subject covers fundamental concepts in information security on the basis of methods of modern cryptography, including encryption, signatures and hash functions.

This subject is an elective subject in the Master of Engineering (Software). It can also be taken as an advanced elective in Master of Information Technology.

INDICATIVE CONTENT

The subject will be made up of three parts:

  • Cryptography: the essentials of public and private key cryptography, stream ciphers, digital signatures and cryptographic hash functions
  • Access Control: the essential elements of authentication and authorization; and
  • Secure Protocols; which are obtained through cryptographic techniques.

A particular emphasis will be placed on real-life protocols such as Secure Socket Layer (SSL) and Kerberos.

Topics drawn from:

  • Symmetric key crypto systems
  • Public key cryptosystems
  • Hash functions
  • Authentication
  • Secret sharing
  • Protocols
  • Key Management.

View detailed information in the Handbook

Research Methods · 12.5 pts

AIMS

Research is a process of acquiring new knowledge by systematically and rigorously applying methods to address well-formulated questions. To be valuable, new knowledge must address a significant theoretical question, it must be supported by evidence and be able to stand up to critical scrutiny, and its presentation to other researchers and/or to the public must be persuasive. This subject is an introduction to research thinking, skills and methodologies as they apply to computing and related disciplines. The subject will foster the development of critical thinking, a sceptical and rigorous approach, and awareness of research ethics. This subject will be particularly useful for students contemplating undertaking a research degree, or for students currently enrolled in a research degree (MPhil or PhD) or a course-work degree with a research project (MIT, MIS).

INDICATIVE CONTENT

Research skills covered will include: surveying relevant literature, developing productive research questions, selecting and designing appropriate methods, analysing data and reasoning about their theoretical implications, communicating research both in writing and through oral presentation, and understanding the ethics of research. Qualitative methods covered include: ethnography, field data collection techniques (interviews, focus groups), thematic analysis, case studies and design-based research. Quantitative methods covered include: statistical thinking and techniques, hypothesis testing, experiment design, survey design, simulation studies.

View detailed information in the Handbook

Programming Language Implementation · 12.5 pts

AIMS

Good craftsmen know their tools, and compilers are amongst the most important tools that programmers use. There are many ways in which familiarity with compilers helps programmers. For example, knowledge of semantic analysis helps programmers understand error messages, and knowledge of code generation techniques helps programmers debug problems at assembly language level. The technologies used in compiler development are also useful when implementing other kinds of programs. The concepts and tools used in the analysis phases of a compiler are useful for any program whose input has a structure that is non-trivial to recognize, while those used in the synthesis phases are useful for any program that generates commands for another system. This subject provides an understanding of the main principles of programming language implementation, as well as first hand experience of the application of those principles.

INDICATIVE CONTENT

The subject describes how compilers analyse source programs, how they translate them to target programs, and what tools are available to support these tasks. Topics covered include compiler structures; lexical analysis; syntax analysis; semantic analysis; intermediate representations of programs; code generation; and optimisation.

View detailed information in the Handbook

Declarative Programming · 12.5 pts

AIMS

Declarative programming languages provide elegant and powerful programming paradigms which every programmer should know. This subject presents declarative programming languages and techniques.

INDICATIVE CONTENT

  • The dangers of destructive update
  • Functional programming
  • Recursion
  • Strong type systems
  • Parametric polymorphism
  • Algebraic types
  • Type classes
  • Defensive programming practice
  • Higher order programming
  • Currying and partial application
  • Lazy evaluation
  • Monads
  • Logic programming
  • Unification and resolution
  • Nondeterminism, search, and backtracking

View detailed information in the Handbook

Introduction to Machine Learning · 12.5 pts

AIMS

Machine Learning is the study of making accurate, computationally efficient, interpretable and robust inferences from data, often drawing on principles from statistics. This subject aims to introduce students to the intellectual foundations of machine learning, including the mathematical principles of learning from data, algorithms and data structures for machine learning, and practical skills of data analysis.

INDICATIVE CONTENT

Indicative content includes: cleaning and normalising data, supervised learning (classification, regression, linear & non-linear models), and unsupervised learning (clustering), and mathematical foundations for a career in machine learning.

View detailed information in the Handbook

Advanced Database Systems · 12.5 pts

AIMS

Many applications require reliability in access to data, and data should not be lost even in the presence of hardware failures. The ability to retrieve and process the data very efficiently is also paramount even when multiple users access the data from remote sites simultaneously. With the increasing size of data used in these applications, advanced techniques for data management have emerged to make many such advanced requirements for access to data a reality. The subject covers the technologies used in advanced database systems that use these techniques. Topics covered will include: transactions, concurrency control, reliability, ACID properties, performance, indexing of both structured and unstructured data, query processing, and further topics on different database types and database architectures.

INDICATIVE CONTENT

Topics covered include:

  • Introduction to High Performance Database Systems
  • Issues of Performance and Reliability
  • Transaction Processing
  • Recovery from Failures
  • Map Reduce Models

View detailed information in the Handbook

AI Planning for Autonomy · 12.5 pts

AIMS

The key focus of this subject is the foundations of autonomous agents that reason about action, applying techniques such as automated planning, reinforcement learning, game theory, and their real-world applications. Autonomous agents are active entities that perceive their environment, reason, plan and execute appropriate actions to achieve their goals, in service of their users (the real world, human beings, or other agents). The subject focuses on the foundations that enable agents to reason autonomously about goals & rewards, perception, actions, strategy, and the knowledge of other agents during collaborative task execution, and the ethical impacts of agents with this ability.

The programming language used in this subject is Python. No lectures or workshops on Python will be delivered.

INDICATIVE CONTENT

Topics are drawn from the field of advanced artificial intelligence including:

  • Search algorithms and heuristic functions
  • Classical (AI) planning
  • Markov Decision Processes
  • Reinforcement learning
  • Game theory
  • Ethics in AI planning

View detailed information in the Handbook

Stream Computing and Applications · 12.5 pts

AIM

With exponential growth in data generated from sensor data streams, search engines, spam filters, medical services, online analysis of financial data streams, and so forth, there is demand for fast monitoring and storage of huge amounts of data in real-time. Traditional technologies were not aimed to such fast streams of data. Usually they required data to be stored and indexed before it could be processed.

Stream computing was created to tackle those problems that require processing and classification of continuous, high volume of data streams. It is highly used on applications such as Twitter, Facebook, High Frequency Trading and so forth.

This subject will focus on the algorithms and data structures behind the analysis and management of streams. Theoretical underpinnings are emphasized, with implementation of some fundamental algorithms.

INDICATIVE CONTENT

  • Why stream processing is important
  • Hash functions, probability, and fundamental data structures
  • Data stream model
  • Data stream algorithms: Sampling, sketching, distinct items, frequent items, frequency moments, etc.
  • Data stream mining: clustering, histograms, query tracking
  • Graph streams: connectivity, matchings, covers

View detailed information in the Handbook

Advanced Theoretical Computer Science · 12.5 pts

AIMS

At the heart of theoretical computer science are questions of both philosophical and practical importance. What does it mean for a problem to be solvable by computer? What are the limits of computability? Which types of problems can be solved efficiently? What are our options in the face of intractability? This subject covers such questions in the content of a wide-ranging exploration of the nexus between logic, complexity and algorithms, and examines many important (and sometimes surprising) results about the nature of computing.

INDICATIVE CONTENT

  • Turing machines
  • The Church-Turing Thesis
  • Decidable languages
  • Reducability
  • Time Complexity: The classes P and NP, NP-complete problems
  • Space complexity: including sub-linear space
  • Circuit complexity
  • Approximation algorithms
  • Probabilistic complexity classes
  • Additional topics may include descriptive complexity, interactive proofs, communication complexity, complexity as applied to cryptography
  • Space complexity, including sub-linear space
  • Finite state automata, pushdown automata, regular languages, context-free languages to the Recommended Background Knowledge.

Example of assignment

  • Proving the equivalence of a variant of a standard machine to the original version
  • Describing an NP-hardness reduction
  • Designing an approximation algorithm for an NP-hard problem.

View detailed information in the Handbook

Advanced Algorithms and Data Structures · 12.5 pts

Contemporary software systems such as search engines must deal with huge amounts of data, often in real time. In such cases, standard data structures and algorithms do not scale. This subject aims to provide an overview of contemporary advanced algorithms and data structures in computer science for such problems. These techniques serve as building blocks for solving complex algorithmic problems, and have many practical applications.

View detailed information in the Handbook

Internship · 25 pts

AIMS

This subject involves students undertaking professional work experience with a Host Organisation, generally at the Host Organisation’s premises. Students will work under the supervision of both an academic mentor and an external supervisor at the Host Organisation.

By completing their internship as part of this subject, students will receive support in navigating their placement, guidance on maximising their learning from the experiences they gain and training in how to use these experiences when seeking employment.

This subject uses structured reflection to help students develop the professional skills and competencies required by engineers and IT professionals. Each student is allocated an academic mentor to assist them in their development and support their well-being.

Please view this video for further information: Internship

View detailed information in the Handbook

Leadership for Innovation · 12.5 pts

This subject, which is offered to students who have completed ENGR90034 Creating Innovative Engineering (CIE), will give participants core leadership skills for managing professionals engaged in innovation and other ambiguous project-based work.

The subject teaches leadership at three levels (12 hours each). The first level, taught intensively before the start of the semester, will enable you to learn basic management theory that allows you to bridge from the skills and theory taught in CIE to the level needed to start mentoring a team in CIE or another subject. The second level, taught as four three-hour workshops during the semester, will focus on key thematic issues in the leadership of innovative teams. The third level, taught in twelve one-hour sessions, will focus on specific leadership skills. These include facilitation, coaching, mentoring, conflict resolution, etc. Students will apply the theory and skills to the mentoring of a student project team in CIE or another subject within the University.

You will apply what you are learning, and develop skills, by mentoring an industry-sponsored project within CIE or a project within another subject. CIE mentors will also need to manage their relationship with the external sponsor of the project.

View detailed information in the Handbook

Electives (Cyber Security)

Select two of the following subjects (25 points):

Accordion
AI Planning for Autonomy · 12.5 pts

AIMS

The key focus of this subject is the foundations of autonomous agents that reason about action, applying techniques such as automated planning, reinforcement learning, game theory, and their real-world applications. Autonomous agents are active entities that perceive their environment, reason, plan and execute appropriate actions to achieve their goals, in service of their users (the real world, human beings, or other agents). The subject focuses on the foundations that enable agents to reason autonomously about goals & rewards, perception, actions, strategy, and the knowledge of other agents during collaborative task execution, and the ethical impacts of agents with this ability.

The programming language used in this subject is Python. No lectures or workshops on Python will be delivered.

INDICATIVE CONTENT

Topics are drawn from the field of advanced artificial intelligence including:

  • Search algorithms and heuristic functions
  • Classical (AI) planning
  • Markov Decision Processes
  • Reinforcement learning
  • Game theory
  • Ethics in AI planning

View detailed information in the Handbook

Trustworthy Machine Learning · 12.5 pts

AIMS

As machine learning systems are increasingly integrated into critical and data sensitive applications, ensuring their confidentiality, reliability, robustness, and fairness becomes imperative. The complexity of modern AI models, coupled with evolving threats such as data inference, adversarial attacks, data poisoning, and biases, necessitates new methodologies to build and evaluate trustworthy machine learning systems. Trustworthy Machine Learning will explore techniques to enhance the privacy, security, interpretability, and safety in deployment of machine learning models, ensuring they operate reliably in real-world environments.

INDICATIVE CONTENT

The subject will begin by introducing the key dimensions of trustworthiness in machine learning, including privacy, robustness, reliability, and fairness. Students will examine real-world case studies that highlight failures and vulnerabilities in deployed AI systems.

The first part of the subject will explore different types of information leakage that can arise under various threat models and examine methods for protecting sensitive data during analysis. The second part will introduce machine learning techniques that enhance model reliability, with a particular focus on unsupervised learning methods such as anomaly detection, alarm correlation, and intrusion detection. The third part of the subject will introduce some of the theoretical challenges and emerging issues for security analytics research, based on recent trends in the evolution of security threats.

By the end of the subject, students will gain both theoretical knowledge and practical skills to design, evaluate, and deploy machine learning models with trustworthiness as a core principle.

View detailed information in the Handbook

Web Security · 12.5 pts

AIMS

The Internet pervades nearly every aspect of our lives, from banking through to dating, and onto our interactions with government. As more of our lives move online we face ever greater risks to our data and way of life from internet vulnerabilities and attacks. Web Security will examine the fundamentals behind common vulnerabilities and attacks, and will introduce students to ways of mitigating the risks associated with them. It will also examine some of the ethical challenges faced when evaluating security and disclosing vulnerabilities.

INDICATIVE CONTENT

The subject will examine some of the cyber security challenges faced during system implementation and deployment. In particular it will identity common attack vectors, covering in more detail some of the Open Web Application Security Project (OWASP) Top 10 list of web application vulnerabilities, which may include topics such as injection, cross‐site scripting, session hijacking, and cross‐site request forgery, amongst others. Where appropriate practical examples will be examined to relate theory to practice. The subject will discuss methods for mitigating the risks associated with such vulnerabilities, and may include discussions on distributed denial of service, input validation and sanitisation, penetration testing, and the associated ethical and legal constraints, automated vulnerability scanning, and web application firewalls.

View detailed information in the Handbook

Information Security Consulting · 12.5 pts

AIMS

This subject introduces a range of information security consulting services typically provided by leading management consultants in industry. The subject will cover the fundamental principles and practice of security risk assessment, incident response and disaster recovery, knowledge leakage, systems and network security, and policy and culture. Students will develop an appreciation for the kinds of consulting services that can be developed and marketed to industry in each of these areas. Consulting techniques in proposal writing, pricing, and marketing to prospective clients will also be discussed.

This subject supports course-level objectives by allowing students to have in-depth knowledge of the specialist area of information security management. The subject’s assessment tasks include the writing of a comprehensive consulting proposal and research into critical security issues faced by organisations. These tasks will encourage students to work in a team to develop a high-level of achievement in writing, research activities, and presentation skills.

Students who have a weighted average mark of at least 75% in the Master of Information Systems have the option to complete the on-line Advanced Elective ISYS90090 Cyber Security Management instead of ISYS90070 Information Security Consulting.

INDICATIVE CONTENT

Security principles and techniques discussed are: Models for understanding knowledge leakage, Security Risk Assessment Methods including OCTAVE, Firewall and VPN security scenarios, SANS Incident Response Methodology. Real world cases will be drawn from a range of organisation types including critical infrastructure installations in Australia.

View detailed information in the Handbook

Electives (Distributed Computing)

Select three of the following subjects (37.5 points):

Accordion
Sensor Networks and Applications · 12.5 pts

AIMS

Sensor networks are a key component of today’s increasingly pervasive computing technologies. In this subject, the aim is to develop an understanding of sensor network technologies from three different perspectives: sensing, communication, and computing (including hardware, software, and algorithms) and their applications.

INDICATIVE CONTENT

Topics covered include:

  • Attributes of sensor networks
  • Wired and wireless sensors
  • Sensors and networks design and deployment issues
  • Bandwidth and energy constraints aware techniques for network discovery
  • Network control and routing
  • Collaborative information processing
  • Offloading processing and data management tasks, querying
  • Tasking and programming sensor networks
  • Standards that provide the models and schema encoding for defining the geometric, dynamic and observational characteristics of a sensor, and
  • Applications

View detailed information in the Handbook

Mobile Computing Systems Programming · 12.5 pts

AIMS

Mobile devices are ubiquitous nowadays. Mobile computing encompasses technologies, devices and software that enable (wireless) access to services anyplace, anytime, and anywhere. This subject will cover fundamental mobile computing techniques and technologies, and explain challenges that are unique to the design, implementation, and evaluation of mobile computing. In particular, this subject will enable students to develop mobile phone applications that take advantage of the unique sensing capabilities of mobile devices, their multi-modal interaction capabilities, and their ability to sense and respond to context.

View detailed information in the Handbook

Distributed Algorithms · 12.5 pts

AIMS

The Internet, World Wide Web, bank networks, mobile phone networks and many others are examples for Distributed Systems. Distributed Systems rely on a key set of algorithms and data structures to run efficiently and effectively. In this subject, we learn these key algorithms that professionals work with while dealing with various systems. Clock synchronization, leader election, mutual exclusion, and replication are just a few areas were multiple well known algorithms were developed during the evolution of the Distributed Computing paradigm.

INDICATIVE CONTENT

Topics covered include:

  • Synchronous and asynchronous network algorithms that address resource allocation, communication
  • Consensus among distributed processes
  • Distributed data structures
  • Data consistency
  • Deadlock detection
  • Lader election, and
  • Global snapshots issues.

View detailed information in the Handbook

Cluster and Cloud Computing · 12.5 pts

AIMS

The growing popularity of the Internet along with the availability of powerful computers and high-speed networks as low-cost commodity components are changing the way we do parallel and distributed computing (PDC). Cluster and Cloud Computing are two approaches for PDC. Clusters employ cost-effective commodity components for building powerful computers within local-area networks. Recently, “cloud computing” has emerged as the new paradigm for delivery of computing as services in a pay-as-you-go-model via the Internet. These approaches are used to tackle may research problems with particular focus on "big data" challenges that arise across a variety of domains.

Some examples of scientific and industrial applications that use these computing platforms are: system simulations, weather forecasting, climate prediction, automobile modelling and design, high-energy physics, movie rendering, business intelligence, big data computing, and delivering various business and consumer applications on a pay-as-you-go basis.

This subject will enable students to understand these technologies, their goals, characteristics, and limitations, and develop both middleware supporting them and scalable applications supported by these platforms.

This subject is an elective subject in the Master of Information Technology. It can also be taken as an Advanced Elective subject in the Master of Engineering (Software).

INDICATIVE CONTENT

  • Cluster computing: elements of parallel and distributed computing, cluster systems architecture, resource management and scheduling, single system image, parallel programming paradigms, cluster programming with MPI
  • Utility computing: foundations and grid computing technologies
  • Cloud computing: cloud platforms, Virtualization, Cloud Application Programming Models (Task, Thread, and MapReduce), Cloud applications, and future directions in utility and cloud computing
  • "Big data" processing and analytics in distributed environments

Please view this video for further information: Cluster and Cloud Computing

View detailed information in the Handbook

Parallel and Multicore Computing · 12.5 pts

AIMS

The subject aims to introduce students to parallel algorithms and their analysis. Fundamental principles of parallel computing are discussed. Various parallel architectures and programming platforms are introduced. Parallel algorithms for different architectures, as well as parallel algorithms addressing specific scientific problems are critically analysed.

INDICATIVE CONTENT

Topics include: principles of parallel computing, PRAM model, PRAM algorithms, parallel architectures, OpenMP, shared memory algorithms, systolic algorithms, parallel communication patterns, PVM/MPI, scientific applications, hypercube, graph embeddings and extended parallel computing models.

View detailed information in the Handbook

Cryptography and Security · 12.5 pts

AIMS

The subject will explore foundational knowledge in the area of cryptography and information security. The overall aim is to gain an understanding of fundamental cryptographic concepts like encryption and signatures and use it to build and analyse security in computers, communications and networks. This subject covers fundamental concepts in information security on the basis of methods of modern cryptography, including encryption, signatures and hash functions.

This subject is an elective subject in the Master of Engineering (Software). It can also be taken as an advanced elective in Master of Information Technology.

INDICATIVE CONTENT

The subject will be made up of three parts:

  • Cryptography: the essentials of public and private key cryptography, stream ciphers, digital signatures and cryptographic hash functions
  • Access Control: the essential elements of authentication and authorization; and
  • Secure Protocols; which are obtained through cryptographic techniques.

A particular emphasis will be placed on real-life protocols such as Secure Socket Layer (SSL) and Kerberos.

Topics drawn from:

  • Symmetric key crypto systems
  • Public key cryptosystems
  • Hash functions
  • Authentication
  • Secret sharing
  • Protocols
  • Key Management.

View detailed information in the Handbook

Stream Computing and Applications · 12.5 pts

AIM

With exponential growth in data generated from sensor data streams, search engines, spam filters, medical services, online analysis of financial data streams, and so forth, there is demand for fast monitoring and storage of huge amounts of data in real-time. Traditional technologies were not aimed to such fast streams of data. Usually they required data to be stored and indexed before it could be processed.

Stream computing was created to tackle those problems that require processing and classification of continuous, high volume of data streams. It is highly used on applications such as Twitter, Facebook, High Frequency Trading and so forth.

This subject will focus on the algorithms and data structures behind the analysis and management of streams. Theoretical underpinnings are emphasized, with implementation of some fundamental algorithms.

INDICATIVE CONTENT

  • Why stream processing is important
  • Hash functions, probability, and fundamental data structures
  • Data stream model
  • Data stream algorithms: Sampling, sketching, distinct items, frequent items, frequency moments, etc.
  • Data stream mining: clustering, histograms, query tracking
  • Graph streams: connectivity, matchings, covers

View detailed information in the Handbook

Advanced Theoretical Computer Science · 12.5 pts

AIMS

At the heart of theoretical computer science are questions of both philosophical and practical importance. What does it mean for a problem to be solvable by computer? What are the limits of computability? Which types of problems can be solved efficiently? What are our options in the face of intractability? This subject covers such questions in the content of a wide-ranging exploration of the nexus between logic, complexity and algorithms, and examines many important (and sometimes surprising) results about the nature of computing.

INDICATIVE CONTENT

  • Turing machines
  • The Church-Turing Thesis
  • Decidable languages
  • Reducability
  • Time Complexity: The classes P and NP, NP-complete problems
  • Space complexity: including sub-linear space
  • Circuit complexity
  • Approximation algorithms
  • Probabilistic complexity classes
  • Additional topics may include descriptive complexity, interactive proofs, communication complexity, complexity as applied to cryptography
  • Space complexity, including sub-linear space
  • Finite state automata, pushdown automata, regular languages, context-free languages to the Recommended Background Knowledge.

Example of assignment

  • Proving the equivalence of a variant of a standard machine to the original version
  • Describing an NP-hardness reduction
  • Designing an approximation algorithm for an NP-hard problem.

View detailed information in the Handbook

Applied High Performance Computing · 12.5 pts

The use of physics-based computer simulation is a powerful tool in the scientific and engineering fields that allows for the investigation of phenomena that are often inaccessible by other means. As modern compute architectures continue to increase in terms of parallelism and power, so too can these simulations increase in scale and fidelity, but only when equipped with an understanding of the mathematics and underlying hardware, necessary to leverage this power. This subject will aim to develop such an understanding by tying together key tools and techniques used in the design of scientific software targeted at High Performance Computing (HPC) resources.

This subject will introduce several numerical methods that are ubiquitous in the solution of ordinary differential equations (e.g. Euler and Runge-Kutta methods), partial differential equations (e.g. finite difference and finite element methods), linear systems (e.g. conjugate gradient method), and apply these tools to solve governing equations commonly found in areas such as fluid dynamics and thermodynamics. This subject will investigate the development of software targeting shared memory multicore architectures, distributed memory architectures with MPI, and GPU accelerators.

View detailed information in the Handbook

Electives (Human Computer Interaction)

Select one of the following subjects (12.5 points):

Accordion
Distributed Systems · 12.5 pts

AIMS

The subject aims to provide an understanding of the principles on which the Web, Email, DNS and other interesting distributed systems are based. Questions concerning distributed architecture, concepts and design; and how these meet the demands of contemporary distributed applications will be addressed.

INDICATIVE CONTENT

Topics covered include: characterization of distributed systems, system models, interprocess communication, remote invocation, indirect communication, operating system support, distributed objects and components, web services, security, distributed file systems, and name services.

View detailed information in the Handbook

Mobile Computing Systems Programming · 12.5 pts

AIMS

Mobile devices are ubiquitous nowadays. Mobile computing encompasses technologies, devices and software that enable (wireless) access to services anyplace, anytime, and anywhere. This subject will cover fundamental mobile computing techniques and technologies, and explain challenges that are unique to the design, implementation, and evaluation of mobile computing. In particular, this subject will enable students to develop mobile phone applications that take advantage of the unique sensing capabilities of mobile devices, their multi-modal interaction capabilities, and their ability to sense and respond to context.

View detailed information in the Handbook

Introduction to Machine Learning · 12.5 pts

AIMS

Machine Learning is the study of making accurate, computationally efficient, interpretable and robust inferences from data, often drawing on principles from statistics. This subject aims to introduce students to the intellectual foundations of machine learning, including the mathematical principles of learning from data, algorithms and data structures for machine learning, and practical skills of data analysis.

INDICATIVE CONTENT

Indicative content includes: cleaning and normalising data, supervised learning (classification, regression, linear & non-linear models), and unsupervised learning (clustering), and mathematical foundations for a career in machine learning.

View detailed information in the Handbook

Information Visualisation · 12.5 pts

Information visualisation is about using and designing effective mechanisms for presenting and exploring the patterns embedded in large and complex data sets, and to support decision making. Information Visualisation is important in a range of domains dealing with voluminous data rich in structure, among them, prominently, data in the spatial domain or data referenced to the spatial domain. Through its focus on presentation and interaction with spatial information, this subject complements related subjects that deal with the storage and querying of data (such as GEOM90008 Spatial Data Management), and the processing of data (such as GEOM90006 Spatial Data Analytics). This subject is vital for anyone wishing to work with large datasets. It will also be of relevance to those with an interest in design, especially graphical and interaction design.

The subject will cover: Fundamentals of information visualisation and data graphics; visual thinking, human sensing and perception; foundations of data graphics and cartography; graphical user interface design; human computer interaction and human centred design. The lectures are also supported with several labs to develop student experience in this domain.

In the labs, some tools such as Tableau and R libraries will be used to create a wide range of spatial and non-spatial visualisations in order to present data and discover patterns. These tools will also be used to create interactivity on visualisations. In addition, different visualisation types will be discussed and critiqued for different purposes. These will empower you to visualise various data sets in an appropriate form based on identified communication needs.

View detailed information in the Handbook

Human-AI Interaction · 12.5 pts

This subject is designed to equip students with the essential knowledge and skills required to apply Artificial Intelligence (AI) techniques to the design, development, and evaluation of interactive technologies. The subject builds upon the foundational subjects in Human Computer Interaction (HCI) subjects, providing students with a deeper understanding of the role of AI in enhancing user experiences and designing intelligent interactive systems. Students will learn to apply AI algorithms and methodologies to enhance user experiences, usability, and interaction design, gaining the skills necessary to design and implement AI-driven HCI solutions that meet user needs and preferences through practical projects and hands-on exercises.

View detailed information in the Handbook

Fieldwork for Design · 12.5 pts

This subject introduces students to the theories and methods used to understand people and settings for designing technical systems. The subject will equip students with the knowledge and skills needed to gather information about people and activities, to understand the intended users of the systems, and to use the insights gained from this process to identify design requirements. This subject is for students interested in a career in user experience (UX) design, interaction design, service design, usability engineering, and human-computer interaction research. It will be of value to students aiming to work in all areas of information technology development and implementation.

View detailed information in the Handbook

Social Computing · 12.5 pts

Social Computing is a field of study that investigates computing techniques and systems to support, mediate, and understand aspects of social behaviours. Understanding the principles and foundations of Social Computing is important because of the rapid proliferation of social systems, particularly those aimed at end-users (e.g. social networking websites, crowd sourcing platforms, knowledge sharing platforms, etc.). This subject will introduce you to key concepts and principles of Social Computing, and provide you with training to investigate how these systems influence human behaviours, how to improve current implementations, and how to identify ways to better support social activities and interactions.

View detailed information in the Handbook