Algorithms and Complexity

Subject COMP90038 (2015)

Note: This is an archived Handbook entry from 2015.

Credit Points: 12.5
Level: 9 (Graduate/Postgraduate)
Dates & Locations:

This subject has the following teaching availabilities in 2015:

Semester 1, Parkville - Taught on campus.
Pre-teaching Period Start not applicable
Teaching Period 02-Mar-2015 to 31-May-2015
Assessment Period End 26-Jun-2015
Last date to Self-Enrol 13-Mar-2015
Census Date 31-Mar-2015
Last date to Withdraw without fail 08-May-2015

Semester 2, Parkville - Taught on campus.
Pre-teaching Period Start not applicable
Teaching Period 27-Jul-2015 to 25-Oct-2015
Assessment Period End 20-Nov-2015
Last date to Self-Enrol 07-Aug-2015
Census Date 31-Aug-2015
Last date to Withdraw without fail 25-Sep-2015


Timetable can be viewed here. For information about these dates, click here.
Time Commitment: Contact Hours: 36 hours, comprising of two hours of lectures and one hour of tutorial per week
Total Time Commitment:

200 hours

Prerequisites:

An undergraduate degree in a cognate discipline.

Corequisites:

None

Recommended Background Knowledge:

Basic proficiency in mathematics and computing.

Non Allowed Subjects:
Subject

Core Participation Requirements:

Coordinator

Assoc Prof Harald Sondergaard, Dr Antonette Mendoza

Contact

Semester 1

Dr Antonette Mendoza

mendozaa@unimelb.edu.au

Semester 2

Associate Professor Harald Sondergaard

harald@unimelb.edu.au

Subject Overview:

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.

Learning Outcomes:

INTENDED LEARNING OUTCOMES (ILO)

On completion of this subject the student should be able to:

  1. Design, manipulate and reason about a variety of techniques for solving sorting, searching and graph problems
  2. Write efficient algorithms and data structures for a variety of fundamental problems
  3. Conduct formal reasoning about problem complexity and algorithmic efficiency
  4. Recognize the design techniques of standard algorithms, and apply these techniques to develop new computational solutions to problems

Assessment:
  • Project work during semester due around weeks 6 and 11, expected to take approximately 25 - 30 hours of work (20%). Addresses all ILOs.
  • A written 50-minute test (ILOs 1, 3, and 4), around week 7 (10%)
  • A written 3-hour closed book examination (70%)

The examination is a hurdle and must be passed to pass the subject

Prescribed Texts:

A. Levitin, Introduction to the Design and Analysis of Algorithms, Pearson, 3rd edition, 2012

Breadth Options:

This subject is not available as a breadth subject.

Fees Information: Subject EFTSL, Level, Discipline & Census Date
Generic Skills:

On completion of this subject students should have the following skills:

  • Application of knowledge of basic science and engineering fundamentals
  • Effective communication about computational efficiency
  • Capacity to reason and solve problems
  • Ability to undertake problem identification, formulation and solution
  • Capacity for creativity and innovation
  • Profound respect for truth and intellectual integrity, and for the ethics of scholarship.
Notes:

LEARNING AND TEACHING METHODS

The subject involves weekly three-hour lectures. The lectures are a mix of direct delivery and interactive student problem solving. Although written assignments are submitted by students individually, in-plenum discussion of the problems is allowed, and encouraged.

INDICATIVE KEY LEARNING RESOURCES

Students are provided with lecture slides, and links on the LMS to the in-house animated software Algorithms in Action. The slides are integrated with the well-established textbook.

CAREERS / INDUSTRY LINKS

With Big Data at the forefront of modern computing solutions, industry is ever-more focused on efficient computational analysis methods. Software engineers, developers and data analysts will find not only the analysis techniques, but also the fundamental algorithmic design concepts, highly applicable to the handling of significant datasets. Building on an initial connection in a similar undergraduate offering, there is scope for industry liaison with this subject.

Related Course(s): Master of Information Technology
Master of Operations Research and Management Science
Master of Philosophy - Engineering
Master of Science (Bioinformatics)
Ph.D.- Engineering
Related Majors/Minors/Specialisations: Approved Masters level subjects from other departments
Computer Science
Computer Science
MIT Computing Specialisation
MIT Distributed Computing Specialisation
MIT Health Specialisation
MIT Spatial Specialisation
Master of Engineering (Mechatronics)
Master of Engineering (Software with Business)
Master of Engineering (Software)

Download PDF version.