Coursework
Master of Engineering (Software)
- CRICOS Code: 069275C
Navigation
What will I study?
Overview
The Master of Engineering (Software) 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.
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.
Sample course plan
View some sample course plans to help you select subjects that will meet the requirements for this degree.
Year 1
100 pts
- Semester 1 50 pts
- Semester 2 50 pts
Year 2
100 pts
- Semester 1 50 pts
- Semester 2 50 pts
Year 3
100 pts
- Semester 1 37.5 pts
- Semester 2 37.5 pts
cis advanced elective
12.5 pts
cis advanced elective
12.5 pts
- Year long 25 pts
Year 1
100 pts
- Semester 2 50 pts
- Semester 1 50 pts
Year 2
112.5 pts
- Semester 2 50 pts
- Semester 1 37.5 pts
elective
12.5 pts
cis advanced elective
12.5 pts
- Year long 25 pts
Year 3
87.5 pts
- Semester 2 37.5 pts
elective
12.5 pts
cis advanced elective
12.5 pts
- Semester 1 50 pts
Explore this course
Explore the subjects you could choose as part of this degree.
Core
Students must complete the following subjects (62.5 points):
- 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.
- 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
A functional programming language will be used to implement and illustrate concepts.
- 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
- 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
- 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
Selective
Choose one of the following 12.5 point subjects. University of Melbourne pathway students are recommended to take Creating Innovative Engineering (ENGR90034).
- 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.
- Creating Innovative Engineering 12.5 pts
The aim of this subject is to give participants both practical experience in, and theoretical insights into, elements of engineering innovation.
The subject is intense, challenging, experiential and requires significant self-direction. Participants will work on an innovation project sponsored by a local organisation.
A key theme is that the individual cannot be separated from the technical processes of engineering innovation. The impact of both individual and team contributions to the engineering and innovation processes will be examined in the context of real world challenges.
Creating Innovative Engineering (CIE) and its companion subject, Creating Innovative Professionals ENGR90039 (CIP), 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 that students maintain the confidentiality of their proprietary information. Some project sponsors will require students to assign any Intellectual Property created (other than Copyright in their Assessment Materials) to the University. The projects may vary in the hours needed for a successful outcome.
- Creating Innovative Professionals 12.5 pts
This subject aims to give participants theoretical frameworks, practical insights, and preliminary skills to work in their chosen profession in contexts where determining what problem to work on is an important complement to knowing how to solve that problem.
Participants will develop these understandings, insights and skills by working in teams on a strategically-important innovation challenge sponsored by an industry organisation. This subject is similar to Creating Innovative Engineering (ENGR90034), but is designed for students seeking a multi-disciplinary learning experience.
Participants will learn theories of human-centred innovation and apply them in their project. They will learn how to work in teams and use those skills to deliver the project. They will learn to conceptualise their career as an innovation project, and how to apply the innovation skills and theories presented in the subject to their own careers.
The subject is challenging, experiential and requires significant self-direction.
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.
- 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.
- Design of Algorithms 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. This subject will cover some of 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.
INDICATIVE CONTENT
Sample projects are: approximate string matching for a translation memory, involving sorting and comparison of dynamic programming, branch-and-bound search and brute-force search using a variety of data structures (e.g. arrays, hash tables, tries); speech synthesis based on a pronouncing dictionary and pre-prepared grapheme-phoneme alignment data, based on parsing of the alignment data, hashing of variable length n-grams, and a variety of models for predicting the phoneme(s) associated with a given phoneme sequence (e.g. a simple unigram baseline or a hidden Markov model).
- Algorithms and Complexity 12.5 pts
AIMS
The aim of this subject is for students to develop familiarity and competence in assessing and designing computer programs for computational efficiency. Although computers manipulate data very quickly, to solve large-scale problems, we must design strategies so that the calculations combine effectively. Over the latter half of the 20th century, an elegant theory of computational efficiency developed. This subject introduces students to the fundamentals of this theory and to many of the classical algorithms and data structures that solve key computational questions. These questions include distance computations in networks, searching items in large collections, and sorting them in order.
INDICATIVE CONTENT
Topics covered include complexity classes and asymptotic notation; empirical analysis of algorithms; abstract data types including queues, trees, priority queues and graphs; algorithmic techniques including brute force, divide-and-conquer, dynamic programming and greedy approaches; space and time trade-offs; and the theoretical limits of algorithm power.
Core
Students must complete the following subjects (50 points):
- 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).
- 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.
- 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.
- 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.
Computing and Information Systems electives
Select one elective (12.5 points):
- Graphics and Interaction 12.5 pts
AIMS
This subject introduces the technologies of computer graphics and human-computer interaction along with the biological, psychological and social aspects of human perception and action that inform the application of those technologies. The emphasis is on 2D and 3D computer graphics and the geometric modelling techniques used for representing and interacting with objects in dynamic scenes. Techniques considered include transformation geometry, illumination models and the real-time rendering (shading) models. The subject is centred on developing Apps for tablet computers based on natural user interfaces (NUIs), a term used by developers of human-machine interfaces that effectively become invisible to their users through successive learned interactions. Technologies likely to be considered are: virtual reality, computer games, augmented reality, tele-presence, or other modalities such as interaction through the sense of touch, audio or image processing and analysis. This subject supports course-level objectives by allowing students to develop analytical skills to understand the complexity of developing real-world computer graphics and interaction applications.
INDICATIVE CONTENT
Topics are drawn from computational geometry and human-computer interaction including:
- 2D and 3D computer graphics
- Colour and illumination models
- Raster and vector graphics
- Geometric modelling
- Rendering (shading) and visualisation
- Geometric transformations (including projection)
- Computational matrix geometry and/or animation (kinematics)
- Interaction categories and styles (particularly graphical user interfaces)
- Usability and accessibility (including interaction for people with disabilities).
- Declarative Programming 12.5 pts
AIMS
Declarative programming languages provide elegant and powerful programming paradigms and techniques that 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.
- IT Project 12.5 pts
AIMS
This subject is the capstone project for the Informatics major and the Computing and Software Systems major in the BSc. Students will work on a real life problem in a small team, supervised by a member of staff. Each team will analyse the information needs of users and develop working computational solutions. Students are expected to apply sound principles studied over the course of their degree to the formulation and solution of their problem.
INDICATIVE CONTENT
Students will work in teams to analyse, design, implement and test a non-trivial IT system. A key part of the project is for students to develop and manage a project in order to deliver a quality IT product. Workshops will explore the application of theory to the project and include selected topics drawn from: ethics, project management, design frameworks, testing, technical reviews, and product evaluation.
- 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
- Artificial Intelligence 12.5 pts
AIMS
Artificial intelligence is the quest to create intelligent agents that can complete complex tasks which are at present only achievable by humans. This broad field covers logic, probability, perception, reasoning, learning and action; and everything from Mars Rover robotic explorers to the Watson Jeopardy playing program. You will explore some of the vast area of artificial intelligence. Topics covered include: searching, problem solving, reasoning, knowledge representation and machine learning. Topics may also include some of the following: game playing, expert systems, pattern recognition, machine vision, natural language, robotics and agent-based systems.
INDICATIVE CONTENT
- Agents and search
- Probabilistic reasoning
- Reinforcement Learning
- Pattern recognition for robotics.
- Machine Learning 12.5 pts
AIMS
Machine Learning, a core discipline in data science, is prevalent across Science, Technology, the Social Sciences, and Medicine; it drives many of the products we use daily such as banner ad selection, email spam filtering, and social media newsfeeds. Machine Learning is concerned with making accurate, computationally efficient, interpretable and robust inferences from data. Originally borne out of Artificial Intelligence, Machine Learning has historically been the first to explore more complex prediction models and to emphasise computation, while in the past two decades Machine Learning has grown closer to Statistics gaining firm theoretical footing.
This subject aims to introduce undergraduate students to the intellectual foundations of machine learning, and to introduce practical skills in data analysis that can be applied in graduates' professional careers.
CONTENT
Topics will be selected from: prediction approaches for classification/regression such as k-nearest neighbour, naïve Bayes, discriminative linear models, decision trees, Support Vector Machines, Neural Networks; clustering methods such as k-means, hierarchical clustering; probabilistic approaches; exposure to large-scale learning.
Computing and Information Systems advanced electives
Select 37.5 points (2–3 subjects):
- Algorithms for Bioinformatics 12.5 pts
AIMS
Technological advances in obtaining high throughput data have stimulated the development of new computational approaches to bioinformatics. This subject will cover core computational challenges in analysing bioinformatics data. We cover important algorithmic approaches and data structures used in solving these problems, and the challenges that arise as these problems increase in scale.
The subject is a core subject in the MSc (Bioinformatics) and is an elective in the Master of Information Technology and the Master of Engineering. It can also be taken by PhD students and by undergraduate students, subject to the approval of the lecturer.
INDICATIVE CONTENT
The subject covers key algorithms used in bioinformatics, with a focus on genomics. Indicative topics are: sequence alignment (dynamic algorithms and seed-and-extend), genome assembly, variant detection, phylogenetic reconstruction, genomic intervals, complexity and correctness of algorithms, clustering and classification of genomics data, data reduction and visualisation.
The subject assumes you have experience in programming and familiarity with the foundations of genomics.
- 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.
- Computational Genomics 12.5 pts
AIM
The study of genomics is on the forefront of biology. Current laboratory technologies generate huge amounts of data. 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 learn the theory behind the different approaches to genomic analysis, preparing them to use existing methods appropriately and positioning them to develop new ways to analyse genomic data.
The subject is a core subject in the MSc (Bioinformatics), and is an elective in the Master of Information Technology and the Master of Engineering. It can also be taken by PhD students and by undergraduate students, subject to the approval of the lecturer.
INDICATIVE CONTENT
This subject covers computational analysis of genomic data, from the perspective of information theory. Topics include information theoretic analysis of genomic sequences; sequence comparison, including heuristic approaches and multiple sequence alignment; and approaches to motif finding and genome annotation, including probabilistic modelling and visualization, computational detection of RNA families, and current challenges in protein structure determination. Practical work includes writing bioinformatics applications programs and preparing a research report that uses existing bioinformatics web resources.
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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
- 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.
- Advanced Database Systems 12.5 pts
AIMS
Many applications require access to very large amounts of data. These applications often require reliability (data must not be lost even in the presence of hardware failures), and the ability to retrieve and process the data very efficiently.
The subject will cover the technologies used in advanced database systems. Topics covered will include: transactions, including concurrency, reliability (the ACID properties) and performance; and indexing of both structured and unstructured data. The subject will also cover additional topics such as: uncertain data; Xquery; the Semantic Web and the Resource Description Framework; dataspaces and data provenance; datacentres; and data archiving.
INDICATIVE CONTENT
Topics include:
- Introduction to High Performance Database Systems
- Issues of Performance and Reliability
- Transaction Processing
- Recovery from Failures
- Map Reduce Models.
- 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
- 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
- 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.
- 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.
- Internship 25 pts
AIMS
This subject involves students undertaking professional work experience at a Host Organisation’s premises. Students will work under the supervision of both a member of academic staff and an external supervisor at the Host Organisation.
During the period of work experience, students will be introduced to workplace culture and be offered the opportunity to strengthen their employability. Students will undertake seminars covering topics that will include professional standards of behaviour and ethical conduct, working in teams, time management and workplace networking.
- 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.
Core
Students must complete the following subjects (37.5 points):
- 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.
- 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.
- 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.
Project
Students must complete the following subject (25 points):
- Masters Advanced Software Project 25 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).
Computing and Information Systems advanced electives
Select 25 points (1–2 subjects):
- Algorithms for Bioinformatics 12.5 pts
AIMS
Technological advances in obtaining high throughput data have stimulated the development of new computational approaches to bioinformatics. This subject will cover core computational challenges in analysing bioinformatics data. We cover important algorithmic approaches and data structures used in solving these problems, and the challenges that arise as these problems increase in scale.
The subject is a core subject in the MSc (Bioinformatics) and is an elective in the Master of Information Technology and the Master of Engineering. It can also be taken by PhD students and by undergraduate students, subject to the approval of the lecturer.
INDICATIVE CONTENT
The subject covers key algorithms used in bioinformatics, with a focus on genomics. Indicative topics are: sequence alignment (dynamic algorithms and seed-and-extend), genome assembly, variant detection, phylogenetic reconstruction, genomic intervals, complexity and correctness of algorithms, clustering and classification of genomics data, data reduction and visualisation.
The subject assumes you have experience in programming and familiarity with the foundations of genomics.
- 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.
- Computational Genomics 12.5 pts
AIM
The study of genomics is on the forefront of biology. Current laboratory technologies generate huge amounts of data. 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 learn the theory behind the different approaches to genomic analysis, preparing them to use existing methods appropriately and positioning them to develop new ways to analyse genomic data.
The subject is a core subject in the MSc (Bioinformatics), and is an elective in the Master of Information Technology and the Master of Engineering. It can also be taken by PhD students and by undergraduate students, subject to the approval of the lecturer.
INDICATIVE CONTENT
This subject covers computational analysis of genomic data, from the perspective of information theory. Topics include information theoretic analysis of genomic sequences; sequence comparison, including heuristic approaches and multiple sequence alignment; and approaches to motif finding and genome annotation, including probabilistic modelling and visualization, computational detection of RNA families, and current challenges in protein structure determination. Practical work includes writing bioinformatics applications programs and preparing a research report that uses existing bioinformatics web resources.
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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
- 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.
- Advanced Database Systems 12.5 pts
AIMS
Many applications require access to very large amounts of data. These applications often require reliability (data must not be lost even in the presence of hardware failures), and the ability to retrieve and process the data very efficiently.
The subject will cover the technologies used in advanced database systems. Topics covered will include: transactions, including concurrency, reliability (the ACID properties) and performance; and indexing of both structured and unstructured data. The subject will also cover additional topics such as: uncertain data; Xquery; the Semantic Web and the Resource Description Framework; dataspaces and data provenance; datacentres; and data archiving.
INDICATIVE CONTENT
Topics include:
- Introduction to High Performance Database Systems
- Issues of Performance and Reliability
- Transaction Processing
- Recovery from Failures
- Map Reduce Models.
- 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
- 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
- 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.
- 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.
- Internship 25 pts
AIMS
This subject involves students undertaking professional work experience at a Host Organisation’s premises. Students will work under the supervision of both a member of academic staff and an external supervisor at the Host Organisation.
During the period of work experience, students will be introduced to workplace culture and be offered the opportunity to strengthen their employability. Students will undertake seminars covering topics that will include professional standards of behaviour and ethical conduct, working in teams, time management and workplace networking.
- 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.